Crearea propriilor module Ansible

Vince Sesto

Follow

Mar 20, 2019 – 4 min citește

Personalizarea Ansible pentru nevoile tale este atât de ușoară

În fiecare zi, numărul modulelor Ansible continuă să crească, cu suport suplimentar adăugat pe măsură ce utilizarea aplicației continuă. Așadar, de ce ați avea nevoie să vă creați propriile module Ansible. Ei bine, există o serie de motive, dar cred că cel mai valabil este, pentru a putea obține o înțelegere a modului în care funcționează modulele. Chiar dacă este posibil ca această abilitate nou descoperită să nu apară foarte des, există o probabilitate mai mare de a avea nevoie să depanați erori sau probleme cu modulele Ansible existente, astfel încât cunoașterea modului în care funcționează totul poate fi o abilitate valoroasă.

De asemenea, trebuie să vă amintiți că există o mulțime de aplicații mai vechi moștenite sau aplicații interne pe care organizația dvs. le poate utiliza și care nu au propriile module. Există alte opțiuni pentru implementarea acestor aplicații prin Ansible și furnizarea de șabloane pentru a le configura, dar poate fi mai ușor să vă creați propriul modul pentru aceste aplicații. Oricum ar fi, următorul document vă va oferi detaliile necesare pentru a începe și, sperăm, vă va permite să îl extindeți în continuare.

Dacă sunteți în căutarea unei modalități excelente de a învăța mai multe despre Ansible, urmați linkul către cea mai recentă carte a noastră, Ansible Answers

Acesta este un exemplu destul de elementar, dar sper că veți vedea că tot ce aveți nevoie este un pic de cunoștințe de Python, combinate cu abilitățile dumneavoastră Ansible și veți putea începe să vă creați propriile module Ansible…Nu vă faceți griji dacă cunoștințele dvs. sunt puțin deficitare la oricare dintre ele, totul vă va fi explicat pe măsură ce vom trece împreună prin ele.

Vom acoperi doar un modul de bază „Hello World”, pentru a vă arăta cât de ușor este. Această postare nu va acoperi instalarea și elementele de bază ale Ansible, așa că nu ezitați să consultați postările noastre anterioare pentru mai multe detalii.

1.Începeți prin a accesa mediul dvs. de lucru, care are deja Ansible instalat pe el. În cadrul directorului, în care lucrați, creați un director de bibliotecă:

mkdir library

2.În cadrul directorului de bibliotecă, creați noul dvs. fișier de modul cu numele hello_module.py:

touch library/hello_module.py

3. Cu editorul de text preferat, deschideți noul fișier și adăugați următorul cod(Numerele din stânga sunt doar pentru referință și nu trebuie adăugate în fișier):

Nu este nimic prea complicat aici, dar dacă nu sunteți familiarizat cu Python, iată o defalcare a fiecărei linii. Linia 1 specifică faptul că trebuie să folosească versiunea de Python instalată local. Linia 3 importă modulele specifice care vor rula cu Ansible. Liniile 5-8 reprezintă funcția care va rula ca parte a modulului dumneavoastră, în special linia 6 furnizează clasa AnsibleModule care ne permite să gestionăm parametrii de intrare și ne permite să ieșim din program, răspunsul fiind „hello” și apoi „world!” în linia 7. Liniile 10 și 11 rulează apoi funcția atunci când modulul este apelat.

4.Acum putem crea un playbook pentru a rula modulul. În directorul dvs. de lucru, creați fișierul newmodule_test.yml:

touch newmodule_test.yml

5.Acum puteți porni editorul de text și adăugați următoarele detalii pentru ca playbook-ul dvs. să ruleze

 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

Dacă nu ați mai lucrat cu Ansible înainte, codul de mai sus este capabil să atribuie gazda din linia 2 pentru a fi cea pe care lucrați. Liniile de la 3 la 6 rulează noul modul, linia 4 denumind sarcina, linia 5 apelând modulul, iar linia 6 înregistrând rezultatul ca o variabilă numită rezultat. Apoi, în cele din urmă, linia 8 folosește funcția de depanare pentru a afișa rezultatele pentru a vă arăta că totul a funcționat.

6.Acum putem rula noul playbook cu următoarea comandă:

ansible-playbook newmodule_test.yml

Ceea ce vă oferă următoarea ieșire:

Dacă totul a mers bine, ar trebui să vedeți ieșirea menționată mai sus, dându-vă un frumos „bună ziua”: „world!” ca ieșire.

Ok, am fost destul de rapid și murdar aici și acesta a fost scopul postării, dar tot ce aveți nevoie este să vă extindeți cunoștințele de Python și veți putea, de asemenea, să extindeți ceea ce pot face modulele voastre.

Ați găsit această postare utilă? Vă rugăm să apăsați pe butonul de aplauze de mai jos! 🙂

Despre autor

.

Lasă un comentariu