Skapa egna Ansible-moduler

Vince Sesto

Follow

20 mars, 2019 – 4 min read

Det är så enkelt att anpassa Ansible för dina behov

För varje dag fortsätter antalet Ansible-moduler att växa och extra stöd läggs till i takt med att programmet används. Så varför skulle du behöva skapa egna Ansible-moduler. Tja, det finns ett antal anledningar, men jag tror att den mest giltiga är, så att du kan få en förståelse för hur modulerna fungerar. Även om denna nyfunna färdighet kanske inte kommer upp så ofta, är det mer sannolikt att du behöver felsöka fel eller problem med befintliga Ansible-moduler, så att veta hur allting fungerar kan vara en värdefull färdighet.

Du måste också komma ihåg att det finns en hel del äldre äldre äldre applikationer eller interna applikationer som din organisation kanske använder och som inte har sina egna moduler. Det finns andra alternativ för att distribuera dessa applikationer genom Ansible och tillhandahålla mallar för att konfigurera dem, men det kan vara enklare att skapa en egen modul för dessa applikationer. Hur som helst kommer följande dokument att förse dig med detaljer som gör att du kan komma igång och förhoppningsvis kan du utöka det ytterligare.

Om du letar efter ett bra sätt att lära dig mer om Ansible, följ länken till vår senaste bok, Ansible Answers

Detta är ett ganska grundläggande exempel, men jag hoppas att du ser att allt du behöver är lite kunskap om Python, kombinera det med dina Ansible-kunskaper och du kommer att kunna börja skapa dina egna Ansible-moduler…Oroa dig inte om dina kunskaper är lite bristfälliga på någon av dem, allt kommer att förklaras när vi går igenom det tillsammans.

Vi ska bara ta upp en grundläggande ”Hello World”-modul för att visa hur enkelt detta är. Det här inlägget kommer inte att täcka installationen och grunderna i Ansible, så kolla gärna in våra tidigare inlägg för mer information.

1.Börja med att komma åt din arbetsmiljö, som redan har Ansible installerat på den. I den katalog du arbetar i skapar du en bibliotekskatalog:

mkdir library

2.I bibliotekskatalogen skapar du din nya modulfil med namnet hello_module.py:

3. Öppna den nya filen med din favorittextredigerare och lägg till följande kod (siffrorna till vänster är bara till för referens och ska inte läggas till i filen):

Det finns inget alltför komplicerat här, men om du inte är bekant med Python, är här en uppdelning av var och en av raderna. Rad 1 anger att den måste använda den lokalt installerade versionen av Python. Rad 3 importerar de specifika moduler som kommer att köras med Ansible. Linjerna 5 till 8 är den funktion som kommer att köras som en del av din modul, särskilt linje 6 tillhandahåller AnsibleModule-klassen som gör det möjligt för oss att hantera inkommande parametrar och gör det möjligt för oss att avsluta programmet, med svaret ”hello” och sedan ”world!” i linje 7. Linje 10 och 11 kör sedan funktionen när modulen anropas.

4.Vi kan nu skapa en playbook för att köra modulen. I din arbetskatalog skapar du filen newmodule_test.yml:

touch newmodule_test.yml

5.Du kan nu starta din textredigerare och lägga till följande uppgifter så att din playbook kan köras

 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

Om du inte har jobbat med Ansible tidigare kan koden ovan tilldela värddatorn i rad 2 till att vara den värd du arbetar på. Linje 3 till 6 kör den nya modulen, där linje 4 namnger uppgiften, linje 5 anropar modulen och linje 6 registrerar resultatet som en variabel med namnet result. Sedan slutligen använder linje 8 debug-funktionen för att ge ut resultaten för att visa att allt fungerade.

6.Vi kan nu köra den nya playbooken med följande kommando:

ansible-playbook newmodule_test.yml

Vilket ger dig följande utdata:

Om allt gick bra bör du se ovan nämnda utdata som ger dig ett trevligt ”hello”: ”

Okej, vi har varit ganska snabba och smutsiga här och det var syftet med inlägget, men allt du behöver är att utöka dina kunskaper i Python och du kommer också att kunna utöka vad dina moduler kan göra.

Fanns det här inlägget användbart? Vänligen tryck på klappknappen nedan! 🙂

Om författaren

Lämna en kommentar