Oggigiorno nel campo IT, l'automazione è l'argomento caldo e ogni organizzazione sta iniziando ad adottare gli strumenti di automazione come Puppet , Abile , Cuoco , CF Engine , caposquadra e Katello . Tra questi strumenti, Ansible è la prima scelta di quasi tutte le organizzazioni IT per gestire sistemi simili a UNIX e Linux. In questo articolo dimostreremo come installare e utilizzare lo strumento ansible su Debian 10 Server.
Dettagli del mio laboratorio:
- Debian 10 – Ansible Server/nodo controller – 192.168.1.14
- CentOS 7 – Ansible Host (server Web) – 192.168.1.15
- CentOS 7 – Ansible Host (server DB) – 192.169.1.17
Dimostreremo anche come gestire i server Linux utilizzando Ansible Server
Installazione Ansible su Debian 10 Server
Suppongo che nel tuo sistema Debian 10 tu abbia un utente che ha i privilegi di root o i diritti sudo. Nella mia configurazione ho un utente locale chiamato "pkumar" con diritti sudo.
I pacchetti Ansible 2.7 sono disponibili nei repository Debian 10 predefiniti, eseguire i seguenti comandi dalla riga di comando per installare Ansible,
$ sudo apt update $ sudo apt install ansible -y
Esegui il comando seguente per verificare la versione ansible,
[email protected]:~$ sudo ansible --version
Per installare l'ultima versione di Ansible 2.8, dobbiamo prima impostare i repository Ansible.
Esegui i seguenti comandi uno dopo l'altro,
$ echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" \ | sudo tee -a /etc/apt/sources.list $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 $ sudo apt update $ sudo apt install ansible -y $ sudo ansible --version
Gestione dei server Linux utilizzando Ansible
Fare riferimento ai seguenti passaggi per gestire server simili a Linux utilizzando il nodo controller Ansible,
Passaggio:1) Scambia le chiavi SSH tra Ansible Server e i suoi host
Genera le chiavi ssh dal server ansible e condividi le chiavi tra gli host ansible
$ sudo -i # ssh-keygen # ssh-copy-id [email protected] # ssh-copy-id [email protected]
Passaggio:2) Crea il file di inventario di Ansible Hosts
Quando ansible viene installato, il file /etc/hosts viene creato automaticamente, in questo file possiamo menzionare gli host ansible o i suoi client. Possiamo anche creare il nostro file di inventario host ansible nella nostra home directory,
Ulteriori informazioni su:Come gestire l'inventario di host statici e dinamici Ansible
Esegui il comando seguente per creare l'inventario degli host ansible nella nostra home directory
[email protected]:~$ vi $HOME/hosts [Web] 192.168.1.15 [DB] 192.168.1.17
Salva ed esci dal file
Nota: Nel file hosts di cui sopra possiamo anche utilizzare il nome host o FQDN, ma per questo dobbiamo assicurarci che gli host ansible siano raggiungibili e accessibili tramite hostname o fqdn.
Passaggio:3) Testare e utilizzare i moduli ansible predefiniti
Ansible viene fornito con molti moduli predefiniti che possono essere utilizzati nel comando ansible, gli esempi sono mostrati di seguito,
Sintassi:
# ansible -i
Dove:
- -i ~/host :contiene l'elenco degli host disponibili
- -m: dopo -m specifica il modulo ansible come ping e shell
: Host Ansible in cui vogliamo eseguire i moduli ansible
Verifica la connettività ping utilizzando il modulo ping ansible
$ sudo ansible -i ~/hosts -m ping all $ sudo ansible -i ~/hosts -m ping Web $ sudo ansible -i ~/hosts -m ping DB
L'output dei comandi precedenti sarebbe qualcosa di simile al seguente:
Esecuzione di comandi shell su host ansible utilizzando il modulo shell
Sintassi: # ansible -i
Esempio:
[email protected]:~$ sudo ansible -i ~/hosts -m shell -a "uptime" all 192.168.1.17 | CHANGED | rc=0 >> 01:48:34 up 1:07, 3 users, load average: 0.00, 0.01, 0.05 192.168.1.15 | CHANGED | rc=0 >> 01:48:39 up 1:07, 3 users, load average: 0.00, 0.01, 0.04 [email protected]:~$ [email protected]:~$ sudo ansible -i ~/hosts -m shell -a "uptime ; \ df -Th / ; uname -r" Web 192.168.1.15 | CHANGED | rc=0 >> 01:52:03 up 1:11, 3 users, load average: 0.12, 0.07, 0.06 Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 13G 1017M 12G 8% / 3.10.0-327.el7.x86_64 [email protected]:~$
L'output dei comandi di cui sopra conferma che abbiamo impostato correttamente il nodo controller ansible
Creiamo un esempio di playbook di installazione di NGINX, di seguito il playbook installerà nginx su tutti i server che fanno parte del gruppo host Web, ma nel mio caso ho una macchina centos 7 in questo gruppo host.
[email protected]:~$ vi nginx.yaml --- - hosts: Web tasks: - name: Install latest version of nginx on CentOS 7 Server yum: name=nginx state=latest - name: start nginx service: name: nginx state: started
Ora esegui il playbook usando il seguente comando,
[email protected]:~$ sudo ansible-playbook -i ~/hosts nginx.yaml
l'output del comando precedente sarebbe qualcosa di simile al seguente,
Ciò conferma che il playbook di Ansible è stato eseguito correttamente, questo è tutto dall'articolo, condividi il tuo feedback e commenti.