Ansible

Come creare un inventario Ansible in formato JSON

Come creare un inventario Ansible in formato JSON
Per impostazione predefinita, un file di inventario Ansible utilizza il formato di configurazione INI. Puoi anche utilizzare il formato di configurazione JSON (JavaScript Object Notation) anche per i file di inventario Ansible.

In questo articolo, ti mostrerò come utilizzare il formato di configurazione JSON per creare i file di inventario Ansible. Quindi iniziamo.

Prerequisiti:

Se vuoi provare gli esempi di questo articolo,

1) Devi avere Ansible installato sul tuo computer.
2) Devi avere almeno 6 host Linux configurati per l'automazione Ansible.

Ci sono molti articoli su LinuxHint dedicati all'installazione di Ansible e alla configurazione degli host per l'automazione di Ansible. Puoi controllarli se necessario.

Creazione di una directory di progetto:

In questo articolo, utilizzerò Visual Studio Code per modificare il file di configurazione di Ansible, il file di inventario e i playbook. Puoi utilizzare qualsiasi editor o IDE che desideri.

Prima di iniziare, creiamo una directory di progetto in modo da poter organizzare i nostri file di progetto.

Ho creato una nuova directory di progetto json-inventario/ nel mio CASA directory come puoi vedere nello screenshot qui sotto.

Dopo aver creato una nuova directory di progetto, aprila con il tuo editor di testo o IDE preferito.

In Visual Studio Code, vai a File > Cartella aperta… come indicato nello screenshot qui sotto.

Ora seleziona la directory del progetto json-inventario/ e clicca su ok.

La directory del progetto dovrebbe essere aperta con Visual Studio Code.

Ora, fai clic su Nuovo file  e crea un nuovo file ansible.cfg.

Quindi, digita le seguenti righe nel ansible.cfg file.

[predefiniti]
inventario         = host.json
host_key_checking  = Falso

Quando hai finito, premi + S per salvare il ansible.cfg file.

Allo stesso modo, crea a padroni di casa.json file. Questo è il file di inventario JSON. Lascialo vuoto per ora. Ci lavoreremo dopo.

Ora, fai clic su Nuova cartella  e crea una nuova directory playbook come mostrato nello screenshot qui sotto.

Aggiunta di host al file di inventario JSON:

In questa sezione, ti mostrerò come aggiungere host al tuo file di inventario in formato JSON.

Nel padroni di casa.json file di inventario, aggiungi un tutti sezione.


"tutti":

Nel tutti sezione, aggiungi a ospite sezione e aggiungi i tuoi host.


"tutti":
"ospiti":
"host1": null,
"host2": null


Ad esempio, puoi aggiungere gli host vm1.nodokite.come e vm2.nodokite.come nel padroni di casa.json file di inventario come segue.


"tutti":
"ospiti":
"vm1.nodokite.com": null,
"vm2.nodokite.com": null


Quando hai finito, premi + S per salvare il padroni di casa.json file.

Puoi controllare quali host sono disponibili nel tuo file di inventario con il seguente comando:

$ ansible --list-hosts all

Come puoi vedere, gli host che ho aggiunto nel mio file di inventario (vm1.nodokite.come e vm2.nodokite.come) sono elencati.

Raggruppamento di host nel file di inventario JSON:

In questa sezione, ti mostrerò come raggruppare gli host nel tuo file di inventario JSON.

Il gruppo host predefinito in Ansible è tutti. Il tutti gruppo ha tutti gli host di ogni gruppo (inclusi gli host di tutti gruppo).

Aggiungi gruppi di host in bambini sezione del tuo file di inventario JSON.


"tutti":

"bambini":
"gruppo 1":
,
"gruppo2":



Ad esempio, per aggiungere gli host vm3.nodokite.come e vm4.nodokite.come nel ragnatela gruppo e per aggiungere gli host vm5.nodokite.come e vm6.nodokite.come nel db gruppo, digita le seguenti righe nel tuo file di inventario JSON.


"tutti":
"ospiti":
"vm1.nodokite.com": null,
"vm2.nodokite.com": null
,
"bambini":
"ragnatela":
"ospiti":
"vm3.nodokite.com": null,
"vm4.nodokite.com": null

