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.