Creare i propri moduli Ansible

Vince Sesto

Follow

Mar 20, 2019 – 4 min read

Personalizzare Ansible per le tue esigenze è così facile

Ogni giorno il numero di moduli Ansible continua a crescere con un supporto extra aggiunto man mano che l’applicazione viene utilizzata. Quindi, perché dovreste avere bisogno di creare i vostri moduli Ansible. Beh, ci sono un certo numero di ragioni, ma penso che la più valida sia, in modo da poter acquisire una comprensione su come funzionano i moduli. Anche se, questa nuova abilità trovata potrebbe non venire fuori molto spesso, c’è più di una probabilità di avere bisogno di risolvere errori o problemi con i moduli Ansible esistenti, quindi sapere come funziona tutto può essere un’abilità preziosa.

È anche necessario ricordare che ci sono un sacco di vecchie applicazioni legacy o applicazioni in house che la vostra organizzazione può utilizzare che non hanno i loro moduli. Ci sono altre opzioni per distribuire queste applicazioni attraverso Ansible e fornire modelli per configurarle, ma potrebbe essere più facile creare il proprio modulo per queste applicazioni. In ogni caso, il seguente documento vi fornirà i dettagli per iniziare e, si spera, vi permetterà di estenderlo ulteriormente.

Se stai cercando un ottimo modo per imparare di più su Ansible, segui il link al nostro ultimo libro, Ansible Answers

Questo è un esempio piuttosto basilare, ma spero che vedrai che tutto ciò di cui hai bisogno è un po’ di conoscenza di Python, combinata con le tue competenze Ansible e sarai in grado di iniziare a creare i tuoi moduli Ansible…Non preoccuparti se la tua conoscenza è un po’ carente su entrambi, tutto sarà spiegato mentre lo affrontiamo insieme.

Copriremo solo un modulo base “Hello World”, per mostrarvi quanto sia facile. Questo post non coprirà l’installazione e le basi di Ansible, quindi sentitevi liberi di controllare i nostri post precedenti per maggiori dettagli.

1.Iniziate accedendo al vostro ambiente di lavoro, che ha già Ansible installato su di esso. All’interno della directory in cui stai lavorando, crea una directory di libreria:

mkdir library

2.All’interno della directory di libreria, crea il tuo nuovo file di nome hello_module.py:

touch library/hello_module.py

3. Con il vostro editor di testo preferito, aprite il nuovo file e aggiungete il seguente codice (i numeri a sinistra sono solo per riferimento e non devono essere aggiunti al file):

Non c’è niente di troppo complicato qui, ma se non avete familiarità con Python, ecco una ripartizione di ciascuna delle linee. La linea 1 specifica che ha bisogno di usare la versione di Python installata localmente. La linea 3 importa i moduli specifici che verranno eseguiti con Ansible. Le linee da 5 a 8 sono le funzioni che verranno eseguite come parte del vostro modulo, in particolare la linea 6 fornisce la classe AnsibleModule che ci permette di gestire i parametri in entrata e ci permette di uscire dal programma, con la risposta “hello” e poi “world!” nella linea 7. Le linee 10 e 11 eseguono poi la funzione quando il modulo viene chiamato.

4.Possiamo ora creare un playbook per eseguire il modulo. Nella tua directory di lavoro, crea il file newmodule_test.yml:

touch newmodule_test.yml

5.Ora puoi accendere il tuo editor di testo e aggiungere i seguenti dettagli in modo che il tuo playbook venga eseguito

 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

Se non hai mai lavorato con Ansible prima, il codice sopra è in grado di assegnare l’host nella linea 2 per essere quello su cui stai lavorando. Le linee da 3 a 6 eseguono il nuovo modulo, con la linea 4 che nomina il compito, la linea 5 che chiama il modulo e la linea 6 che registra il risultato come una variabile chiamata risultato. Poi finalmente la linea 8 usa la funzione di debug per mostrare i risultati e che tutto ha funzionato.

6.Possiamo ora eseguire il nuovo playbook con il seguente comando:

ansible-playbook newmodule_test.yml

Che ti dà il seguente output:

Se tutto è andato bene, dovresti vedere l’output di cui sopra che ti dà un bel “ciao”: “world!” come output.

Ok, siamo stati piuttosto veloci e sporchi qui e questo era lo scopo del post, ma tutto quello che vi serve è estendere la vostra conoscenza di Python e sarete anche in grado di estendere ciò che i vostri moduli possono fare.

Hai trovato utile questo post? Gentilmente tocca il pulsante di applauso qui sotto! 🙂

Informazioni sull’autore

.

Lascia un commento