Ansible est un outil de gestion de configuration open-source très répandu. D’autre part, Ansible Galaxy est un référentiel de rôles Ansible.

En tant qu’administrateur système débutant, vous ne disposez peut-être que d’une poignée de playbooks. Au fur et à mesure que vos compétences en automatisation s’améliorent et que vous vous familiarisez avec Ansible, vous apprendrez toutes les meilleures pratiques. Au fur et à mesure que vous augmenterez le nombre de vos playbooks, vous réaliserez également l’importance d’Ansible Galaxy.

Qu’est-ce qu’Ansible Galaxy ?

Ansible Galaxy est un référentiel en ligne open-source basé sur le web pour le contenu Ansible (principalement les rôles et les collections). C’est un peu comme si vous aviez créé quelque chose de nouveau et que vous vouliez le partager avec d’autres.

Si vous avez des problèmes avec l’automatisation Ansible ou si vous avez besoin d’une solution pré-packagée pour démarrer vos projets d’automatisation, Ansible Galaxy peut vous aider. Par exemple, vous pouvez avoir des rôles, des collections, des modules ou des plugins. De nombreux membres de la communauté ont déjà téléchargé leurs collections et rôles Ansible.

Ansible-Galaxy-2

Pour accomplir des tâches telles que l’installation de rôles à partir de Galaxy ou de n’importe quel SCM git, la création ou la suppression de rôles, ou l’exécution de certaines tâches sur le site Galaxy, nous pouvons utiliser la commande ansible-galaxy. Cette commande est préinstallée avec Ansible, vous pouvez donc l’utiliser immédiatement après l’installation d’Ansible.

Le projet Galaxy est un projet open-source qui nous permet d’héberger nos serveurs Galaxy internes. Pour utiliser le serveur interne Galaxy, vous devrez modifier la configuration par défaut dans le fichier Ansible.cfg avec l’adresse du serveur interne Galaxy car, par défaut, il utilise l’adresse du serveur galaxy.ansible.com.

Vue d’ensemble d’Ansible

Ansible peut être décrit comme un multiplicateur qui automatise et fait évoluer les infrastructures de toutes tailles. Il peut être utilisé pour gérer des configurations, orchestrer des déploiements et d’autres fonctions. Ansible est très facile à mettre en place. Même un administrateur système novice peut l’utiliser pour automatiser son infrastructure en quelques heures seulement.

Ansible automatise en utilisant le protocole SSH. Le mécanisme de contrôle utilise une connexion SSH pour communiquer avec ses hôtes cibles (généralement des hôtes Linux). Les administrateurs système Windows peuvent toujours utiliser Ansible pour automatiser leurs environnements Windows avec WinRM au lieu de SSH. La machine de contrôle doit toujours fonctionner sous Linux.

Ansible peut effectuer des tâches courantes d’administrateur système telles que l’application de correctifs, la mise à jour, la gestion des groupes et des utilisateurs, le provisionnement et d’autres tâches administratives.

Ansible est l’outil de gestion de configuration, d’orchestration et de déploiement le plus utilisé et le plus populaire à l’heure actuelle. Sa simplicité est l’un de ses principaux atouts. Il est simple, puissant, mais sans agent. Cela signifie qu’un administrateur système débutant peut automatiser l’infrastructure en quelques heures seulement. Ansible permet une mise à l’échelle rapide, l’efficacité et la transversalité.

Travailler sur Ansible Galaxy

Ensuite, ouvrons le terminal et exécutons quelques commandes à l’aide d’Ansible Galaxy. Mais avant cela, vous devez avoir installé la dernière version d’Ansible sur votre système.

Une fois la dernière version d’Ansible installée sur votre système, entrez ansible-galaxy dans le terminal, et vous obtiendrez toutes les options disponibles avec Galaxy.

ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy
galaxy-ansible

Tout d’abord, vous pouvez commencer par la commande init et créer un rôle. Ici, je crée un rôle ‘testing’. Utilisez la commande ls pour vérifier que le rôle a été créé avec succès. La commande init crée également les fichiers nécessaires dans le répertoire du rôle testing.

ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy init testing
ansible-galaxy-init

Ansible galaxy est une grande communauté active où de nombreux rôles ont déjà été créés que vous pouvez directement utiliser.

Vous trouverez ci-dessous la page qui s’ouvrira lorsque vous naviguerez sur‘galaxy.ansible.com‘, ou nous pouvons dire qu’il s’agit de la page d’accueil du site web ‘Ansible Galaxy’. Vous pouvez cliquer sur n’importe quelle catégorie populaire de la page d’accueil ou cliquer sur le bouton “Recherche” pour obtenir davantage de filtres afin d’appliquer une recherche granulaire.

ansible-galaxy

Par exemple, si vous recherchez un rôle de serveur MySQL, il vous suffit de le rechercher et de cliquer sur le bouton de filtrage. Vous pouvez voir que geerlingguy a le maximum de téléchargements ; nous pouvons essayer d’installer ce rôle. Cliquez sur geerlingguy MySQL.

ansible-galaxy-mysql

Vous obtiendrez alors la commande d’installation pour installer ce rôle en utilisant ansible-galaxy.

ansible-galaxy-install-mysql

Exécutez la commande mentionnée dans l’instantané ci-dessus pour télécharger et installer le rôle de serveur MySQL sur votre machine.

ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy install geerlingguy.mysql
ansible-galaxy-install

Si vous savez déjà quel rôle rechercher pour un auteur particulier, vous pouvez utiliser la commande search comme indiqué ci-dessous.

ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy search elasticsearch --author geerlingguy
ansible-galaxy-search

