Créer ses propres modules Ansible

Vince Sesto

Follow

Mar 20, 2019 – 4 min lu

Personnaliser Ansible pour vos besoins est si facile

.

Chaque jour, le nombre de modules Ansible continue de croître avec un support supplémentaire ajouté au fur et à mesure de l’utilisation de l’application. Alors pourquoi auriez-vous besoin de créer vos propres modules Ansible. Eh bien, il ya un certain nombre de raisons, mais je pense que le plus valable est, de sorte que vous pouvez acquérir une compréhension sur la façon dont les modules fonctionnent. Même si, cette nouvelle compétence trouvée peut ne pas se présenter très souvent, il y a plus de probabilité que vous ayez besoin de dépanner les erreurs ou les problèmes avec les modules Ansible existants, donc savoir comment tout fonctionne peut être une compétence précieuse.

Vous devez également vous rappeler qu’il y a beaucoup d’anciennes applications héritées ou des applications internes que votre organisation peut utiliser qui n’ont pas leurs propres modules. Il existe d’autres options pour déployer ces applications via Ansible et fournir des modèles pour les configurer, mais il peut être plus facile de créer votre propre module pour ces applications. Quoi qu’il en soit, le document suivant vous fournira les détails pour vous permettre de démarrer et, espérons-le, de l’étendre davantage.

Si vous cherchez un excellent moyen d’en savoir plus sur Ansible, suivez le lien vers notre dernier livre, Ansible Answers

C’est un exemple assez basique, mais j’espère que vous verrez que tout ce dont vous avez besoin est un peu de connaissance de Python, combiné avec vos compétences Ansible et vous serez en mesure de commencer à créer vos propres modules Ansible….Ne vous inquiétez pas si vos connaissances sont un peu déficientes sur l’un ou l’autre, tout sera expliqué au fur et à mesure que nous le parcourrons ensemble.

Nous allons juste couvrir un module basique « Hello World », pour vous montrer à quel point c’est facile. Ce post ne va pas couvrir l’installation et les bases d’Ansible, alors n’hésitez pas à consulter nos posts précédents pour plus de détails.

1.Commencez par accéder à votre environnement de travail, qui a déjà Ansible installé dessus. Dans le répertoire, vous travaillez dans créer un répertoire de bibliothèque:

mkdir library

2.Dans dans le répertoire de la bibliothèque, créer votre nouveau nom de fichier module hello_module.py:

touch library/hello_module.py

3. Avec votre éditeur de texte préféré, ouvrez le nouveau fichier et ajoutez le code suivant(Les chiffres à gauche sont juste là pour référence et ne doivent pas être ajoutés au fichier):

Il n’y a rien de trop compliqué ici, mais si vous n’êtes pas familier avec Python, voici une décomposition de chacune des lignes. La ligne 1 précise qu’elle doit utiliser la version de Python installée localement. La ligne 3 importe les modules spécifiques qui fonctionneront avec Ansible. Les lignes 5 à 8 sont la fonction qui sera exécutée dans le cadre de votre module, spécifiquement la ligne 6 fournit la classe AnsibleModule qui nous permet de gérer les paramètres entrants et nous permet de sortir du programme, avec la réponse étant « hello » et ensuite « world ! » dans la ligne 7. Les lignes 10 et 11 exécutent ensuite la fonction lorsque le module est appelé.

4.Nous pouvons maintenant créer un playbook pour exécuter le module. Dans votre répertoire de travail, créez le fichier newmodule_test.yml:

touch newmodule_test.yml

5.Vous pouvez maintenant allumer votre éditeur de texte et ajouter les détails suivants pour que votre playbook s’exécute

 1 ---
2 - hosts: 127.0.0.1
3 tasks:
4 - name: testing our new module
5 hello_module:
6 register: result
7
8 - debug: var=result

Si vous n’avez pas travaillé avec Ansible auparavant, le code ci-dessus est capable d’attribuer l’hôte de la ligne 2 à celui sur lequel vous travaillez. Les lignes 3 à 6 exécutent le nouveau module, la ligne 4 nommant la tâche, la ligne 5 appelant le module et la ligne 6 enregistrant le résultat comme une variable nommée result. Puis finalement la ligne 8 utilise la fonction de débogage pour sortir les résultats afin de vous montrer que tout a fonctionné.

6.Nous pouvons maintenant exécuter le nouveau playbook avec la commande suivante:

ansible-playbook newmodule_test.yml

Ce qui vous donne la sortie suivante:

Si tout s’est bien passé, vous devriez voir la sortie mentionnée ci-dessus vous donnant un joli « hello » : « world ! » comme sortie.

Ok, nous avons été assez rapides et sales ici et c’était le but du post, mais tout ce dont vous avez besoin est d’étendre vos connaissances de Python et vous serez également en mesure d’étendre ce que vos modules peuvent faire.

Found this post useful ? Veuillez appuyer sur le bouton d’applaudissement ci-dessous ! 🙂

A propos de l’auteur

Laisser un commentaire