Hi guys,
in questo tutorial vedremo come si installa e configura Ansible su una macchina Redhat Enterprise Linux. Per chi non ne sapesse molto di Ansible, ve lo riassumo qui, dicendovi che si tratta di un potentissimo strumento opensource le cui funzionalità vanno dall'automazione e la gestione remota di server sia Linux sia Windows alla gestione di ambienti emulati e cloud tipo AWS, OpenStack, MS Azure, VMware etc. Ad ogni modo di seguito il link a wikipedia come punto di partenza per gli approfondimenti: https://it.wikipedia.org/wiki/Ansible_(software).
Requisiti per l'installazione
Per iniziare abbiamo bisogno di 2 PC in rete o anche VM:
RHEL 8 (il nostro nodo di controllo) IP: 10.0.0.68
Ubuntu 18.04 Server (host gestito dal controller) IP: 192.10.0.0.70
Giusto per la cronaca, Ansible è una piattaforma agentless cioè che non richiede un agent software installato sul server remoto. Il tutto avviene tramite protocollo SSH che di fatto è l'unico requisito richiesto sulle macchine host mentre sul Contro Node SSH e Python.
Step 1: Aggiornamento dei package su RHEL 8
# sudo dnf update -y
Step 2: Installazione Python3 on RHEL 8
Di default su Redhat Python è già installato. Qualora non ci fosse è sufficiente il seguente comando:
# sudo dnf install python3
Per verificare l'installazione eseguire:
# python3 -V
L'output vi restituisce la versione di Python installata.
Step 3: Installazione Ansible su RHEL 8
Per procedere all'installazione di Ansible, aggiungiamo prima il repository:
$ subscription-manager repos --enable ansible-2.8-for-rhel-8-x86_64-rpms
Dopodichè:
$ sudo dnf -y install ansible
Per verificare l'installazione e la versione usiamo:
# ansible --version
Il file di configurazione principale di Ansible è ansible.cfg nella dir /etc/ansible/.
Nel prossimo step, configureremo il nodo Ansible per comunicare e gestire il server Ubuntu da remoto.
Step 4: Configurare una connessione SSH senza password sull'host remoto
Verifichiamo prima se SSH è up&running sul controller Ansible e poi facciamo lo stesso sul pc Ubuntu.:
# sudo systemctl status sshd
Per configurare il login senza password dal nodo controller all'host remoto, generiamo prima una chiave SSH:
# ssh-keygen
Il suddetto comando genera una una chiave Publica e una Privata. La privata resta sul nodo di controllo Ansible, la pubblica verrà trasferita sull'host remoto da gestire (server Ubuntu). Per copiare la chiave pubblica usiamo:
# ssh-copy-id user@10.0.0.70
Per verificare la connessione senza password usiamo:
# ssh user@remote-IP address
Step 5: Configurare Ansible per comunicare con gli Hosts
Tutto quello che serve per questo passaggio è editare il file hosts (il file inventario) nella dir /etc/ansible/
# vim /etc/ansible/hosts
Posizionatevi alla fine del file ed aggiungete i vostri server raggruppati per nome/tipologia e specificando l'indirizzo ip delle macchine remote da gestire, per esempio:
[webserver]
10.0.0.71
Salviamo e chiudiamo e a questo punto siamo pronti per testestare la connessione usando il modulo ping con il seguente comando:
# ansible -m ping webserver
oppure
# ansible -m ping 10.0.0.70
Immaginate di aver centinaia di macchine da dover gestire e inventariate, con un semplice comando potrete testarle tutte in una volta sola:
# ansible -m ping all
Figo no? :-)
Per ora è tutto, passo e chiudo.
Nessun commento:
Posta un commento