Vytvoření vlastních modulů Ansible

Vince Sesto

Sledovat

20. března, 2019 – 4 minuty čtení

Přizpůsobení Ansible vašim potřebám je tak snadné

.

Každým dnem počet modulů Ansible neustále roste a s pokračujícím používáním aplikace přibývá další podpora. Proč byste tedy měli vytvářet vlastní moduly Ansible. No, důvodů je celá řada, ale myslím, že ten nejpádnější je, abyste získali přehled o tom, jak moduly fungují. I když se tato nově získaná dovednost nemusí objevovat příliš často, je větší pravděpodobnost, že budete muset řešit chyby nebo problémy se stávajícími moduly Ansible, takže znalost toho, jak vše funguje, může být cennou dovedností.

Neměli byste také zapomínat, že existuje mnoho starších starších aplikací nebo vlastních aplikací, které vaše organizace může používat a které nemají vlastní moduly. Existují i jiné možnosti nasazení těchto aplikací prostřednictvím Ansible a poskytování šablon pro jejich konfiguraci, ale může být jednodušší vytvořit pro tyto aplikace vlastní modul. Ať tak či onak, následující dokument vám poskytne podrobnosti pro začátek a snad vám umožní další rozšíření.

Pokud hledáte skvělý způsob, jak se o Ansible dozvědět více, následujte odkaz na naši nejnovější knihu, Ansible Answers

Jedná se o docela základní příklad, ale doufám, že uvidíte, že stačí trocha znalostí jazyka Python, zkombinovat je se znalostmi Ansible a budete moci začít vytvářet vlastní moduly Ansible…Nebojte se, pokud jsou vaše znalosti v obou oblastech trochu nedostatečné, vše bude vysvětleno, až to společně projdeme.

Budeme se zabývat pouze základním modulem „Hello World“, abychom vám ukázali, jak je to snadné. V tomto příspěvku se nebudeme zabývat instalací a základy systému Ansible, takže se klidně podívejte na naše předchozí příspěvky, kde najdete více podrobností.

1. Začněte přístupem do svého pracovního prostředí, ve kterém je již Ansible nainstalován. V adresáři, ve kterém pracujete, vytvořte adresář s knihovnou:

mkdir library

2. V adresáři s knihovnou vytvořte nový soubor modulu s názvem hello_module.py:

touch library/hello_module.py

3. V adresáři s knihovnou vytvořte soubor s názvem hello_module.py. Pomocí svého oblíbeného textového editoru otevřete nový soubor a přidejte do něj následující kód(Čísla vlevo jsou zde jen pro informaci a neměla by se do souboru přidávat):

Není zde nic složitého, ale pokud se v Pythonu nevyznáte, zde je rozpis jednotlivých řádků. Řádek 1 určuje, že je třeba použít lokálně nainstalovanou verzi Pythonu. Řádek 3 importuje specifické moduly, které se budou spouštět s Ansible. Řádky 5 až 8 jsou funkce, které se budou spouštět jako součást modulu, konkrétně řádek 6 poskytuje třídu AnsibleModule, která nám umožňuje zpracovávat příchozí parametry a umožňuje ukončit program, přičemž odpovědí je „hello“ a v řádku 7 pak „world!“. Řádky 10 a 11 pak spustí funkci při volání modulu.

4. Nyní můžeme vytvořit playbook pro spuštění modulu. V pracovním adresáři vytvořte soubor newmodule_test.yml:

touch newmodule_test.yml

5. Nyní můžete spustit textový editor a doplnit do něj následující údaje, aby se váš playbook spustil

 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

Pokud jste se systémem Ansible ještě nepracovali, výše uvedený kód dokáže přiřadit hostitele v řádku 2 tomu, se kterým pracujete. Řádky 3 až 6 spustí nový modul, přičemž řádek 4 pojmenuje úlohu, řádek 5 zavolá modul a řádek 6 zaregistruje výsledek jako proměnnou s názvem result. A nakonec řádek 8 použije funkci debug pro vypsání výsledků, abyste viděli, že vše fungovalo.

6. Nyní můžeme spustit nový playbook následujícím příkazem:

ansible-playbook newmodule_test.yml

Který vám poskytne následující výstup:

Pokud vše proběhlo v pořádku, měli byste vidět výše zmíněný výstup, který vás pěkně pozdraví: „world!“ jako výstup.

Ok, byli jsme tu docela rychlí a špinaví, což bylo cílem tohoto příspěvku, ale stačí, když si rozšíříte své znalosti Pythonu a budete také schopni rozšířit to, co vaše moduly umí.

Přišel vám tento příspěvek užitečný? Laskavě klepněte na tlačítko tlesknutí níže! 🙂

O autorovi

Napsat komentář