Ansible: Gestion de parc informatique

Ansible: Gestion de parc informatique

21 janvier 2018 0 Par Mairien Anthony

Ansible est un logiciel de configuration et déploiement à distance, permettant au travers du protocole SSH d’installer des mises à jours, des logiciels, effectuer des configurations systèmes et bien plus sur des hôtes Linux ou même Windows. Bref, c’est un incontournable dans la gestion de parc informatique.

1) L’installation

Ansible peut s’installer sur une simple workstation faisant office de serveur, mais pour ma part, j’ai préféré créer une machine virtuelle entièrement dédiée à cette tâche.

Pour l’installer, un simple apt-get fera l’affaire:

apt-get install ansible

2) Configuration du serveur Ansible

La première chose à faire est de modifier le fichier /etc/hosts du serveur en lui renseignant l’adresse IP et le nom d’hôte de chaque machines que l’on souhaite déployer/gérer à distance (serveurs, ordinateurs clients…)

192.168.1.20        srv-web-01
192.168.1.30        srv-share-02
192.168.2.24        workstation-024
192.168.2.25        workstation-025
...

4) Configuration SSH et création des hôtes

La prochaine étape consiste simplement à générer une paire de clé SSH, pour automatiser nos futures actions: en effet, lorsque l’on souhaitera par exemple installer LibreOffice sur une trentaine de machines hôtes, il ne faut pas que l’on ait à rentrer le mot de passe root de chaque machine… il faut que la connexion SSH se fasse de manière automatique:

Pour générer la paire de clé SSH, un simple ssh-keygen est nécessaire. (Vous n’êtes pas obligés de renseigner une passphrase).

Et nous la copions ensuite sur chaque hôte, au travers de la commande ssh-copy-id.

Une fois cette étape réalisée, rendez-vous sur le fichier /etc/ansible/hosts pour créer nos groupes d’hôtes et les renseigner à l’intérieur:

[serveurs]
srv-web-01
srv-share-02
[workstations-clients]
workstation-024
workstation-025
[workstations-it]
...

Comme vous avez pu le remarquer, j’ai renseigné dans mon fichier les noms d’hôtes de mes clients: en effet, l’adresse IP est susceptible de changer, pas le nom d’hôte de la machine.

5) Test et exemples de commandes

Bien… désormais, nous allons vérifier que la communication se fait correctement via la commande ansible -m ping all qui devrait vous répondre ceci:

srv-web-01| success >> {
"changed": false,
"ping": "pong"
}
srv-share-02| success >> {
"changed": false,
"ping": "pong"
}
workstation-024| success >> {
"changed": false,
"ping": "pong"
}
workstation-025| success >> {
"changed": false,
"ping": "pong"
}

Tout est fonctionnel. Essayons d’installer htop sur notre « workstation-04 » :

ansible -m apt-get -a 'name=htop state=present' workstation-024

La console va à présent vous afficher les différentes étapes de l’installation, ainsi que des flags décrivant la réussite (ou non).

6) Les playbooks

Un playbook est en quelque sorte un énorme script, permettant d’installer/configurer un ou plusieurs logiciels/paramètres en une seule commande, ce qui permet de gagner plus de temps lors du déploiement de serveurs web ou de workstations clientes par exemple.

Rendez-vous dans le dossier d’Ansible (ou crééez votre propre dossiers pour playbooks), nommez le comme bon vous semble et suivez simplement cette syntaxe:

# htop.yml
---
- hosts: serveurs
tasks:
- name: 1. install htop
apt-get: name=htop state=present

Le « # » sert simplement de commentaire, puis vient le « hosts », définissant la machine ou bien le groupe de machines visé (voir plus haut, au début du guide), ensuite vient les « tasks », qui sont simplement les tâches à effectuer (ici, l’installation de htop via apt-get).

Pour exécuter notre playbook:

ansible-playbook htop.yml

Résumé

Je décrirais peut être plus en profondeur l’utilisation de ce logiciel, ainsi que ses nombreuses fonctionnalités (ajout du module pour l’installation de logiciels sous Windows, module pour distributions Fedora/CentOS/Redhat/etc…) dans les prochaines semaines, cela reste à voir.