GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Ansible Playbook :comment créer et configurer des playbooks

Présentation

Ansible est un outil d'infrastructure en tant que code qui vous permet de gérer et de surveiller un certain nombre de serveurs distants à l'aide d'un seul nœud de contrôle.

Avec Ansible, vous pouvez gérer des serveurs distants à l'aide de playbooks. Ces playbooks transmettent des instructions aux serveurs distants et leur permettent d'exécuter des tâches prédéfinies.

Dans ce tutoriel, nous verrons ce que sont les playbooks Ansible, comment ils fonctionnent et comment vous pouvez les créer et les exécuter.

Prérequis

  • Un système Linux (nous utilisons Ubuntu 20.04)
  • Accès à la ligne de commande/fenêtre du terminal
  • Ansible installé et configuré

Qu'est-ce qu'un manuel Ansible ?

Un playbook Ansible est une liste d'instructions pour les tâches exécutées automatiquement par des ordinateurs distants dans un réseau Ansible.

Un playbook Ansible se compose de jeux. Les lectures sont un ensemble de tâches orchestrées qui sont terminées une fois qu'un playbook est exécuté. Vous pouvez ajouter plusieurs jeux à un seul playbook.

Les jeux utilisent des modules pour définir les modifications à apporter pour accomplir une tâche. Chaque module fournit un cadre pour une certaine catégorie d'emplois et peut être personnalisé à l'aide d'arguments et variables .

Les playbooks Ansible sont enregistrés sous forme de fichiers .yaml, ce qui les rend flexibles et faciles à utiliser.

Les playbooks sont principalement utilisés pour :

  • Déclarer des configurations.
  • Automatisation de certaines tâches répétables qui prendraient trop de temps à effectuer manuellement.
  • Lancer des tâches de manière synchrone ou asynchrone.

Variables de playbook Ansible

Les playbooks Ansible utilisent des variables pour offrir flexibilité et facilité d'utilisation. Les variables peuvent être intégrées (telles que les informations système) ou définies par l'utilisateur .

Dans un playbook Ansible, les variables sont définies à l'aide de vars mot-clé :

Dans l'exemple ci-dessus, nous définissons le greeting variable avec la valeur assignée de Hello World! .

Pour accéder à la valeur, mettez le nom de la variable greeting entre accolades doubles :

Une fois exécuté, le playbook imprime le message Hello World!

Outre les variables à valeur unique, il existe plusieurs autres types de variables Ansible. Utilisation de variables avec des tableaux , affectez plusieurs valeurs à une variable avec la syntaxe suivante :

vars:
  array_name:
    - value1
    - value2
    …
    - valueN

Accédez à une valeur spécifique en utilisant {{ array_name[value number] }} , par exemple :

Variables avec dictionnaires combiner plusieurs tableaux de valeurs en une seule variable :

vars:
  array_name:
    dictionary_name1:
      item1: value1
      item2: value2
    dictionary_name2:
      item1: value1
      item2: value2

Enfin, les variables spéciales sont prédéfinis par Ansible et ne peuvent pas être définis par les utilisateurs. Utilisez la commande suivante pour obtenir une liste de variables spéciales :

ansible -m setup hostname

Comment écrire un playbook Ansible ?

Créez un playbook Ansible en utilisant n'importe quel éditeur de texte disponible sur votre système. Par exemple, créez un playbook avec Nano :

sudo nano /path/to/playbook/directory/playbook_name.yaml

Les playbooks Ansible suivent les règles de base de la syntaxe YAML.

Un playbook commence par trois n-tirets (--- ), suivi du nom du playbook, du nom du groupe d'hôtes distants qui exécute le playbook et de paramètres supplémentaires tels que become (exécutez le playbook en tant qu'administrateur).

La section suivante contient toutes les variables définies par l'utilisateur. Cela commence par les vars balise au même niveau d'indentation que la section précédente, suivie d'une liste de variables dans l'indentation suivante.

Enfin, la liste des tâches commence par les tasks tag, avec le niveau d'indentation en fonction du type de tâche et des paramètres utilisés.

La syntaxe YAML permet d'utiliser trois points ( ) pour terminer le playbook. Bien que la plupart des playbooks se terminent ainsi, il n'est pas nécessaire que le playbook fonctionne correctement.

Syntaxe du Playbook Ansible

Quelques éléments importants de la syntaxe YAML à garder à l'esprit lors de l'écriture de playbooks Ansible :

  • Lorsque vous composez des listes, utilisez un espace entre le tiret (- ) et l'entrée de la liste.
  • Lorsque vous utilisez la key: value forme, les deux-points doivent être suivis d'un espace.
  • Les valeurs booléennes peuvent utiliser les deux yes et no , ainsi que true et false .
  • Utilisez un espace suivi de # pour indiquer un commentaire.