Commandes courantes d’Ansible Galaxy

La commande ansible-galaxy gère les rôles et les collections en utilisant galaxy.ansible.com. Vous trouverez ci-dessous quelques commandes ansible-galaxy très utiles que tout administrateur système utilise de temps à autre :

  • ansible-galaxy list : Cette commande galaxy affiche une liste de tous les rôles installés, avec leur numéro de version.
  • ansible-galaxyremove : Cette commande galaxy supprime un rôle installé sur le système.
  • ansible-galaxy info : Cette commande galaxie fournit des informations détaillées sur Ansible Galaxy.
  • ansible-galaxy init: Cette commande galaxie peut être utilisée pour créer un modèle de rôle adapté à la soumission à Ansible Galaxy.
  • ansible-galaxy import: Cette commande galaxy nécessite un login pour importer un rôle depuis le site officiel de galaxy.

Les commandes ci-dessus (init, import, install, remove) peuvent être utilisées avec la commande ansible-galaxy collection pour gérer les collections à l’aide d’Ansible Galaxy.

Parlons maintenant des rôles et des collections dans Ansible Galaxy.

Créer des rôles avec Ansible Galaxy

Ansible Galaxy est essentiellement un grand dépôt public pour les rôles Ansible. Les rôles sont accompagnés de README qui expliquent l’utilisation et les variables. Galaxy contient de nombreux rôles qui évoluent et se développent continuellement.

Galaxy peut ajouter des sources de rôles telles que GitHub en utilisant git. Ansible Galaxy nous permet de créer des rôles Ansible en utilisant la commande ansible-galaxy. Ansible-galaxy init peut être utilisé pour initialiser un nouveau rôle galaxy, ou vous pouvez utiliser la commande ansible-galaxy install <nom du rôle> pour installer le rôle.

Avant de pouvoir les utiliser dans les playbooks, le rôle doit être téléchargé. Une fois qu’ils ont été placés dans le répertoire par défaut /etc/ansible/roles, vous pouvez trouver des exemples de rôles.

Structure des rôles Ansible et leur importance

Vous trouverez ci-dessous les fichiers et répertoires créés lors de l’installation d’un rôle :

  • README.md est le fichier Readme qui décrit le rôle. Le fichier readme contient tous les détails sur les paramètres d’entrée et les exemples yml.
  • tasks – Toutes les tâches peuvent être enrôlées par le rôle dans tasks. Le point d’entrée du rôle est Main.yml. C’est là que l’exécution commence. Ce fichier peut contenir d’autres fichiers.
  • Handlers – Cette catégorie comprend les handlers qui peuvent être utilisés dans ce rôle ou dans tout autre rôle.
  • defaults – Les variables par défaut du rôle.
  • vars – Variables plus importantes que les variables par défaut du rôle.
  • Fichiers – Ces fichiers peuvent être déployés à l’aide du rôle.
  • Templates – Cette section contient des modèles qui peuvent être utilisés via Role.
  • meta – Les métadonnées peuvent être utilisées pour définir les rôles dans meta. Ce fichier doit également inclure toutes les dépendances du rôle.
  • Tests – Tests CI à exécuter.
  • library – Intégration de modules ou de plugins dans les rôles. Il n’est pas créé par la commande init. Vous pouvez également créer un module personnalisé en Python dans ce dossier et l’utiliser ensuite dans vos tâches.

Créez des collections avec Ansible Galaxy

Ansible Galaxy est le meilleur outil pour gérer les rôles et est utilisé depuis des années. Cependant, vous verrez de nouvelles fonctionnalités ou des changements dans Ansible Galaxy. La version 2.2.8 d’Ansible inclut désormais la fonctionnalité de collection.

Le contenu d’Ansible peut être distribué à l’aide de collections. Elles sont utilisées pour empaqueter et distribuer des playbooks et des rôles, des modules, ainsi que des plugins.

La structure suivante est la base des collections :

collection/
├── docs/
├── galaxy.yml
├── plugins/
│ ├──
modules/
│ │ └─── module1.py
│ ├──
inventory/
│ └── .../
├── README.md
├── roles/
│ ├──
role1/
│ ├──
role2/
│ └── .../
├── playbooks/
│ ├──
files/
│ ├──
vars/
│ ├──
templates/
│ └─── tasks/
└─── tests/

Création d’un squelette de collection

Pour installer une collection sur votre ordinateur, vous pouvez utiliser la commande ansible-galaxy collection installation.

Notamment, certaines sous-commandes peuvent également être utilisées avec ansible galaxy.

  • init: Crée une structure de collection de base basée sur le modèle par défaut d’ansible’sle ou sur le vôtre
  • build: Crée un artefact de collection qui peut être téléchargé dans Galaxy ou dans votre propre dépôt
  • publish: Galaxy publie un artefact de collection construit
  • installer: Installe une ou plusieurs collections

Conclusion

Ansible Galaxy est un excellent moyen d’organiser et de réfléchir à vos livres de rôles qui ne cessent de croître. Ansible Galaxy compte environ 39 000 auteurs communautaires, 30 000 rôles et 1656 collections qui peuvent être utilisés pour lancer rapidement notre projet d’automatisation. Le guide du développeur et le guide du contributeur expliquent comment contribuer au code existant d’Ansible Galaxy, qui est un projet open-source.

Vous pourriez également être intéressé par les tâches d’administrateur système que vous pouvez automatiser avec Ansible.