En savoir plus sur Ansible Playbook pour automatiser les tâches

En savoir plus sur Ansible Playbook pour automatiser les tâches.


Auparavant, nous avons discuté de l’introduction d’Ansible, du guide d’installation et, ensuite, parlons de Playbook et de ses blocs de construction.

Qu’est-ce qu’Ansible Playbook?

Le playbook est le langage d’automatisation Ansible. Il s’agit d’un simple fichier avec un ensemble d’instructions. C’est dans les playbooks que nous définissons ce que nous voulons qu’Ansible fasse. Les playbooks contiennent des jeux qui exécutent des tâches, et ces tâches exécutent des modules. Leurs tâches s’exécutent séquentiellement.

Par exemple, cela peut être aussi simple que d’exécuter une série de commandes sur différents serveurs dans une séquence et de redémarrer ces serveurs dans l’ordre. Ou cela peut être aussi complexe que de déployer et de provisionner des centaines de machines virtuelles dans un cloud public et privé, y compris leur équilibrage de charge, la surveillance, les configurations de réseau.

Langue du Playbook

Les playbooks sont de simples fichiers écrits en code YAML.

YAML est un langage de sérialisation de données. Il est lisible par l’homme et la machine. Vous n’avez pas besoin de compétences de codage spéciales pour écrire des codes YAML. Vous pouvez considérer le langage de sérialisation des données comme un traducteur pour décomposer toute votre structure de données et les sérialiser dans un ordre qui peut être reconstruit à nouveau pour une utilisation ultérieure. Vous pouvez utiliser cette structure de données reconstruite dans le même environnement ou même dans un environnement différent.

Voici un exemple de fichier YAML pour installer mysql:


– nom: installer MySQL
hôtes: geekflare-mysql-service
Tâches:
– nom: installer MySQL
action: $ ansible_pkg_mgr pkg = mysql-server state = installed
– nom: ajouter une base de données Python MySQL
action: $ ansible_pkg_mgr pkg = python-mysqldb state = installé

Notions de base d’Ansible Playbook

Cette partie de l’article couvre les concepts de base d’Ansible pour mieux comprendre Ansible Playbook.

Hôtes et utilisateurs

Ansible a besoin de machines cibles dans l’infrastructure sur laquelle les jeux doivent être déployés depuis le playbook Ansible. Les hôtes sont ajoutés à l’inventaire Ansible via leurs adresses IP. Les hôtes sont une liste d’un ou plusieurs groupes ou modèles d’hôtes séparés par deux points. L’utilisateur distant contient le nom du compte utilisateur.


– hôtes: ProdServers
remote_user: geekflare

Variables

Les variables vous permettent de modifier le fonctionnement d’un playbook. Ils peuvent être utilisés presque partout dans le playbook et peuvent être hérités d’un inventaire, défini explicitement lors de l’exécution, découvert au début d’une exécution de playbook. Vous pouvez définir un nom de variable à l’aide de lettres, de chiffres et de traits de soulignement, mais il ne doit commencer que par une lettre.

Par exemple, port_01 est une variable valide, tandis que 01_post est une variable non valide. Voici un exemple de variables dans un Playbook Ansible:

vars:
http_port: 80
max_clients: 200

Inventaires

Pour exécuter un playbook, vous avez besoin d’une liste de cibles sur lesquelles vous souhaitez que l’automatisation se produise. C’est ce que fait un inventaire. Les listes d’inventaire peuvent être créées et stockées de différentes manières, y compris des fichiers statiques, c’est-à-dire des hôtes Ansible. Ou il peut être généré dynamiquement via un script d’inventaire qui tirera une liste d’hôtes pour une source externe.

Vous pouvez également spécifier une variable dans le cadre d’une liste d’inventaire. Les inventaires sont finalement une liste de choses que vous souhaitez automatiser.

[serveurs web]
192.168.20.1
192.168.20.2
192.168.20.4
[dbservers]
172.17.1.56
172.17.1.57

Tâches

Joue dans les tâches d’exécution du playbook ansible. La tâche est responsable de l’exécution des modules ansible. À la fois, une seule tâche peut être exécutée et les tâches sont exécutées dans un ordre séquentiel. Leurs tâches sont écrites en YAML, qui est à peu près la langue de l’anglais.

Par exemple: installez package_name, Update software_name, etc. Voici un exemple de tâche dans Ansible playbook pour installer httpd:

Tâches:
– nom: Installer le package httpd
miam: nom = httpd état = dernier

Gestionnaires

Les gestionnaires sont un type spécial de tâches.

