Ricerca nel sito web

Come installare e configurare un nodo di controllo Ansible - Parte 2


Nell'argomento precedente vengono illustrate le terminologie e i concetti di base di Ansible. In questo argomento (Parte 2 della serie Ansible), dimostreremo come installare e configurare un nodo di controllo Ansible su RHEL 8.

Nella nostra configurazione, utilizzeremo 1 server Ansible e 2 nodi Linux remoti:

Control Node 1: RHEL 8 Server     IP: 192.168.0.108         Ansible Server
Managed Host 1: Debian 10         IP: 192.168.0.15          Webserver
Managed Host 2: CentOS 8          IP: 192.168.0.200	    Database Server

Cos'è un nodo di controllo Ansible?

Un nodo di controllo è un server Linux su cui è installato Ansible e viene utilizzato per gestire host o nodi remoti. Questi sistemi remoti sono noti come host gestiti o nodi gestiti.

Nella configurazione sopra, il nodo di controllo è il server RHEL 8 su cui verranno installati Ansible e Debian 10 e CentOS 8< sono gli host gestiti.

NOTA: Ansible è installato solo sul nodo di controllo e non sugli host gestiti.

Passaggio 1: installazione di Python 3

Per impostazione predefinita, RHEL 8 viene fornito con Python 3 e puoi verificare la versione di Python installata sul tuo server eseguendo.

python3 -V

Se per qualsiasi motivo Python3 non è installato, installalo utilizzando il seguente comando dnf.

dnf install python3

Se sul tuo sistema RHEL 8 esistono più versioni di Python, puoi impostare Python 3 come versione Python predefinita correndo.

alternatives --set python /usr/bin/python3

Passaggio 2: abilita il repository RedHat ufficiale

Dopo aver installato Python3, assicurati di aver abilitato il repository ufficiale di RedHat per Ansible come mostrato di seguito.

subscription-manager repos --enable ansible-2.8-for-rhel-8-x86_64-rpms

NOTA: affinché il comando precedente funzioni, assicurati di aver registrato il tuo abbonamento RHEL 8 per RedHat.

Passaggio 3: installa Ansible su RHEL 8

Per installare Ansible sul nodo di controllo che è il nostro sistema RHEL 8, esegui il comando.

dnf install ansible -y

Una volta installato, puoi verificare la versione di Ansible installata eseguendo il comando.

ansible --version

Passaggio 4: creazione di un file di inventario host statico

Finora abbiamo installato con successo ansible sul Control Node che è il nostro server RHEL 8. I nodi remoti che devono essere gestiti dal nodo di controllo devono essere definiti in un file chiamato file inventario. Il file di inventario è un file di testo semplice che risiede sul nodo di controllo ed è costituito dai nomi host o dagli indirizzi IP degli host remoti.

Un file host statico è un file di testo semplice che contiene un elenco di nodi gestiti definiti dai relativi indirizzi IP o nomi host. Creiamo un file statico "hosts" nella directory /etc/ansible/.

vi /etc/ansible/hosts

Successivamente, definisci uno o più gruppi per i tuoi host gestiti. Abbiamo 2 host gestiti come visto in precedenza nella configurazione all'introduzione di questo argomento. Dal setup, il file host statico sarà definito come segue:

[webserver]
192.168.0.15

[database_server]
192.168.0.200

Salva ed esci dal file di inventario.

Per elencare gli host gestiti eseguire:

ansible all -i hosts --list-hosts

Finora siamo riusciti a installare Ansible nel nodo di controllo e a definire gli host gestiti in un file Host statico residente sul nodo di controllo.

Successivamente, vedremo come possiamo gestire o controllare i nostri host remoti o gestiti.

Passaggio 5: configurare il nodo di controllo Ansible per connettersi ai nodi remoti

Per il nodo di controllo Ansible (RHEL 8) per gestire i sistemi host remoti (Debian 10 e CentOS 8) dobbiamo impostare l'autenticazione SSH senza password per gli host remoti. Affinché ciò accada, è necessario generare una coppia di chiavi SSH e salvare la chiave pubblica sui nodi remoti.

Sul nodo di controllo Ansible, accedi come utente normale e genera la coppia di chiavi SSH eseguendo il comando.

su tecmint
ssh-keygen

Successivamente, copia la chiave ssh pubblica sui nodi remoti come mostrato.

ssh-copy-id [email 	        (For Debian 10 node)
ssh-copy-id [email 	        (For CentOS 8 node)

Dopo aver aggiunto le chiavi pubbliche a tutti i nostri nodi remoti, emetteremo un comando ping dal nodo Ansible Control per garantire che siano raggiungibili.

ansible -m ping all

Dall'output sopra, possiamo vedere chiaramente che il comando ping ha avuto successo e siamo stati in grado di testare la raggiungibilità di tutti i nodi.

Conclusione

In questa guida, abbiamo installato e configurato con successo Ansible sul nodo di controllo che esegue RHEL 8. Successivamente abbiamo definito gli host remoti in un file host statico e configurato il nodo di controllo per connettere e controllare gli host gestiti impostando l'autenticazione SSH senza password.