Playbook Ansible : définition
Un playbook Ansible® est un modèle de tâches d'automatisation, qui sont des opérations informatiques complexes exécutées sans intervention humaine ou presque. Les playbooks Ansible sont exécutés sur un ensemble, un groupe ou une classification d'hôtes, qui forment ensemble un inventaire.
Les playbooks Ansible sont en fait des frameworks, c'est-à-dire du code prérédigé que les développeurs peuvent utiliser tel quel ou comme point de départ. Ils servent régulièrement à automatiser des infrastructures informatiques (par exemple des systèmes d'exploitation et des plateformes Kubernetes), des réseaux, des systèmes de sécurité et des environnements de développement (tels que Git).
Les playbooks Ansible permettent au personnel informatique de programmer des applications, des services, des nœuds de serveurs ou d'autres ressources sans avoir à tout créer en partant de rien. En outre, les playbooks Ansible, ainsi que les conditions, variables et tâches qu'ils contiennent, peuvent être enregistrés, partagés ou réutilisés indéfiniment.
Fonctionnement des playbooks Ansible
Les modules Ansible exécutent des tâches. Un play peut contenir une ou plusieurs tâches et un playbook peut contenir plusieurs plays. Ainsi, les playbooks Ansible sont des listes de tâches qui s'exécutent automatiquement sur des hôtes. Des groupes de ces hôtes constituent votre inventaire Ansible.
Chaque module d'un playbook Ansible effectue une tâche spécifique. Chaque module contient des métadonnées qui déterminent quand et où une tâche s'exécute, ainsi que l'utilisateur qui l'exécute. Il existe des milliers d'autres modules Ansible qui effectuent toutes sortes de tâches informatiques, notamment les suivantes :
Gestion du cloud
oci_vcn crée, supprime ou met à jour des réseaux cloud virtuels dans des environnements Oracle Cloud Infrastructure. De même, vmware_cluster ajoute, supprime ou met à jour des clusters VMware vSphere.
Gestion des utilisateurs
selogin met en correspondance les utilisateurs du système d'exploitation Linux® avec l'utilisateur SELinux, tandis que gitlab_user crée, met à jour ou supprime des utilisateurs GitLab.
Mise en réseau
Des dizaines de modules gèrent les interfaces de programmation d'application (API), les systèmes Cisco IOS, NXOS et IOS XR, ainsi que les services F5 BIG-IP.
Sécurité
openssh_cert génère des certificats d'hôte ou d'utilisateur OpenSSH, tandis qu'ipa_config gère les paramètres de configuration globaux de FreeIPA.
Communication
mail peut envoyer automatiquement des e-mails en fonction de certains critères, tandis que snow_record crée, supprime ou met à jour un seul enregistrement dans ServiceNow.
Exemple concret de playbook Ansible
Ansible est capable de communiquer avec de nombreuses catégories de ressources différentes, des API REST cloud aux systèmes Windows et Linux, en passant par le matériel de mise en réseau. Voici un exemple de deux modules Ansible qui mettent automatiquement à jour deux types de serveurs :
--- name: update web servers hosts: webservers remote_user: root tasks: - name: ensure apache is at the latest version yum: name: httpd state: latest - name: write the apache config file template: src: /srv/httpd.j2 dest: /etc/httpd.conf - name: update db servers hosts: databases remote_user: root tasks: - name: ensure postgresql is at the latest version yum: name: postgresql state: latest - name: ensure that postgresql is started service: name: postgresql state: started
Le playbook contient deux plays :
- Le premier vérifie si le logiciel du serveur web est à jour et exécute la mise à jour si nécessaire.
- Le second vérifie si le logiciel du serveur de base de données est à jour et exécute la mise à jour si nécessaire.
Vous ne savez pas encore tout sur l'automatisation…
Comment utiliser les playbooks Ansible ?
Ansible utilise la syntaxe YAML. Pour certains, YAML est l'acronyme de Yet Another Markup Language, pour d'autres, c'est l'acronyme récursif de YAML Ain't Markup Language. Il existe deux extensions de fichier YAML différentes : .yaml et .yml. Les deux sont équivalentes.
Il y a deux manières d'utiliser les playbooks Ansible : à partir de l'interface en ligne de commande ou à l'aide des déploiements simplifiés de Red Hat Ansible Automation Platform.
À partir de l'interface en ligne de commande
Après avoir installé le projet Ansible Open Source ou Red Hat Ansible Automation Platform (entrez simplement « sudo yum install ansible » dans l'interface en ligne de commande de Red Hat Enterprise Linux), il vous suffit d'utiliser la commande ansible-playbook pour exécuter des playbooks Ansible.
Via la plateforme
L'interface utilisateur web de Red Hat Ansible Automation Platform inclut des déploiements de playbooks Ansible simplifiés utilisés dans le cadre de tâches ou de modèles de tâches de plus grande envergure. Ces déploiements sont encadrés pour éviter les erreurs, une précaution particulièrement utile pour les utilisateurs qui débutent dans l'automatisation ou qui n'ont pas l'habitude de travailler dans l'interface en ligne de commande.