Ansible è uno strumento usato per gestire e amministrare più server da un computer centrale. È uno strumento di gestione dei server. Ansible non ha bisogno di alcuna configurazione sul lato server come Chef o Puppet. Basta installare Ansible sul tuo computer e gestire o amministrare i server tramite SSH. È molto semplice e facile da usare. In questo articolo, vi mostrerò come installare e utilizzare Ansible su CentOS 8. Quindi, cominciamo.
Installazione di Ansible:
Ansible è disponibile nel repository EPEL di CentOS 8. Quindi, si può facilmente installare Ansible su CentOS 8.
Prima, aggiorna la cache del repository dei pacchetti DNF con il seguente comando:

Ora, per abilitare il repository EPEL, installa il pacchetto epel-release con il seguente comando:

Per confermare l’installazione, premi Y e poi premi <Enter>.

il pacchetto EPEL-release dovrebbe essere installato e il repository EPEL dovrebbe essere abilitato.

Ora, aggiorna nuovamente la cache del repository dei pacchetti DNF con il seguente comando:

Ora, installa Ansible con il seguente comando:

Per confermare l’installazione, premi Y e poi premi <Enter>.

DNF dovrebbe iniziare a scaricare tutti i pacchetti richiesti da internet.

Ti potrebbe essere chiesto di accettare la chiave GPG del repository EPEL. Premi Y e poi premi <Invio> per accettarla.

DNF dovrebbe iniziare ad installare tutti i pacchetti scaricati.

A questo punto, Ansible dovrebbe essere installato.

Ora, esegui il seguente comando:
Come puoi vedere, sto usando Ansible 2.9.3 e funziona bene.

Configurare i server per Ansible:
Per gestire o amministrare i server con Ansible, devi avere un server SSH installato e funzionante sui server. La porta SSH dei server deve essere aperta e i server devono essere accessibili dall’host Ansible. Questo è l’unico requisito per usare Ansible.
In questo articolo, userò 4 macchine virtuali (VM) (2 Ubuntu Server 18.04 LTS VMs e 2 Debian 10 VMs) per dimostrare le basi della gestione e amministrazione di server Ansible.
Le 4 VM sono:
linuxhint-8ee7a – 192.168.20.166
linuxhint-s40 – 192.168.20.171
linuxhint-s41- 192.168.20.170
Puoi usare gli indirizzi IP dei server per gestirli o amministrarli con Ansible. Puoi anche usare i nomi DNS dei server.
In questo articolo, userò il file /etc/hosts per la risoluzione DNS degli indirizzi IP delle VM.
Se vuoi seguire, apri il tuo file /etc/hosts con l’editor di testo vi come segue:

Ora, aggiungi le linee come segnato nello screenshot qui sotto e salva il file.

Ora, genera una chiave SSH sul tuo host CentOS 8 Ansible come segue:

Premi <Invio>.

Premi <Invio>.

Premi <Enter>.

La chiave SSH dovrebbe essere generata.

Ora, devi caricare la chiave SSH su tutti i server che vuoi gestire con Ansible.
Per copiare la chiave SSH sul server vm1.linuxhint.local server, esegui il seguente comando:

Ora, digita yes e poi premi <Enter>.

Ora, digita la password di login della vm1.linuxhint.local e premi <Enter>.

La chiave SSH dovrebbe essere copiata.

Fai la stessa cosa per il server vm2.linuxhint.local, vm3.linuxhint.local e vm4.linuxhint.local.



Una volta copiata la chiave SSH nelle VM, dovresti essere in grado di accedere a SSH senza alcuna password, come puoi vedere nello screenshot qui sotto.

Ora, esegui il seguente comando su ogni server per consentire l’accesso sudo senza password per l’utente di login. Questo è necessario per Ansible per eseguire qualsiasi comando di root.

Tutti i server sono ora pronti per essere configurati o gestiti da Ansible.
Usando Ansible:
Ansible mantiene una lista di tutti gli host che gestisce in un file chiamato file inventario. Il file inventario di Ansible è solo un semplice file di testo.
Creiamo prima una nuova directory del progetto Ansible ~/ansible/, poi creeremo il nostro file inventario.

Ora, naviga nella directory ~/ansible.

Ora, crea un file inventario Ansible come segue. Puoi chiamare questo file in qualsiasi modo. Io lo chiamerò hosts.

Ora, puoi aggiungere i tuoi server come segue. Qui, l’opzione ansible_user è usata per definire l’utente che Ansible userà per eseguire i comandi su questi server. Di solito è l’utente di login del server.

Puoi anche mescolare indirizzi IP e nomi DNS dei server nel file di inventario.

Puoi anche raggruppare i server. Qui, ho 2 gruppi, webserver e dbserver.
Nel gruppo webserver, ho aggiunto i server vm1 e vm2. Nel gruppo dbserver, ho aggiunto i server vm3 e vm4.

Una volta creato il file di inventario, è possibile utilizzare il file di inventario utilizzando l’opzione -i di Ansible.
Puoi elencare tutti gli host dal file di inventario come segue:

Puoi controllare se tutti gli host sono attivi come segue:

Come puoi vedere, tutti gli host sono attivi.

Puoi anche pingare tutti gli host in un singolo gruppo.

Puoi eseguire comandi di shell usando Ansible come segue:
Puoi anche eseguire comandi di shell (con privilegi sudo) come segue.
|groupName>
Per esempio, puoi aggiornare la cache del repository dei pacchetti APT sugli host nel gruppo webserver usando Ansible come segue:
![]()
Come puoi vedere, la cache del repository dei pacchetti APT viene aggiornata per tutti gli host nel gruppo webserver.

Provo a installare Apache 2 web server su tutti gli host del gruppo webserver.
‘apt install -y apache2’ webserver
![]()
Apache webserver dovrebbe essere installato in tutti gli host del gruppo webserver.

Come puoi vedere, il server web Apache sta lavorando su tutti gli host del gruppo webserver.
http://localhost’ webserver

Allo stesso modo, puoi eseguire qualsiasi comando su tutti gli host nel gruppo dbserver.

Puoi anche usare Ansible Playbook per gestire i tuoi server più facilmente. Ansible Playbook è fuori dallo scopo di questo articolo. Leggi la documentazione di Ansible per maggiori informazioni su Ansible Playbook.
Grazie per aver letto questo articolo.