Introduction Ansible
Ansible, c'est quoi ?
Ansible est un outil open source d'automatisation d'infrastructure. Il permet aux administrateurs système de configurer et de gérer des systèmes informatiques de manière centralisée. Il est basé sur le modèle push, ce qui signifie que les tâches sont envoyées aux systèmes cibles de manière sécuisées à partir d'un contrôleur central.
Ansible est un outil puissant et flexible qui peut être utilisé pour une grande variété de tâches :
- La configuration des systèmes
- Le déploiement de logiciels
- La gestion des services
- La surveillance des systèmes
Installation d'Ansible
La première étape pour utiliser Ansible est de l'installer sur votre ordinateur, exécutez la commande suivante :
sudo apt install ansible
Créez ensuite les dossiers suivant ansible/etc dans votre dossier utilisateur et positionnez vous dedans, exécutez la commande suivante :
mkdir -p ansible/etc && cd ansible/etc
Création d'un inventaire
L'inventaire est un fichier qui contient une liste des systèmes que vous souhaitez gérer avec Ansible. Il peut être créé manuellement ou généré automatiquement à l'aide d'un outil comme Ansible Galaxy. Créez un fichier iventory.ini dans votre répertoire "etc" :
touch inventory.ini
Ajoutez dans votre fichier les ip de vos hôtes :
[mywebhosts]
IP-SERVER
IP-SERVER
[mysqlhosts]
IP-SERVER
Vous pouvez vérifier votre fichier d'inventaire avec la commande suivante :
ansible-inventory -i inventory.ini --list
Après avoir configurer le ssh entre votre poste et vos hôtes, vous pouvez lancer un ping ansible sur vos hôtes en exécutant la commande suivante :
ansible myhosts -m ping -i inventory.ini
Les modules Ansible
Ansible dispose d'une large collection de modules qui permettent d'automatiser des tâches courantes telles que :
- Gestion des fichiers et des répertoires: copier, supprimer, créer, modifier des fichiers et des répertoires.
- Installation de logiciels: installer, désinstaller, mettre à jour des logiciels.
- Gestion des utilisateurs et des groupes: créer, supprimer, modifier des utilisateurs et des groupes.
- Gestion des services: démarrer, arrêter, redémarrer, activer, désactiver des services.
- Configuration du réseau: configurer les interfaces réseau, les routes, les pare-feu.
Vous pouvez retrouver les modules intégrés ici
Création d'un playbook
Un playbook est un fichier qui contient une séquence de tâches à exécuter sur les systèmes cibles. Les playbooks sont écrits dans le langage YAML, qui est un langage de description de données simple et lisible.
Retournez à la racine de votre dossier ansible et créez ensuite un dossier playbooks et positionnez vous dedans, exécutez la commande suivante :
mkdir playbooks && cd playbooks
Créez un fichier YAML dans votre dossier playbooks, exécutez la commande suivante :
touch playbook.yml
Ajouter dans votre fichier les taches ansible à effectuer, voici un exemple de playbook simple qui installe le package apache sur les systèmes cibles :
---
- name: Apache
hosts: mywebhosts
remote_user: root
tasks:
- name: update cache & install apache
ansible.builtin.apt:
name: apache2
state: present
update_cache: yes
- name: Mysql
hosts: mysqlhosts
remote_user: root
tasks:
- name: update cache & install apache
ansible.builtin.apt:
name: mysql-server
state: present
update_cache: yes
Exécution d'un playbook
Pour exécuter un playbook, vous pouvez utiliser la commande ansible-playbook. Par exemple, pour exécuter le playbook de l'exemple précédent placez vous dans votre dossier utilisateur, exécutez la commande suivante :
ansible-playbook -i ansible/etc/inventory.ini ansible/playbooks/playbook.yml
Cette commande s'exécute sur tous les systèmes cibles figurant dans l'inventaire et installe le package apache sur chacun d'eux.
Autres ressources
Pour en savoir plus sur Ansible, vous pouvez consulter les ressources suivantes :
- La documentation officielle d'Ansible: ici
Conclusion
Ansible est un outil puissant et flexible qui peut être utilisé pour automatiser une grande variété de tâches d'administration système. Avec un peu de pratique, vous pouvez apprendre à utiliser Ansible pour automatiser vos tâches quotidiennes et gagner du temps.