GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Rôles Ansible et comment les utiliser dans les Playbooks

Au cours de l'écriture des fichiers de playbook Ansible, vous avez peut-être remarqué que vous pouviez réutiliser une partie du code défini dans vos playbooks existants. Par exemple, vous pouvez réutiliser le code pour installer le serveur de base de données MariaDB sur un hôte géré avec des noms d'hôte, des utilisateurs et des mots de passe différents pour un autre hôte distant. Cela permet d'économiser beaucoup de temps et d'énergie qui auraient été utilisés pour écrire de nouveaux fichiers de playbook à partir de zéro. Et c'est là qu'intervient le concept de rôles Ansible.

Un rôle ansible est un concept de réorientation des tâches dans des fichiers individuels plus faciles à gérer et à manipuler. Chaque rôle fournit un ensemble de tâches, de variables et de gestionnaires - pour n'en citer que quelques-uns - nécessaires à sa mise en œuvre. Les rôles permettent aux utilisateurs de réorganiser des structures de playbook longues et complexes en fichiers de playbook plus simples, plus courts et plus clairs. Comme nous l'avons mentionné précédemment, les rôles sont censés être réutilisables, et l'invocation de rôles dans le fichier playbook simplifie le code et élimine la duplication. Les tâches répétitives telles que l'installation et la configuration des applications peuvent être regroupées dans des fichiers séparés et réutilisées sur divers hôtes gérés.

Dans ce guide, vous apprendrez à créer et à utiliser des rôles Ansible dans des playbooks. Pour la démonstration, nous allons créer un rôle qui installe le serveur Web Apache et configure le pare-feu pour ouvrir le port 80.

Comment créer un rôle Ansible

Nous allons commencer par créer un simple rôle Ansible. Pour créer un rôle, utilisez simplement la syntaxe de commande ci-dessous où myrole est le nom du rôle.

$ ansible-galaxy init myrole

Par exemple, pour créer un rôle appelé test_role invoquez la commande.

$ ansible-galaxy init  test-role

À partir de la sortie, nous obtenons que la commande génère un test-role répertoire et par défaut, il contient des répertoires par défaut. Vous pouvez utiliser l'arborescence commande pour les lister comme indiqué.

$ tree test-role

Voyons un bref aperçu de ce que contient chaque répertoire

Les "valeurs par défaut ' dossier - Ce répertoire contient les variables par défaut qui seront requises par le rôle. Ces variables ont la priorité la plus basse et sont donc assez faciles à remplacer.

Les "fichiers ' dossier - Ce dossier comprend les fichiers à copier sur l'hôte géré ou distant.

Les ‘gestionnaires ' dossier - Le répertoire contient des gestionnaires qui sont généralement évoqués par la directive 'notify'. Vous pouvez en savoir plus sur les gestionnaires Ansible.

La "méta ' dossier - Contient les métadonnées d'un rôle, par exemple l'auteur de l'instance, les dépendances, etc.

Les "tâches ’ dossier – Il contient un fichier YAML qui définit la liste des tâches à exécuter par le rôle lui-même. Il contient le main.yml fichier.

Les "modèles ' dossier - Le répertoire comprend des fichiers de modèle qui peuvent être modifiés selon les besoins pour configurer le rôle.

Les "tests ’ dossier – Intègre les tests avec les fichiers de playbook Ansible.

Les "vars ’ dossier – Comprend des variables qui seront utilisées ultérieurement par le rôle. rôle. Ces variables ont une priorité plus élevée que celles des "defaults ’ répertoire.

Nous allons créer deux rôles à des fins de démonstration :

Le git rôle - Cela installera la dernière version de Git.

L'apache role- Ceci installera le serveur web Apache

Créez-les comme suit :

$ sudo ansible-galaxy init git
$ sudo ansible-galaxy init apache

Par la suite, nous devons définir chaque rôle en éditant le main.yml fichier dans les 'tâches ’ dossier dans chaque rôle. Commençons par définir le git rôle.

$ sudo vim git/tasks/main.yml

Définissez la tâche pour le rôle git comme indiqué.

Enregistrez le main.yml fichier et quitter.

Ensuite, définissez la tâche pour le rôle Apache.

$ sudo vim apache/tasks/main.yml

Spécifiez la tâche qui installe le serveur Web Apache.

De même, enregistrez le main.yml fichier et quitter.

Créer un fichier playbook et appeler les rôles

Une fois les tâches de chaque rôle définies dans le main.yml fichier pour chaque rôle, créez un fichier playbook et référencez les rôles comme indiqué.

$ sudo vim roles_demo.yml

REMARQUE :

Vous devez spécifier le chemin d'accès complet au rôle dans le playbook.

rôles :

  • /chemin/vers/rôle

Dans cet exemple, les rôles résident dans le même répertoire que le fichier playbook, et il suffit de les appeler par leur nom pour faire l'affaire.

Enfin, exécutez le fichier playbook.

$ sudo ansible-playbook /etc/ansible/roles_demo.yml

Les rôles définis dans le fichier playbook seront référencés et leurs tâches respectives seront exécutées. Ici, Ansible installe à la fois le serveur Web git et Apache.

Vous pouvez vérifier l'installation en exécutant les commandes affichées.

$ git --version
$ apachectl -v

Comme vous l'avez noté, le fichier playbook est bref et facile à suivre puisque les tâches ont été référencées par les rôles spécifiés dans le fichier playbook.

Résumé

Les rôles Ansible aident à l'organisation des fichiers de playbook et aident à éviter la duplication de code. Ils peuvent être réutilisés et référencés par d'autres fichiers de playbook pour exécuter des tâches similaires sur différents nœuds, économisant ainsi du temps et de l'énergie qui auraient pu être utilisés pour écrire de nouveaux playbooks. Dans l'ensemble, les rôles facilitent le travail.


Ubuntu
  1. Comment j'utilise Ansible et anacron pour l'automatisation

  2. Comment installer et utiliser TensorFlow sur CentOS 7

  3. Comment installer et configurer Ansible sous Windows

  4. Comment installer et utiliser Ansible sur Debian 11

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

Comment créer et utiliser des faits personnalisés dans Ansible

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

Comment installer et utiliser Ansible sur Debian 10

Comment installer et utiliser R sur Ubuntu

Qu'est-ce que PPA dans Ubuntu Linux et comment les utiliser

Schémas de couleurs dans Vim :comment les modifier et les utiliser