Ils peuvent être déclenchés par une tâche et sont exécutés une fois à la fin du jeu. Il est utilisé pour envoyer des notifications en cas de changement dans le fichier de configuration, par exemple, pour informer le service de démarrer apache une fois qu’il est installé. La syntaxe «notify» est utilisée pour appeler les gestionnaires. Voici un exemple de gestionnaire pour redémarrer apache:


– hôtes: tous
Tâches:
– nom: assurez-vous qu’apache est à la dernière version
miam: nom = httpd état = dernier
notifier:
– redémarrer apache
– nom: assurez-vous qu’apache est en cours d’exécution (et activez-le au démarrage)
service: nom = httpd état = démarré activé = oui
gestionnaires:
– nom: redémarrer apache
service: nom = httpd état = redémarré

Créez et exécutez votre premier Playbook Ansible

Permettez-moi de vous dire comment écrire un playbook. Chaque playbook commence par trois tirets (-) en haut.

La première chose que vous mentionnez dans un Playbook Ansible est les machines hôtes sur lesquelles vous souhaitez exécuter le playbook.

Ensuite, vous pouvez mentionner des variables en rassemblant des faits; vous pouvez ensuite mentionner les différentes tâches que vous souhaitez effectuer. Maintenant, n’oubliez pas que la tâche est exécutée dans le même ordre que vous les écrivez. Par exemple, vous voulez d’abord installer le logiciel A puis le logiciel B, assurez-vous que la première tâche écrite dans le playbook serait d’installer le logiciel A et que la tâche suivante pourrait installer le logiciel B.

Ensuite, vous avez des gestionnaires en bas. Les gestionnaires sont également des tâches, mais la différence est que pour exécuter des gestionnaires, vous avez besoin d’une sorte de déclencheurs dans la liste des tâches pour exécuter les gestionnaires.

Permettez-moi de vous montrer comment créer un playbook ansible pour installer et démarrer nginx sur un hôte et le démarrer.

Créez un fichier .yml où vous mettrez vos codes YAML pour créer un playbook ansible.

gedit nginx.yml

Mettez le code YAML ci-dessous dans ce fichier et enregistrez le fichier.


– hôtes: Client
sudo: oui
vars:
– port_serveur: 8080

Tâches:
– nom: installe le serveur Web nginx
apt: pkg = nginx state = installé update_cache = true
notifier:
– démarrer nginx

gestionnaires:
– nom: démarrer nginx
service: nom = nginx état = démarré

Le fichier YAML ci-dessus commence avec les hôtes, je veux exécuter ce playbook sur la machine client (Client). L’adresse IP du client est déjà enregistrée dans le fichier / etc / ansible / hosts.

La ligne suivante permet d’exécuter les tâches avec les privilèges sudo.

Ensuite, j’ai défini server_port comme une variable dans ce playbook.

Vient ensuite ma première tâche dans ce playbook ansible pour installer un serveur web Nginx. Cette tâche a également un paramètre de notification, ce qui signifie qu’après cette tâche, un gestionnaire avec exécution.

Enfin, j’ai écrit un gestionnaire pour démarrer nginx sur la machine cliente.

Maintenant que vous avez compris les codes YAML dans le playbook ansible, exécutons le playbook. Voici la syntaxe pour exécuter un playbook ansible:

ansible-playbook nom_fichier.yml

Maintenant, je vais exécuter le playbook ansible, que je crée pour installer et démarrer nginx.

[protégé par e-mail]: / home / geekflare # ansible-playbook nginx.yml

JOUER [Client] ********************************************** ********************

TÂCHE [Collecte des faits] ********************************************* ************
ok: [node1]

TÂCHE [Installe le serveur Web nginx] ******************************************* ****

modifié: [node1]

RUNNING HANDLER [start nginx] ******************************************** ******
ok: [node1]

JOUER RECAP ************************************************ *********************
node1: ok = 3 changé = 1 inaccessible = 0 échoué = 0 ignoré = 0 sauvé = 0 ignoré = 0

Exécutez la commande ci-dessous pour vérifier si le serveur nginx a été installé et démarré correctement par le playbook ansible.

[protégé par e-mail]: / accueil / geekflare # ps waux | grep nginx
racine 3021 0,0 0,0 77676 1516? SS 15:27 0:00 nginx: processus maître / démon usr / sbin / nginx -g activé; master_process on;

Conclusion

Il s’agissait du playbook Ansible. J’espère que cet article vous a aidé à apprendre comment créer et exécuter un playbook Ansible. Regarde ça Cours, si vous voulez apprendre des sujets avancés dans Ansible, y compris les rôles, Jinja2, les recherches, le filtre, les modules personnalisés.

MOTS CLÉS:

  • Ansible

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map