Ansible è uno strumento di configurazione e automazione IT gratuito e opensource. È disponibile per quasi tutte le distribuzioni Linux e può essere utilizzato per gestire sistemi Linux e Windows. Ora un giorno Ansible viene utilizzato anche per gestire istanze EC2 in AWS, macchine virtuali e container ecc. Non richiede alcun agente su host gestiti, ma richiede solo una connessione ssh.
In questo articolo, tratteremo come installare l'ultima versione di Ansible su Ubuntu 20.04 LTS / 21.04
Requisiti di sistema per Ansible
- Ubuntu 20.04 LTS / 21.04 con installazione minima
- utente sudo con privilegi di root
- 2 CPU/vCPU
- 2 GB di RAM o più
- Disco rigido da 20 GB
- Connessione a Internet (nel caso in cui non si disponga di un server di repository apt configurato in locale)
Di seguito sono riportati i dettagli sulla configurazione del mio laboratorio per una dimostrazione ansible.
- Nodo di controllo Ansible – control.example.com (192.168.1.112)
- Nodi gestiti Ansible – node1.example.com e node2.example.com
- sysops sudo utente su controllo e nodi gestiti con privilegi.
Nota:qui node1 è un sistema Ubuntu e node2 è un sistema CentOS e control node è il sistema in cui installeremo ansible. Presumo che sysops sia già stato creato su ciascun host.
Per configurare l'utente sudo (sysops) per eseguire tutti i comandi senza richiedere la password, eseguire il comando seguente su ciascun host gestito
echo "sysops ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/sysops
Passiamo ai passaggi di installazione di Ansible
Passaggio 1) Applica gli aggiornamenti sul nodo di controllo
Accedi al sistema Ubuntu 20.04 LTS / 21.04 ed esegui i seguenti comandi apt per applicare gli aggiornamenti.
$ sudo apt update $ sudo apt updgrade -y
Una volta installati tutti gli aggiornamenti, riavviare il sistema una volta.
$ sudo reboot
Passaggio 2) Installa le dipendenze e configura Ansible Repository
Installa le dipendenze ansible eseguendo il seguente comando apt,
$ sudo apt install -y software-properties-common
Una volta installate le dipendenze, configura il repository PPA per ansible, esegui
$ sudo add-apt-repository --yes --update ppa:ansible/ansible
Ora aggiorna il repository eseguendo sotto il comando apt.
$ sudo apt update
Passaggio 3) Installa l'ultima versione di ansible
Ora siamo pronti per installare l'ultima versione di Ansible su Ubuntu 20.04 LTS / 21.04, eseguire il comando seguente.
$ sudo apt install -y ansible
Dopo la corretta installazione di Ansible, verificane la versione eseguendo il comando
$ ansible --version
Ottimo, l'output sopra conferma che Ansible versione 2.9.6 è installata.
Passaggio 4) Imposta le chiavi SSH e condividile tra i nodi gestiti
Ora generiamo le chiavi SSH per l'utente sysops dal nodo di controllo e condividiamolo tra gli host gestiti. Esegui il comando ssh-keygen
$ ssh-keygen
Premi invio quando viene richiesto l'input, l'output è mostrato di seguito
Nota:aggiungere le voci dell'host gestito nel file /etc/hosts sul nodo di controllo. Questo è richiesto solo quando non hai configurato il server DNS locale.
192.168.1.115 node1.example.com 192.168.1.120 node2.example.com
Per condividere le chiavi ssh tra il controllo e gli host gestiti, esegui l'esempio del comando ssh-copy-id mostrato di seguito
$ ssh-copy-id node1.example.com $ ssh-copy-id node2.example.com
L'output dei comandi precedenti apparirà come sotto
Passaggio 5) Crea ansible cfg e file di inventario
Si consiglia sempre di avere ansible.cfg e file di inventario separati per ogni progetto. A scopo dimostrativo sto usando demo come nome del progetto. Quindi, crea prima la cartella del progetto eseguendo il comando mkdir.
$ mkdir demo
Copia il file ansble.cfg predefinito nella cartella ~/demo,
$ cp /etc/ansible/ansible.cfg ~/demo/
Modifica il file ~/demo/ansible.cfg, imposta i seguenti parametri,
$ vi ~/demo/ansible.cfg
Sotto le sezioni predefinite
inventory = /home/sysops/demo/inventory remote_user = sysops host_key_checking = False
Nella sezione privilegi_escalation
become=True become_method=sudo become_user=root become_ask_pass=False
Salva e chiudi il file. Ora creiamo il file di inventario che abbiamo definito nel file ~/demo/ansible.cfg.
$ vi ~/demo/inventory [dev] node1.example.com [prod] node2.example.com
salva ed esci dal file
Ora finalmente istruisci ansible a utilizzare il file ansible.cfg del progetto demo dichiarando la variabile ANSIBLE_CONFIG, esegui i seguenti comandi,
$ export ANSIBLE_CONFIG=/home/sysops/demo/ansible.cfg $ echo "export ANSIBLE_CONFIG=/home/sysops/demo/ansible.cfg" >> ~/.profile
Esegui il comando ansible –version dalla cartella demo per verificare la configurazione ansible
$ cd demo/ $ ansible --version
Ottimo, Ansible ora sta leggendo il file di configurazione ansible del nostro progetto. Verifichiamo la connettività dei nodi gestiti utilizzando il comando ad-hoc ansible,
$ ansible all -m ping
Nota:assicurati di eseguire il comando ansible dalla cartella demo.
L'output del comando sarebbe simile al seguente:
Questo output conferma che la connettività è attiva dal nodo di controllo agli host gestiti.
Passaggio 6) Crea un playbook Ansible per installare i pacchetti su host gestiti
Per verificare l'installazione e la configurazione ansible, creiamo un playbook di esempio denominato packages.yaml nella cartella demo.
$ vi packages.yaml --- - name: Playbook to Install Packages hosts: - dev - prod tasks: - name: Install php and mariadb package: name: - php - mariadb-server state: present
salva e chiudi il file
Ora esegui il playbook usando il comando ansible-playbook,
$ ansible-playbook packages.yaml
Uscita:
L'output sopra conferma che il playbook è stato eseguito correttamente. Per verificare il risultato, esegui i seguenti comandi ad hoc,
$ ansible dev -m shell -a 'dpkg -l | grep -E "php|mariadb"' $ ansible prod -m shell -a 'rpm -qa | grep -E "php|mariadb"'
Questa è la conclusione dell'articolo. Se hai trovato questo articolo informativo, non esitare a condividerlo. Nel caso in cui tu abbia qualche domanda, lasciala nelle sezioni dei commenti qui sotto.
Leggi anche :Come utilizzare i gestori in Ansible Playbook