Exemple de manuel Ansible

Pour cet exemple, nous allons créer un playbook dans le dossier d'installation d'Ansible :

sudo nano /etc/ansible/example_playbook.yaml

Ce playbook contient les éléments suivants :

  • ---  :Signale le début du playbook.
  • name  :Définit le nom du playbook Ansible.
  • hosts :Définit quels hôtes exécutent le playbook. Dans l'exemple ci-dessus, le playbook s'exécute sur tous les hôtes inclus dans le fichier d'inventaire.
  • become :demande à l'hôte distant d'exécuter le playbook en tant qu'administrateur. L'utilisation de cette balise nécessite que vous saisissiez le mot de passe administrateur de l'hôte distant lors de l'exécution du playbook.
  • vars :Définit des variables - dans notre cas, une variable nommée greeting avec la valeur Hello World! .
  • tasks :La liste des tâches que le playbook doit exécuter. Dans l'exemple ci-dessus, la première tâche crée un répertoire appelé example_playbook sur l'hôte distant. La deuxième tâche crée un nouveau fichier texte dans ce répertoire et place la valeur de greeting variable comme contenu.
  • ...  :Signale la fin du playbook.

Comment un playbook est-il exécuté ?

Les playbooks Ansible sont exécutés dans l'ordre, de haut en bas. Cela est vrai à la fois pour les jeux individuels et pour les tâches répertoriées dans ces jeux.

Dans l'exemple ci-dessus, le playbook effectue les actions suivantes, dans l'ordre :

  1. Définit une liste de variables.
  2. Crée un nouveau dossier sur l'hôte distant.
  3. Crée un fichier texte dans le nouveau dossier.
  4. Ajoute la valeur de la variable en tant que contenu du fichier.

Comment exécuter un playbook Ansible

Pour exécuter un playbook Ansible, utilisez :

ansible-playbook /path/to/playbook/directory/playbook_name.yaml

Pour les besoins de cet article, nous utiliserons example_playbook.yaml avec le -K argument, qui nous permet de saisir le mot de passe de l'utilisateur root pour l'hôte distant et d'exécuter le playbook en tant qu'administrateur :

ansible-playbook /etc/ansible/example_playbook.yaml -K

Comment vérifier les playbooks

Exécutez un playbook en mode vérification à l'aide de --check drapeau pour le vérifier. Cela vous permet de voir les changements que votre playbook apporterait, sans vraiment les faire :

ansible-playbook /path/to/playbook/directory/playbook_name.yaml --check

Pour un aperçu plus détaillé des changements potentiels, utilisez la combinaison --check et --diff drapeaux :

ansible-playbook /path/to/playbook/directory/playbook_name.yaml --check --diff

Conseils utiles pour les manuels Ansible

Il existe plusieurs façons de faciliter la lecture et l'utilisation des playbooks Ansible :

Nommez toujours les parties et les tâches

Utilisez le name mot-clé pour définir les noms des jeux et des tâches. L'ajout de noms courts et simples permet de savoir beaucoup plus facilement ce que chaque jeu ou tâche fait en un coup d'œil.

Utiliser les commentaires

Assurez-vous d'ajouter beaucoup de commentaires, en particulier lors de la définition des variables et des tâches.

Des commentaires détaillés aident à rendre le playbook encore plus clair et facile à comprendre. Ils aident également toute autre personne utilisant vos playbooks.

Formater le Playbook pour en faciliter l'utilisation

Bien que vous deviez suivre les règles d'indentation pour que le playbook fonctionne, vous pouvez toujours utiliser des espaces (tels que des lignes vides entre les tâches) pour faciliter la lecture d'un playbook.


Ubuntu
  1. Comment installer et configurer Ansible sur Ubuntu 18.04 LTS

  2. Comment créer un Playbook Ansible

  3. Comment installer et configurer Ansible sur Fedora 35

  4. Comment utiliser Ansible pour installer et configurer Redis 6 sur Ubuntu 20.04

  5. Comment utiliser Ansible pour installer et configurer Redis 6 sur Debian 11

Comment créer des playbooks Ansible pour l'automatisation informatique

Comment créer et configurer un point d'accès Wi-Fi dans Ubuntu 17.10

Comment définir et utiliser des gestionnaires dans des playbooks Ansible

Comment créer et exécuter un fichier Playbook Ansible

Rôles Ansible et comment les utiliser dans les Playbooks

Comment installer et configurer Ansible sur Ubuntu