Casa Impresa Come iniziare con Ansible

Come iniziare con Ansible

by Autore ospite

Ansible è un ottimo modo per distribuire in massa le modifiche su più macchine. Ad esempio, l'ho utilizzato per eseguire alcune configurazioni di base su una nuova macchina e per aggiornare più host contemporaneamente. È anche importante tenere presente che Ansible non viene utilizzato solo negli ambienti di laboratorio domestici, ma è anche molto popolare negli ambienti aziendali, il che lo rende un'abilità molto preziosa da possedere.

Ansible è un ottimo modo per distribuire in massa le modifiche su più macchine. Ad esempio, l'ho utilizzato per eseguire alcune configurazioni di base su una nuova macchina e per aggiornare più host contemporaneamente. È anche importante tenere presente che Ansible non viene utilizzato solo negli ambienti di laboratorio domestici, ma è anche molto popolare negli ambienti aziendali, il che lo rende un'abilità molto preziosa da possedere.

Configurazione di Ansible su una nuova macchina

Per prima cosa dobbiamo installare il pacchetto `ansible`, dovrebbe essere semplice come:

`sudo apt update && sudo apt install ansible`

E dobbiamo creare la nostra directory Ansible per lavorare su:

`mkdir ~/ansible && cd ~/ansible`

Ora dovresti trovarti nella directory Ansible sul tuo computer locale.

Panoramica di Ansible

Utilizziamo le due funzionalità principali di Ansible, gli inventari, che memorizzano tutti i tuoi host, e i playbook, che contengono le "istruzioni" da eseguire sugli host. Affinché Ansible possa leggere il nostro playbook ed eseguire le azioni, deve sapere dove si trovano gli host, ovvero qual è il file di inventario. È solo un "inventario" di tutti gli host.

Ora che disponiamo dei manuali pratici, una volta che Ansible ha letto l'inventario ed è a conoscenza di tutti gli host, inizia a cercare cosa fare. Questo è il playbook, che è semplicemente un semplice file YAML, che utilizza "moduli" per eseguire le attività. La documentazione su detti moduli è reperibile sul file Sito web Ansible. Se c'è qualcosa che non è chiaro, questo [Video Ansible per principianti] di NetworkChuck fa un buon lavoro nello spiegare le cose.

Creazione del nostro inventario Ansible

Ora che abbiamo una conoscenza di base di Ansible e di come funziona, possiamo creare il nostro inventario. Il formato può essere YAML o INI. Per semplicità, utilizzeremo INI e aggiungeremo solo un host.

Ecco un file di esempio:

inventario.ini:
“`ini
[potente]
192.168.1.78
“`

Chiamalo "inventory.ini" nella tua directory "ansible". Questo file crea un "gruppo" di "potenti" con un singolo host di "192.168.1.78". Possiamo utilizzarlo nei nostri playbook in seguito. Puoi assegnargli il nome del gruppo e l'IP che desideri, a seconda della configurazione. Se necessario, puoi anche aggiungere più host al gruppo.

Distribuzione di Playbook Ansible

Innanzitutto, vogliamo verificare che Ansible funzioni:

Tieni presente che la nostra chiave pubblica ssh deve trovarsi nel file Authorized_keys sull'host che stiamo tentando di raggiungere. In caso contrario, questo comando fallirà. Stiamo usando il gruppo "potente", ma usa qualunque nome tu abbia chiamato.

`ansible -i ./inventory.ini -m ping -u amministratore potente`

Se funziona, possiamo fornire i nostri playbook su quel nodo.

Il playbook che stiamo distribuendo aggiorna semplicemente il sistema, lo riavvia e quindi attende che torni online. Se nel gruppo sono presenti più nodi, passerà attraverso ciascun nodo uno per uno, aspettando che quello precedente torni online prima di riavviare il successivo. Ciò fornisce ai servizi sul nodo il tempo adeguato per arrestarsi e migrare se si utilizza qualcosa di simile Sciame di Docker.

aggiornamento.yml:
“` Yaml
– nome: aggiorna tutti i nodi e riavvia
raccogliere_fatti: no
host: "{{ variable_hosts }}"
diventare: sì
seriale: 1

compiti:
– nome: Aggiornamento e Upgrade | {{ nome_host_inventario }}
adatto:
# forza la compatibilità con le versioni precedenti
force_apt_get: sì
update_cache: sì
aggiornamento: "sì"

– nome: Riavvia | {{ nome_host_inventario }}
riavviare:
# quanto tempo attende il nodo per tornare online dopo il riavvio
riavvio_timeout: 300
# quanto tempo attendere per il riavvio dopo il completamento dell'attività precedente (apt).
pre_reboot_delay: 60

– nome: Ping | {{ nome_host_inventario }}
segnale acustico:

– nome: Pausa | {{ nome_host_inventario }}
pausa:
minuti: 5
“`

"ansible-playbook -i ./inventory.ini -e variable_hosts=powerful -u amministratore -K ./update.yml"

![Immagine dell'esecuzione del Playbook](./002-ansible-playbook-executed.png)

Spiegazione dei flag:
– -i: specifica il file di inventario.
– -e: dobbiamo specificare l'host, nel playbook abbiamo una variabile `variable_hosts`, che è ciò che viene passato al playbook.
– -u: questo è l'utente utilizzato per eseguire i comandi sull'host.
– -K: indica al playbook di richiedere all'utente la password sudo, altrimenti il ​​playbook fallirà.

Pensieri di chiusura

Ansible è uno strumento incredibilmente potente e versatile che può essere utilizzato per una varietà di cose. Con questo articolo abbiamo appena grattato la superficie, ma dovresti continuare a sperimentare e automatizzare le attività per saperne di più. Che si tratti di automatizzare le distribuzioni di Kubernetes o semplicemente di aggiornare i tuoi sistemi come abbiamo fatto oggi.

Sito Ansible

-Ethan Edwards

Interagisci con StorageReview

Newsletter | YouTube | LinkedIn | Instagram | Twitter | Facebook | TikTokRSS feed