Inventario elenco host avanzato Ansible

Inventario Elenco Host Avanzato Ansible



Utilizzando una delle più recenti tecniche di gestione, 'Ansible', introduciamo il modo in cui elenchiamo ogni host monitorato sul dispositivo. In Ansible, utilizziamo il plug-in 'inventario' per elencare tutti gli host nella rete.

È fondamentale disporre di un elenco di tutte le tue macchine host in Ansible. Mantenere organizzato un file di inventario è cruciale tanto quanto mantenere i playbook o le attività perché ti troverai costantemente in uno stato di incertezza e ti chiederai con diverse preoccupazioni se il tuo file di inventario è gestito male. Oltre a quanto sopra, la definizione del file di inventario delle variabili richieste riduce al minimo il contenuto dell'attività nei playbook e accelera le interpretazioni. Esiste un gruppo di variabili che possono essere dichiarate sia nei playbook sia nei file di inventario Ansible che sono responsabili della connessione e della configurazione del comportamento della connettività al computer host.







Prerequisiti:

Di seguito sono riportati i requisiti prima di implementare il comando di inventario dell'elenco host in Ansible:



  • Per iniziare l'implementazione, abbiamo prima bisogno di un software utilizzato per la configurazione di Ansible installato nel dispositivo server con l'ultima versione. Ansible deve essere configurato in modo da poter facilmente elencare la macchina all-host nella nostra rete.
  • Per eseguire qualsiasi attività di configurazione in Ansible, abbiamo bisogno di un gestore di configurazione principale. In questo tutorial, utilizziamo il server controller come controller principale.
  • Per implementare eventuali modifiche, dobbiamo scegliere come target i server host nell'esercitazione sull'inventario dell'elenco host. Qui abbiamo due host remoti di destinazione.

Esempio: inventario elenco host nella macchina

Ecco l'esempio che implementiamo nello strumento Ansible per controllare o definire l'inventario dell'elenco di host. Per questo, faremo questo esempio in diversi passaggi in modo da poter capire facilmente il funzionamento e l'implementazione di questo tutorial. Di seguito i passaggi:



Passaggio 1: controllare l'inventario dell'elenco host predefinito nel dispositivo host remoto di destinazione





Innanzitutto, controlliamo quanti host sono presenti nell'inventario dello strumento Ansible. Per questo, utilizziamo l'istruzione 'ansible' con '—list-hosts' in modo da poter visualizzare i nodi gestiti predefiniti nell'inventario.

[ radice @ maestro ansible ] # ansible all --list-hosts



Ecco l'output dopo aver scritto il comando precedente:

Il terminale Ansible mostra '0 host' come puoi vedere nella risposta fornita perché non abbiamo dichiarato l'inventario. Generiamo l'inventario per elencare l'inventario dell'host nel terminale prima di affrontare questo problema.

Inventario predefinito:

Quando installiamo Ansible nel software, Ansible crea un file di inventario che si trova scrivendo la seguente istruzione nel terminale:

[ radice @ maestro ansible ] # sudo nano /etc/ansible/hosts

Il risultato viene generato quando scriviamo l'istruzione precedente. Quindi, ti chiede di inserire la password:

In questa istantanea, il file degli host Ansible predefinito fornisce le informazioni relative agli host non raggruppati e agli host del gruppo di server Web. Questi host includono gli URL e diversi indirizzi IP.

Passaggio 2: definire l'inventario personalizzato in Ansible

In Ansible, possiamo anche definire il nostro inventario scrivendo più istruzioni nel terminale Ansible. Definire l'inventario durante l'esecuzione delle istruzioni e dei playbook è una decisione saggia che impedisce il conflitto tra gli host e l'errore durante la connessione con gli host.

Per iniziare a definire l'inventario da soli, scriviamo prima la seguente istruzione in modo da poter creare l'inventario in Ansible ed elencare gli host in esso in modo da stabilire la connessione tra il controller Ansible e gli host remoti di destinazione.

[ radice @ maestro ansible ] # host nano.yml

Dopo aver scritto la dichiarazione precedente, l'inventario viene creato e lanciato in un nuovo terminale Ansible con il titolo 'hosts.yml'. Successivamente, elenchiamo gli host di destinazione uno per uno nell'inventario. Il primissimo host con cui ci connettiamo è un host Linux. Forniamo l'indirizzo IP dell'host Linux, l'utente Ansible, la password Ansible, il tipo di connessione e il numero di porta Ansible. Facciamo lo stesso anche con il secondo host di destinazione. Il secondo host che utilizziamo è l'host Ansible. Tutti gli host che abbiamo elencato si trovano sotto il parametro Ansible nell'inventario.

Ansible:
host:
Host_Linux:
ansible_host: 192.168.3.229
ansible_user: root
ansible_password: tpstps_22
connessione_ansible: ssh
ansible_port: 22

Ansible_Host:
ansible_host: 192.168.7.10
ansible_user: iris
ansible_password: TpsTps_1
connessione_ansible: ssh
ansible_port: 22

Dopo aver creato il file di inventario e fornito gli host in esso contenuti, terminiamo ora il file di inventario e torniamo al terminale Ansible principale.

Passaggio 3: crea il playbook in Ansible

Successivamente, creiamo il playbook nello strumento Ansible in modo da definire le attività. Per questo, scriviamo il seguente comando nel terminale principale di Ansible:

[ radice @ maestro ansible ] # nano ansible_advanced_inventory.yml

Ora il playbook viene lanciato in un nuovo terminale. Innanzitutto, scriviamo il titolo del playbook. Nella riga successiva, forniamo l'host di destinazione. Usiamo l'opzione di raccolta dei fatti che viene utilizzata per ottenere tutte le informazioni degli host. Ma qui passiamo 'no' che significa che non vogliamo ottenere tutti i dati degli host.

Successivamente, elenchiamo le attività nel playbook. La prima attività viene utilizzata per visualizzare l'host di destinazione con il nome host. Nell'attività successiva, stampiamo i risultati dell'host.

- nome: inventario host avanzato Ansible
ospiti: Ansible [ 0 ]
raccogliere_fatti: no
compiti:

- nome: Ottieni Nome host del nodo gestito
conchiglia: 'Nome host'
registro: risultato

- nome stampato Nome host
eseguire il debug:
messaggio: '{{result.stdout}}'

Ora vogliamo eseguire il playbook insieme al file di inventario. Quindi, per prima cosa chiudiamo il playbook. Quanto segue è l'istruzione che usiamo per eseguire il comando:

[ radice @ maestro ansible ] # ansible-playbook ansible_advanced_inventory.yml –i host.yml

Di seguito è riportato il display di output che mostra che la connessione è riuscita. Poiché abbiamo passato Ansible[0] nel playbook, il primo host viene visualizzato nell'output:

Conclusione

Abbiamo avuto una discussione approfondita nell'inventario di Ansible durante questo tutorial. Abbiamo imparato come creare l'inventario in Ansible e quindi collegarli agli host remoti di destinazione. Abbiamo anche implementato un esempio in modo da poter comprendere facilmente i concetti dell'inventario Ansible.