Recherche de site Web

Comment créer et télécharger des rôles sur Ansible Galaxy et les utiliser – Partie 9


Dans la Partie 9 de la série Ansible, vous apprendrez à créer et télécharger des rôles sur Ansible Galaxy et à les utiliser. Ansible est un outil de gestion de configuration et de déploiement automatique simple mais efficace qui automatise de manière transparente et efficace des tâches complexes. Vous pouvez gérer des centaines, voire des milliers de serveurs à partir d'un seul nœud de contrôle à l'aide d'un seul fichier playbook.

Cependant, l'écriture de playbooks pour gérer le même service dans différents environnements peut s'avérer assez fastidieuse, ce qui conduit généralement à une redondance du code. De plus, une complexité accrue peut ajouter à la difficulté de gérer tous les appareils.

Vient ensuite les rôles. Dans Ansible, les rôles sont utilisés pour décomposer les playbooks en fichiers réutilisables qui peuvent être utilisés dans plusieurs autres instances où il est nécessaire d'effectuer une tâche similaire. Cela élimine le besoin de réécrire encore et encore les playbooks et permet d’économiser beaucoup de temps et d’énergie.

Les rôles sont simplement des fonctionnalités des playbooks. Un rôle est livré avec à peu près ce qui constituerait un playbook : des tâches, des fichiers, des modules, des variables et des modèles. Notez également que chaque rôle est limité à une tâche particulière ou au résultat souhaité.

Créer un rôle Ansible

Pour créer un rôle dans Ansible, utilisez simplement la syntaxe.

ansible-galaxy init role_name 

Plusieurs répertoires et fichiers seront créés dans votre répertoire de travail actuel. Dans ce cas, j'ai décidé de créer un rôle dans le répertoire /etc/ansible/roles.

Créons un rôle appelé apache.

ansible-galaxy init apache

Utilisez la commande tree pour avoir un aperçu de la structure des répertoires du rôle.

tree apache

Comme vous pouvez le constater, plusieurs répertoires ont été créés, mais tous ne seront pas utilisés dans le playbook.

Maintenant, pour utiliser votre rôle nouvellement créé dans un playbook, définissez une tâche dans le fichier main.yml contenu dans le répertoire des tâches de votre nouveau rôle.

/apache/tasks/main.yml

---

- hosts: database_servers

  tasks:

    - name: Install Apache2 on Ubuntu webserver
      apt:
         name: apache2
         state: installed

Ensuite, créez un fichier playbook et appelez le rôle comme indiqué.

--- 
- hosts: webservers
  roles:
   - apache

Installer un rôle depuis Ansible Galaxy

Les rôles jouent un rôle crucial dans le partage de code avec d'autres utilisateurs de la communauté Ansible à l'aide de la plateforme Ansible Galaxy. Dans Ansible Galaxy, vous disposez de milliers de rôles effectuant différentes tâches telles que l'installation de serveurs Web et de bases de données, d'outils de surveillance, etc.

Ansible Galaxy est une base de données ou un référentiel de rôles Ansible que vous pouvez exploiter dans vos playbooks et vous aider à rationaliser vos tâches.

Pour rechercher un rôle dans Ansible Galaxy, exécutez simplement la commande.

ansible-galaxy search <role>

Par exemple, pour rechercher un rôle nommé mysql, exécutez.

ansible-galaxy search mysql

Comme vous pouvez le constater, des centaines de rôles correspondent au mot-clé de recherche mysql. Cependant, tous les rôles ne réaliseront pas ce que vous souhaitez, il est donc recommandé de lire attentivement les instructions.

Pour recueillir plus d'informations sur un rôle, exécutez simplement la commande Ansible :

ansible-galaxy info 5KYDEV0P5.skydevops-mysql

Dans notre exemple, nous allons installer le rôle 5KYDEV0P5.skydevops-mysql.

ansible-galaxy install 5KYDEV0P5.skydevops-mysql

Le rôle est téléchargé et extrait dans le répertoire des rôles par défaut situé dans /etc/ansible/roles.

Le rôle peut ensuite être appelé dans un playbook, par exemple :

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql

Vous pouvez désormais exécuter en toute sécurité le playbook Ansible comme indiqué.

ansible-playbook install_mysql.yml

De plus, vous pouvez visiter Ansible Galaxy via votre navigateur Web et rechercher manuellement des rôles pour effectuer diverses tâches comme indiqué par le tableau de bord.

Par exemple, pour rechercher un rôle de surveillance tel que elasticsearch, cliquez sur l'option « Surveillance » et recherchez le rôle comme indiqué.

Ansible Galaxy permet aux utilisateurs d'installer plus facilement les meilleurs rôles en répertoriant les rôles les plus populaires et les plus téléchargés. Pour obtenir plus d'informations sur un rôle spécifique, cliquez simplement dessus.

Dans un playbook, vous pouvez également spécifier plusieurs rôles, par exemple.

---
- name: Install MySQL server
  hosts: webservers

 roles:
    • 5KYDEV0P5.skydevops-mysql
    • Aaronpederson.mariadb

Pour lister les rôles installés, exécutez simplement.

ansible-galaxy list

Conclusion

Les Rôles facilitent la réutilisation et le partage des playbooks Ansible. De cette façon, ils font gagner beaucoup de temps à l'utilisateur en essayant d'écrire beaucoup de code redondant et en passant trop de temps qui aurait été utilisé dans d'autres tâches d'administration système. Et c’est tout pour ce guide.