Ansible est un outil open source pour automatiser les tâches. Il gère la configuration de vos serveurs Linux et Windows. Il fonctionne sans agent, ce qui signifie qu'Ansible utilise SSH et l'autorisation SSH de l'utilisateur actuel.
Vous pouvez utiliser Ansible pour automatiser trois types de tâches:
- Provisioning : configurez plusieurs serveurs dont vous avez besoin dans votre infrastructure.
- Gestion de la configuration: modifiez la configuration d'une application, d'un système d'exploitation ou d'un périphérique; démarrer et arrêter les services; installer ou mettre à jour des applications; mettre en œuvre une politique de sécurité; ou effectuer une grande variété d'autres tâches de configuration.
- Déploiement d'applications : simplifiez DevOps en automatisant le déploiement d'applications développées en interne sur vos systèmes de production.
Cet article vous guidera à travers le processus d'installation et de configuration d'Ansible sur Debian Stretch, ainsi que la configuration pour l'administration d'une machine qui s'exécute sur un serveur Windows.
Conditions préalables
Installation
Ajoutez la ligne suivante au /etc/apt/sources.list.
deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
Ajoutez les clés de dépôt.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
Mettez à jour le système.
sudo apt-get update
Installez Ansible.
sudo apt-get install ansible
Pour administrer vos serveurs Windows, vous devrez installer les packages suivants:
Installez les packages Python.
sudo apt-get install python-pip pip
Installez WinRM (Windows Remote Management).
sudo apt-get install pywinrm
Confirmer l'installation d'Ansible
Testez l'installation d'Ansible en récupérant sa version à l'aide de la commande suivante.
ansible --version
ansible 2.4.1.0
config file = None
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python2.7/dist-packages/ansible-2.4.1.0-py2.7.egg/ansible
executable location = /usr/local/bin/ansible
python version = 2.7.13 (default, Jan 19 2017, 14:48:08) [GCC 6.3.0 20170118]
Accédez au répertoire Ansible.
cd /etc/ansible
Modifiez le hostsfichier avec votre éditeur de texte préféré.
nano hosts
Ajoutez les lignes suivantes au bas du windowsgroupe.
[windows]
server1.domain.local
server1.domain.local
Il est nécessaire de créer un coffre-fort chiffré contenant les identificateurs d'accès pour le serveur Windows. Pour cela, nous allons créer un nouveau ymlfichier crypté . Le nom de fichier doit correspondre au groupe d'hôtes auquel il doit s'appliquer. Dans notre cas, le groupe créé est appelé windows, donc le fichier le sera windows.yml.
mkdir group_vars
cd group_vars
ansible-vault create windows.yml
Dans votre ymlfichier, ajoutez les paramètres suivants.
ansible_ssh_user: _your_ssh_user_
ansible_ssh_pass: _your_ssh_pass_
ansible_ssh_port: 5986
ansible_connection: winrm
ansible_winrm_server_cert_validation: ignore
Un script PowerShell est disponible pour configurer automatiquement votre machine. Ce script configurera automatiquement WinRM (Windows Remote Management) et ouvrira le pare-feu.
Téléchargez le script PowerShell depuis Github .
Modifiez les règles d'exécution des scripts Powershell pour permettre l'exécution du script.
Set-ExecutionPolicy RemoteSigned
Exécutez le script.
.\ConfigureRemotingForAnsible.ps1
Votre serveur Windows est maintenant prêt pour la gestion à distance avec Ansible.