Ansible è uno strumento di automazione gratuito e open source sponsorizzato da Red Hat. Utilizzando ansible possiamo gestire e configurare sistemi Linux e Windows senza alcuna installazione di agenti su di essi. Fondamentalmente funziona sul protocollo ssh e può configurare centinaia di server alla volta. Nella terminologia di ansible, il sistema su cui è installato Ansible è chiamato host/nodo di controllo e i sistemi gestiti da ansible sono chiamati host gestiti.
In questo post, discuteremo come installare l'ultima versione di Ansible su Rocky Linux 8. Di seguito sono riportati i dettagli sulla configurazione del mio laboratorio Ansible:
- Nodo di controllo – 192.168.1.170 – minimo Rocky Linux 8
- Host gestito 1 – 192.168.1.121 – Ubuntu 20.04 LTS
- Host gestito 2 – 192.168.1.122 – Rocky Linux 8
- utente sysops con diritti di amministratore
Installa Ansible tramite il comando dnf
1) Aggiorna il sistema
Per aggiornare Rocky Linux 8, esegui sotto il comando dnf.
$ sudo dnf update -y
Una volta installati tutti gli aggiornamenti, riavvia il sistema una volta.
$ sudo reboot
2) Configura repository EPEL
Il pacchetto Ansible e le sue dipendenze non sono disponibili nei repository di pacchetti Rocky Linux 8 predefiniti. Quindi, per installare ansible tramite dnf , dobbiamo prima configurare il repository EPEL.
Esegui i seguenti comandi,
$ sudo dnf install -y epel-release
3) Installa Ansible con il comando dnf
Ora siamo pronti per installare ansible con il comando dnf, esegui
$ sudo dnf install ansible -y
Una volta che ansible e le sue dipendenze sono state installate correttamente. Verifica la sua versione eseguendo il seguente comando,
$ ansible --version
Installazione Ansible con pip
Se stai cercando l'ultima versione di Ansible, installa ansible con pip. Fare riferimento ai seguenti passaggi.
Nota:al momento della stesura di questo post, è disponibile ansible 4.3.0
1) Installa tutti gli aggiornamenti
Installa tutti gli aggiornamenti disponibili utilizzando il comando sottostante
$ sudo dnf update -y
Riavvia il sistema una volta dopo aver installato gli aggiornamenti,
$ reboot
2) Installa python 3.8 e altre dipendenze
Esegui i seguenti comandi per installare Python 3.8 e altre dipendenze
$ sudo dnf module -y install python38 $ sudo alternatives --config python
Digita 3 e premi invio
3) Installa l'ultima versione di Ansible con pip
Esegui i seguenti comandi uno dopo l'altro per installare ansible,
$ sudo pip3 install setuptools-rust wheel $ sudo pip3 install --upgrade pip $ sudo python -m pip install ansible
L'output del comando python sopra vorrebbe di seguito:
L'output sopra conferma che Ansible è stato installato correttamente. Verifichiamo la versione di Ansible utilizzando il seguente comando ansible,
$ ansible --version
Verifica installazione Ansible
Ogni volta che Ansible viene installato con il comando dnf o yum, il file di configurazione predefinito "ansible.cfg" viene creato automaticamente nella cartella "/etc/ansible". Ma quando lo installiamo con pip, dobbiamo creare manualmente il suo file di configurazione.
Si consiglia di creare ansible.cfg per ogni progetto. A scopo dimostrativo, sto creando un progetto di automazione. Esegui seguendo il comando mkdir,
$ mkdir automation $ cd automation
Crea il file ansible.cfg con il seguente contenuto,
$ vi ansible.cfg [defaults] inventory = /home/sysops/auotmation/inventory remote_user = sysops host_key_checking = False [privilege_escalation] become=True become_method=sudo become_user=root become_ask_pass=False
Salva ed esci dal file.
Ora crea un file di inventario nel progetto di automazione (cartella) con il seguente contenuto.
$ vi inventory [prod] 192.168.1.121 [test] 192.168.1.122
Salva e chiudi il file.
Se hai notato attentamente il file ansible.cfg, ho usato remote_user come "sysops". Quindi creiamo chiavi ssh per l'utente sysops e condividiamolo tra gli host gestiti.
$ ssh-keygen
Condividi le chiavi SSH usando il comando ssh-copy-id,
$ ssh-copy-id [email protected] $ ssh-copy-id [email protected]
Nota:esegui il comando seguente su ciascun host gestito per eseguire tutti i comandi senza richiedere la password,
# echo "sysops ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/sysops
Verifica la connettività dal nodo di controllo agli host gestiti utilizzando il modulo ping,
$ cd automation/ $ ansible -i inventory all -m ping
Creiamo un playbook di esempio (web.yaml) per installare nginx e php su host gestiti,
$ vi web.yaml --- - name: Play to Packages hosts: - test - prod tasks: - name: Install php and nginx package: name: - php - nginx state: present
Salva e chiudi il file.
Esegui il playbook usando il comando sotto ansible-playbook,
$ ansible-playbook -i inventory web.yaml
L'output del comando sopra vorrebbe sotto
Ottimo, l'output sopra conferma che il playbook è stato eseguito correttamente e conferma anche che Ansible è installato correttamente.
Questo è tutto da questo post. Credo che questo post ti aiuti a installare e utilizzare Ansible su Rocky Linux 8. Condividi i tuoi commenti e le tue domande nella sezione commenti qui sotto.
Lettura consigliata: Come utilizzare i gestori in Ansible Playbook