,
"db":
"ospiti":
"vm5.nodokite.com": null,
"vm6.nodokite.com": null




Quando hai finito, premi + S per salvare il padroni di casa.json file.

Qui, le linee segnate aggiungono gli host vm3.nodokite.come e vm4.nodokite.come nel ragnatela gruppo.

Le linee contrassegnate aggiungono gli host vm5.nodokite.come e vm6.nodokite.come nel db gruppo.

Ora puoi elencare tutti gli host disponibili nel tuo file di inventario JSON con il seguente comando:

$ ansible --list-hosts all

Come puoi vedere, tutti gli host di ogni gruppo (ragnatela, db, e tutti) vengono visualizzati.

Per elencare gli host disponibili da ragnatela solo gruppo, eseguire il seguente comando:

$ ansible --list-hosts web

Come puoi vedere, tutti gli host del ragnatela gruppo sono visualizzati.

Allo stesso modo, puoi elencare tutti gli host disponibili da db gruppo con il seguente comando:

$ ansible --list-hosts db

Come puoi vedere, tutti gli host del db gruppo sono visualizzati.

Aggiunta di fatti globali nel file di inventario JSON:

In Ansible, le variabili sono anche chiamate fatti. I fatti globali o le variabili globali sono accessibili da ogni host di ogni gruppo nel tuo file di inventario JSON. In questa sezione, ti mostrerò come aggiungere fatti globali o variabili globali in ansible.

Puoi aggiungere fatti globali o variabili globali nel vars sezione interna tutti sezione del tuo file di inventario JSON come segue:


"tutti":
"ospiti":

,
"var":
"variabile1": "valore1",
"variabile2": "valore2"
,
"bambini":
"ragnatela":

,
"db":




Ad esempio, puoi aggiungere i fatti/variabili globali webroot e indice nel vars sezione del tuo file di inventario JSON come segue:


"tutti":
"ospiti":
"vm1.nodokite.com": null,
"vm2.nodokite.com": null
,
"var":
"webroot": "/var/www/html",
"indice": "indice.php"
,
"bambini":
"ragnatela":
"ospiti":
"vm3.nodokite.com": null,
"vm4.nodokite.com": null

,
"db":
"ospiti":
"vm5.nodokite.com": null,
"vm6.nodokite.com": null




Quando hai finito, premi + S per salvare il file di inventario JSON.

Per verificare se i fatti/variabili globali funzionano, creerò un nuovo playbook print_vars1.igname. Lo scopo di questo playbook è stampare i fatti/variabili usando il using eseguire il debug modulo di Ansible. Ci aiuterà anche a capire la precedenza di fatti/variabili in seguito.

Quindi, crea un nuovo playbook print_vars1.igname nel tuo libri di gioco/ directory e digita le seguenti righe nella tua print_vars1.igname file.

- host: tutti
utente: ansible
compiti:
- nome: stampa webroot e index
eseguire il debug:
msg: 'WebRoot webroot e indice index'

Quando hai finito, premi + S per salvare il print_vars1.igname file.

Per verificare se i fatti/variabili globali funzionano, eseguire il comando print_vars1.igname playbook come segue:

$ ansible-playbook playbooks/print_vars1.igname

Il playbook dovrebbe funzionare correttamente.

Scorri indietro al COMPITO sezione. Come puoi vedere, il webroot e indice fatti/variabili vengono applicati a ogni host nel mio file di inventario JSON. Quindi, i fatti/variabili globali stanno funzionando.

Aggiunta di dati di gruppo nel file di inventario JSON:

Puoi aggiungere fatti/variabili anche per un gruppo host specifico. In questa sezione, ti mostrerò come aggiungere fatti/variabili di gruppo nel tuo file di inventario JSON.

Aggiungo lo stesso webroot e indice fatti nel ragnatela gruppo host del mio file di inventario JSON. Il valore di questi fatti sarà diverso. L'ho fatto in modo che tu possa anche capire come funzionano i fatti/la precedenza delle variabili in Ansible.

