Ansible è uno strumento di automazione per la gestione di più host remoti dalla singola macchina. Ti fornisce un facile da configurare per un gran numero di host remoti. Ad esempio, se stai eseguendo le stesse attività su più macchine, Ansible ti offre la possibilità di automatizzare queste attività.
Questo tutorial ti aiuterà a installare Ansible su sistemi Debian 8 (Jessie).
Passaggio 1:configurazione dell'accesso SSH
È possibile configurare ssh basato su chiave per gli host Linux Ansible remoti. Quindi la password non sarà richiesta per SSH. Ansible ti consente anche di utilizzare una password per ssh, ma ssh basato su chiave è più sicuro.
Genera una coppia di chiavi ssh sul tuo server Ansible:
ssh-keygen
Copia la chiave pubblica su tutti i tuoi host remoti a cui devi connetterti tramite questa chiave ssh.
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]_host
Fase 2 – Installa Ansible su Debian 8
Ansible fornisce il suo PPA ufficiale per l'installazione su sistemi Debian.
Aggiungi la seguente riga a /etc/apt/sources.list file:
deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
Quindi esegui i seguenti comandi per aggiungere la chiave di firma e installare Ansible.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 sudo apt update sudo apt install ansible
Passaggio 3:configurazione di host e gruppi Ansible
Il tuo server è pronto con Ansible per la gestione e l'automazione remota degli host. Puoi avere un numero di host di cui hai bisogno e gestirli con un unico server Ansible.
Qui devi definire i tuoi sistemi remoti nel file hosts di Ansible (/etc/ansible/hosts). Puoi anche creare gruppi di host con tipi simili. Qui devi organizzare correttamente i tuoi host in gruppi. I gruppi vengono utilizzati per eseguire un'attività su tutti gli host remoti definiti sotto di essa.
Modifica il file di configurazione degli host Ansible. Ad esempio:
sudo nano /etc/ansible/hosts
Aggiungi i tuoi host e organizzali con i gruppi. Un host può essere aggiunto in più gruppi .
[webservers] web-host1 web-host2 [dbservers] db-host1
L'immagine qui sotto ti aiuterà a capire il gruppo e gli host in un gruppo.
Configurazione delle variabili host singole
Devi definire le impostazioni per i tuoi host. Il file specifico dell'host deve avere lo stesso nome dell'host (ad esempio:web-host1) nella directory host_vars.
sudo mkdir /etc/ansible/host_vars sudo vi /etc/ansible/host_vars/web-host1
Aggiungi le impostazioni SSH a questo file per l'host web1.
ansible_ssh_host: 192.168.1.15 ansible_ssh_port: 22 ansible_ssh_user: root
Nel caso in cui non hai utilizzato il passaggio 1 per la connessione ssh per questo host. Puoi anche aggiungere uno dei metodi seguenti al file di configurazione web-hosts1 per l'autenticazione.
ansible_ssh_pass: secret_password ansible_ssh_private_key_file: /home/rahul/.ssh/aws.pem
Configurazione delle variabili di gruppo
È possibile configurare le impostazioni delle variabili comuni di un gruppo in configurazioni di gruppo. Il nome del file del gruppo deve essere uguale al nome del gruppo (es:server web) in group_vars
directory.
sudo mkdir /etc/ansible/group_vars sudo vi /etc/ansible/group_vars/webservers
Aggiungi le variabili comuni a questo file utilizzato da tutti gli host aggiunti in questo gruppo.
ansible_ssh_port: 22 ansible_ssh_user: root
Fase 4:verifica della configurazione Ansible
La tua configurazione Ansible è pronta per il test. Per testare la connettività di tutti gli host utilizzando un modulo ping come:
ansible -m ping all
Per testare la connettività per host o gruppi di host specifici
ansible -m ping web-host1 ## Specific host ansible -m ping webservers ## Specific group
Puoi anche eseguire un comando usando il modulo shell. Ad esempio, testa la memoria libera su web-host1. Puoi anche eseguire la stessa attività per un gruppo. Usa semplicemente il nome del gruppo invece del nome host.
ansible -m shell -a 'free -m' web-host1