Tout ce que tu as besoin de savoir

Ansible est un outil de gestion de configuration open source populaire. D’autre part, Ansible Galaxy est un référentiel de rôles Ansible.

Vous n’avez peut-être qu’une poignée de playbooks en tant qu’administrateur système débutant. 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 vos playbooks, vous réaliserez également à quel point Ansible Galaxy est important.

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 presque comme si vous aviez créé quelque chose de nouveau et que vous vouliez le partager avec d’autres.

Si vous rencontrez des problèmes avec l’automatisation Ansible ou si vous avez besoin d’une solution pré-emballée d’autres personnes 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.

Pour accomplir des tâches telles que l’installation de rôles à partir de Galaxy ou de tout 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 Galaxy interne, 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.

Présentation 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 les configurations, orchestrer les déploiements et d’autres fonctions. Ansible est très facile à mettre en place. Ansible peut être utilisé même par un administrateur système novice pour automatiser l’infrastructure en quelques heures seulement.

Ansible s’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 exécuter Linux.

Ansible peut effectuer des tâches d’administration système courantes 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 largement utilisé et le plus populaire aujourd’hui. Sa simplicité est l’un de ses principaux atouts. C’est simple, puissant, mais sans agent. Cela signifie qu’un administrateur système nouveau ou débutant peut automatiser l’infrastructure en quelques heures seulement. Ansible permet une mise à l’échelle rapide, une efficacité et une interfonctionnalité.

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.

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

[email protected]:~$ ansible-galaxy

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 si 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 de test.

[email protected]:~$ ansible-galaxy init testing

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

Ci-dessous se trouve 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’. Nous pouvons cliquer sur n’importe quelle catégorie populaire de la page d’accueil ou cliquer sur le bouton « Rechercher » pour obtenir plus de filtres afin d’appliquer une recherche granulaire.

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

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

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.

[email protected]:~$ ansible-galaxy install geerlingguy.mysql

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

[email protected]:~$ ansible-galaxy search elasticsearch --author geerlingguy

Commandes Ansible Galaxy communes

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

  • ansible-galaxy list : cette commande galaxy affiche une liste de tous les rôles installés, avec leurs numéros de version.
  • ansible-galaxy remove : cette commande galaxy supprime un rôle installé sur le système.
  • ansible-galaxy info : cette commande galaxy fournira des informations détaillées sur Ansible Galaxy.
  • ansible-galaxy init : cette commande galaxy 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 une connexion pour importer un rôle depuis le site Web 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 référentiel public pour les rôles Ansible. Les rôles sont accompagnés de fichiers README qui expliquent l’utilisation et les variables. Galaxy a de nombreux rôles qui évoluent et se développent continuellement.

Galaxy peut ajouter des sources de rôles telles que GitHub à l’aide de git. Ansible Galaxy nous permet de créer des rôles Ansible à l’aide de 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 pour installer le rôle.

Avant de pouvoir les utiliser dans des 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 de rôle Ansible et sa signification

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

  • README.md est le fichier Lisezmoi qui décrit le rôle. Le fichier readme contient tous les détails sur les paramètres d’entrée et l’exemple yml.
  • tâches – Toutes les tâches peuvent être inscrites par le rôle aux tâches. Le point d’entrée du rôle est Main.yml. C’est là que commence l’exécution. Ce fichier peut contenir d’autres fichiers.
  • Gestionnaires – Cette catégorie comprend les gestionnaires qui peuvent être utilisés dans ce rôle ou tout autre rôle.
  • defaults – Les variables par défaut pour le rôle.
  • vars – Variables plus importantes que les valeurs par défaut pour le rôle.
  • Fichiers – Ces fichiers peuvent être déployés à l’aide de Rôle.
  • Modèles – Cette section contient des modèles qui peuvent être utilisés via Rôle.
  • 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 de rôle.
  • Tests – Tests CI à exécuter.
  • bibliothèque – Intégrer des modules ou des plugins dans des rôles. Non créé par la commande init. Vous pouvez également créer un module personnalisé en Python dans ce dossier, puis l’utiliser dans vos tâches.

Créer 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 modifications dans Ansible Galaxy. La version 2.2.8 d’Ansible inclut désormais la fonctionnalité de collecte.

Le contenu Ansible peut être distribué à l’aide de collections. Ils sont utilisés pour emballer 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 d’installation de la collection ansible-galaxy.

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é sur Galaxy ou votre propre référentiel
  • publier : Galaxy publie un artefact de collection intégrée
  • install : installe une ou plusieurs collections

Conclusion

Ansible galaxy est un excellent moyen d’organiser et de réfléchir à vos livres de rôle en constante évolution. Ansible Galaxy compte environ 39 000 auteurs de communauté, 30 000 rôles et 1 656 collections qui peuvent être utilisées pour lancer rapidement notre projet d’automatisation. Le guide du développeur et le guide du contributeur expliquent comment contribuer au code Ansible Galaxy existant, qui est un projet open-source.

Vous pouvez également être intéressé par les tâches Sysadmin que vous pouvez automatiser avec Ansible.