Per aggiungere i fatti webroot e indice nel ragnatela gruppo ospitante, aggiungi a vars sezione nel ragnatela sezione del tuo file di inventario JSON come segue:


"tutti":
"ospiti":
"vm1.nodokite.com": null,
"vm2.nodokite.com": null
,
"var":
"webroot": "/var/www/html",
"indice": "indice.php"
,
"bambini":
"ragnatela":
"ospiti":
"vm3.nodokite.com": null,
"vm4.nodokite.com": null
,
"var":
"webroot": "/web/public_html",
"indice": "indice.html"

,
"db":
"ospiti":
"vm5.nodokite.com": null,
"vm6.nodokite.com": null




Quando hai finito, premi + S per salvare il file di inventario JSON.

Per verificare i fatti, eseguire il print_vars1.igname playbook come segue:

$ ansible-playbook playbooks/print_vars1.igname

Come puoi vedere, i fatti di gruppo webroot e indice sono disponibili solo per gli host vm3.nodokite.come e vm4.nodokite.come, i padroni di casa nel ragnatela gruppo.

Si noti inoltre che i fatti di gruppo (webroot e indice) ha sostituito i fatti globali (webroot e indice). Quindi, puoi dire che i fatti di gruppo hanno una precedenza maggiore rispetto ai fatti globali.

Aggiunta di fatti host nel file di inventario JSON:

Puoi anche aggiungere fatti/variabili specifici dell'host nel tuo file di inventario JSON. In questa sezione, ti mostrerò come aggiungere fatti/variabili specifici dell'host nel tuo file di inventario JSON.

Per fatti globali o di gruppo, abbiamo mantenuto il valore degli host nullo.

Per aggiungere fatti host, sostituisci nullo con i dati dell'host nel file di inventario JSON come segue:

"ospiti":
"host1":
"var1": "valore1",
"var2": "valore2",
,
"host2":
"var2": "valore3",
"var3": "valore4",

Ad esempio, per aggiungere il indice ospita infatti il vm5.nodokite.come ospitare, sostituire nullo con i fatti host come segue.


"tutti":
"ospiti":
"vm1.nodokite.com": null,
"vm2.nodokite.com": null
,
"var":
"webroot": "/var/www/html",
"indice": "indice.php"
,
"bambini":
"ragnatela":
"ospiti":
"vm3.nodokite.com": null,
"vm4.nodokite.com": null
,
"var":
"webroot": "/web/public_html",
"indice": "indice.html"

,
"db":
"ospiti":
"vm5.nodokite.com":
"indice": "indice.pi"
,
"vm6.nodokite.com": null




Quando hai finito, premi + S per salvare il file di inventario JSON.

Per verificare i dati disponibili, eseguire il print_vars1.igname playbook come segue:

$ ansible-playbook playbooks/print_vars1.igname

Come puoi vedere, il indice infatti è disponibile solo per il vm5.nodokite.come ospite.

Nota anche che il fatto host ha sostituito il fatto globale. I fatti/variabili dell'host hanno la precedenza più alta in Ansible. Quindi, i fatti/variabili host sostituiranno i fatti/variabili del gruppo e i fatti/variabili globali.

Conclusione:

In questo articolo, ti ho mostrato come creare un file di inventario Ansible in formato JSON. Ti ho mostrato come aggiungere host, aggiungere gruppi host, aggiungere fatti globali, aggiungere fatti di gruppo e aggiungere fatti host nel tuo file di inventario in formato JSON.

Come mostrare il contatore FPS nei giochi Linux
I giochi Linux hanno avuto una grande spinta quando Valve ha annunciato il supporto Linux per il client Steam e i loro giochi nel 2012. Da allora, mol...
Come scaricare e giocare a Sid Meier's Civilization VI su Linux
Introduzione al gioco Civilization 6 è una versione moderna del concetto classico introdotto nella serie dei giochi Age of Empires. L'idea era abbasta...
Come installare e giocare a Doom su Linux
Introduzione a Doom La serie Doom è nata negli anni '90 dopo l'uscita dell'originale Doom. È stato un successo immediato e da quel momento in poi la s...