Creating You’re Own Ansible Modules

Vince Sesto

Follow

Mar 20, 2019 – 4 min read

Aanpassen van Ansible voor uw behoeften is zo makkelijk

Elke dag groeit het aantal Ansible-modules en wordt er extra ondersteuning toegevoegd naarmate het gebruik van de toepassing toeneemt. Dus waarom zou u uw eigen Ansible-modules moeten maken? Daar zijn een aantal redenen voor, maar ik denk dat de meest valide reden is dat u inzicht moet krijgen in de werking van de modules. Ook al komt deze nieuwe vaardigheid niet vaak voor, de kans is groter dat u fouten of problemen met bestaande Ansible modules moet oplossen, dus weten hoe alles werkt kan een waardevolle vaardigheid zijn.

U moet ook niet vergeten dat er veel oudere legacy-applicaties of interne applicaties zijn die uw organisatie gebruikt en die niet hun eigen modules hebben. Er zijn andere opties om deze toepassingen via Ansible te implementeren en sjablonen aan te bieden om ze te configureren, maar het kan gemakkelijker zijn om uw eigen module voor deze toepassingen te maken. Hoe dan ook, het volgende document geeft u de details om u op weg te helpen en hopelijk kunt u het verder uitbreiden.

Als u op zoek bent naar een goede manier om meer te leren over Ansible, volg dan de link naar ons nieuwste boek, Ansible Answers

Dit is een vrij eenvoudig voorbeeld, maar ik hoop dat u ziet dat alles wat u nodig hebt een klein beetje kennis van Python is, gecombineerd met uw Ansible-vaardigheden en u zult in staat zijn om te beginnen met het maken van uw eigen Ansible-modules…Maak je geen zorgen als je kennis op een van beide gebieden een beetje tekort schiet, alles zal worden uitgelegd als we er samen doorheen gaan.

We gaan alleen een basis “Hello World” module behandelen, om te laten zien hoe eenvoudig dit is. Deze post gaat niet in op de installatie en de basis van Ansible, dus voel je vrij om onze vorige posts te bekijken voor meer details.

1.Begin met het openen van je werkomgeving, waar Ansible al op is geïnstalleerd. In de map waarin u werkt, maakt u een bibliotheekmap aan:

mkdir library

2.In de bibliotheekmap maakt u een nieuw modulebestand aan met de naam hello_module.py:

touch library/hello_module.py

3. Met uw favoriete tekst editor, open het nieuwe bestand en voeg de volgende code (De nummers aan de linkerkant zijn er alleen voor referentie en moeten niet worden toegevoegd aan het bestand):

Er is niets te ingewikkeld hier, maar als je niet bekend bent met Python, hier is een uitsplitsing van elk van de regels. Regel 1 specificeert dat het de lokaal geïnstalleerde versie van Python moet gebruiken. Lijn 3 importeert de specifieke modules die met Ansible zullen draaien. Lijn 5 tot 8 is de functie die zal draaien als onderdeel van uw module, in het bijzonder lijn 6 levert de AnsibleModule klasse die ons toelaat om inkomende parameters te behandelen en ons toelaat om het programma af te sluiten, met als antwoord “hello” en dan “world!” in lijn 7. Lijn 10 en 11 voeren dan de functie uit wanneer de module wordt aangeroepen.

4.We kunnen nu een playbook maken om de module uit te voeren. Maak in uw werkmap het bestand newmodule_test.yml:

touch newmodule_test.yml

5.U kunt nu uw tekst editor starten en de volgende details toevoegen zodat uw playbook zal lopen

 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

Als u nog niet eerder met Ansible heeft gewerkt, is de bovenstaande code in staat om de host in regel 2 toe te wijzen aan de host waar u op aan het werk bent. Regel 3 tot 6 voeren de nieuwe module uit, met regel 4 die de taak benoemt, regel 5 die de module aanroept, en regel 6 die het resultaat registreert als een variabele met de naam resultaat. Tenslotte gebruikt regel 8 de debug-functie om de resultaten uit te voeren, zodat u kunt zien dat alles werkte.

6.We kunnen nu het nieuwe playbook uitvoeren met het volgende commando:

ansible-playbook newmodule_test.yml

Wat u de volgende uitvoer oplevert:

Als alles goed is gegaan, zou u de hierboven genoemde uitvoer moeten zien met een mooie “hello”: “world!” als uitvoer.

Ok, we zijn hier vrij snel en vies geweest en dat was het doel van de post, maar alles wat je nodig hebt is om je kennis van Python uit te breiden en je zult ook in staat zijn om uit te breiden wat je modules kunnen doen.

Vond je deze post nuttig? Gelieve te tikken op de klap knop hieronder! 🙂

Over de auteur

Plaats een reactie