A saját Ansible modulok létrehozása

Vince Sesto

Follow

márc. 20, 2019 – 4 min read

Az Ansible testreszabása az Ön igényeihez ilyen egyszerű

Minden nap az Ansible modulok száma folyamatosan növekszik, és az alkalmazás használatának előrehaladtával további támogatásokkal bővül. Miért lenne tehát szükséged saját Ansible modulok létrehozására. Nos, számos oka van, de azt hiszem, a legmegalapozottabb az, hogy így megértheted, hogyan működnek a modulok. Még ha ez az újonnan szerzett készség nem is jön elő túl gyakran, nagyobb a valószínűsége annak, hogy a meglévő Ansible modulokkal kapcsolatos hibákat vagy problémákat kell elhárítania, így az, hogy tudja, hogyan működik minden, értékes készség lehet.

Azt sem szabad elfelejtenie, hogy sok olyan régebbi, örökölt vagy házon belüli alkalmazás van a szervezetében, amelyeknek nincsenek saját moduljaik. Vannak más lehetőségek ezeknek az alkalmazásoknak az Ansible-on keresztül történő telepítésére és a konfigurálásukhoz szükséges sablonok biztosítására, de egyszerűbb lehet saját modult készíteni ezekhez az alkalmazásokhoz. Akárhogy is, a következő dokumentum biztosítja a kezdetekhez szükséges részleteket, és remélhetőleg lehetővé teszi a további bővítést.

Ha egy remek lehetőséget keres, hogy többet megtudjon az Ansible-ról, kövesse a legújabb könyvünk linkjét, Ansible Answers

Ez egy elég alapszintű példa, de remélem, látni fogod, hogy csak egy kis Python ismeretre van szükséged, kombinálva az Ansible ismereteiddel, és máris elkezdheted létrehozni a saját Ansible moduljaidat…Ne aggódj, ha a tudásod egy kicsit hiányos bármelyikben, mindent meg fogok magyarázni, ahogy együtt végigmegyünk rajta.

Most csak egy alapvető “Hello World” modult fogunk átnézni, hogy megmutassuk, milyen egyszerű ez. Ez a bejegyzés nem fog foglalkozni az Ansible telepítésével és alapjaival, ezért bátran nézd meg korábbi bejegyzéseinket a részletekért.

1. Kezdd azzal, hogy belépsz a munkakörnyezetedbe, amelyre már telepítve van az Ansible. A könyvtárban, amelyben dolgozol, hozz létre egy könyvtárkönyvtárat:

mkdir library

2.A könyvtárkönyvtárkönyvtárban hozz létre egy új modulfájlt hello_module.py néven:

touch library/hello_module.py

3. A kedvenc szövegszerkesztőddel nyisd meg az új fájlt, és add be a következő kódot(A bal oldali számok csak referenciaként vannak, és nem kell hozzáadni a fájlhoz):

Nincs itt semmi túl bonyolult, de ha nem vagy jártas a Pythonban, itt van az egyes sorok lebontása. Az 1. sor meghatározza, hogy a Python helyileg telepített verzióját kell használni. A 3. sor importálja azokat a specifikus modulokat, amelyek az Ansible segítségével fognak futni. Az 5-8. sor az a függvény, amely a modul részeként fog futni, konkrétan a 6. sor az AnsibleModule osztályt biztosítja, amely lehetővé teszi számunkra a bejövő paraméterek kezelését, és lehetővé teszi számunkra a programból való kilépést, a válasz a “hello”, majd a “world!” a 7. sorban. A 10. és 11. sor aztán a modul hívásakor lefuttatja a függvényt.

4. Most már létrehozhatunk egy playbookot a modul futtatásához. A munkakönyvtárunkban hozzuk létre a newmodule_test.yml fájlt:

touch newmodule_test.yml

5.Most már beindíthatjuk a szövegszerkesztőnket, és beírhatjuk a következő adatokat, hogy a playbookunk fusson

 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

Ha még nem dolgoztunk Ansible-vel, akkor a fenti kód képes a 2. sorban lévő hostot hozzárendelni ahhoz, amin éppen dolgozunk. A 3-6. sor futtatja az új modult, a 4. sor megnevezi a feladatot, az 5. sor meghívja a modult, a 6. sor pedig regisztrálja az eredményt egy result nevű változóként. Végül a 8. sor a debug funkciót használja az eredmények kiadására, hogy lássuk, minden működött.

6. Most már futtathatjuk az új playbookot a következő paranccsal:

ansible-playbook newmodule_test.yml

Amitől a következő kimenetet kapjuk:

Ha minden jól ment, akkor a fent említett kimenetet kell látnunk, ami egy szép “hello”-t ad: “world!” kimenetként.

Oké, elég gyorsan és mocskosan jártunk el itt, és ez volt a poszt célja, de csak arra van szükséged, hogy bővítsd a Python tudásodat, és máris képes leszel bővíteni azt, amit a moduljaid tudnak.

Found this post useful? Légy szíves koppints az alábbi taps gombra! 🙂

A szerzőről

Szólj hozzá!