Aller au contenu principal

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.

Schema Ansible

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.