GNU/Linux >> Linux Esercitazione >  >> Linux

Installa e configura Ansible in Linux

Questa guida passo passo ti guida attraverso i passaggi per installare e configurare Ansible in Linux. Spiega anche come configurare Ansible homelab in Linux per apprendere le basi di Ansible.

1. Introduzione

Ansible è uno strumento di automazione IT attraverso il quale puoi automatizzare un numero "N" di attività nel tuo ambiente software. Per sapere cos'è Ansible e le sue caratteristiche, dai un'occhiata alla nostra "Introduzione ad Ansible" guida.

Ansible è ovviamente progettato per la gestione della configurazione su larga scala. Se il tuo obiettivo è imparare ed essere in grado di ricreare rapidamente il tuo ambiente, allora sei sulla strada giusta!

Ansible è un senza agente architettura. Significato:nessun agente/processo ansible è in esecuzione sui nodi gestiti.

Come ho già accennato nell'articolo introduttivo di Ansile, ci sono due tipi di nodi in ansible.

  • Nodo principale/controllore - Server/Workstation su cui verrà installato ansible. Da questo nodo, eseguirai tutti i playbook e i comandi ansible.
  • Nodi gestiti - Elenco degli host che verranno gestiti utilizzando ansible.

Non è necessario che tutti i nodi gestiti siano in esecuzione con la stessa versione o tipo di distribuzione. Puoi avere diverse versioni di Linux come nodi gestiti.

La comunicazione tra il controller e i nodi gestiti avverrà utilizzando l'autenticazione basata su chiave ssh .

Questa guida pratica ti insegnerà come configurare Ansible Lab nelle distribuzioni Linux.

Nota:

  1. Non è possibile utilizzare Windows come nodo controller.
  2. È possibile configurare più nodi controller.

Prima di iniziare con Ansible, lascia che ti mostri la rappresentazione pittorica della mia configurazione del laboratorio domestico Ansible.

2. Diagramma architettonico per laboratorio ansible a 3 nodi

La seguente illustrazione grafica offre una bella rappresentazione grafica dell'aspetto del laboratorio.

A scopo dimostrativo, sto configurando un nodo Controller su Ubuntu 20.04 e 2 nodi gestiti su CentOS 8 e Ubuntu 21.04.

3. Installa e configura Ansible in Linux

Per prima cosa, vedremo come configurare il nodo gestito Ansible in Linux.

3.1. Installa Ansible in Linux

Poiché Ansible è scritto in Python, la tua macchina Linux dovrebbe avere python installato affinché ansible funzioni.

Fortunatamente tutte le distribuzioni Linux vengono fornite con Python preinstallato. Ansible supporta sia Python 2.7 che Python 3.5 e versioni successive.

Per verificare quale versione di Python è installata sulla tua macchina puoi usare i seguenti comandi. L'output può variare a seconda di come python è impostato nella tua distribuzione.

$ which python python2 python3
/usr/bin/python2
/usr/bin/python3

Controlla la versione di Python:

$ python2 --version
Python 2.7.18rc1
$ python3 --version
Python 3.8.5
$ compgen -c python | grep -P '^python..\d'
python3.8
python3.8-config
python2.7

Puoi installare ansible in Linux in due modi.

  1. Utilizzo del gestore di pacchetti del sistema operativo
  2. Utilizzo di PIP - Gestore di pacchetti Python

3.1.1. Installa Ansible utilizzando il gestore dei pacchetti di sistema

Per prima cosa, vedrai come utilizzare il gestore di pacchetti della tua distribuzione per installare ansible. In base alla tua distribuzione Linux, esegui i seguenti comandi.

Installa Ansible in Arch Linux, EndeavourOS, Manjaro Linux:

$ sudo pacman -S ansible

Debian:

Modifica /etc/apt/sources.list file:

$ sudo nano /etc/apt/sources.list

Aggiungi la riga seguente:

deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main

Quindi esegui i seguenti comandi:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
$ sudo apt update
$ sudo apt install ansible

Fedora:

$ sudo dnf install ansible

CentOS, RHEL, AlmaLinux, Rocky Linux:

$ sudo dnf install epel-release
$ sudo dnf install ansible

Ubuntu e suoi derivati:

$ sudo apt update
$ sudo apt install software-properties-common
$ sudo add-apt-repository --yes --update ppa:ansible/ansible
$ sudo apt install ansible

La tua distribuzione potrebbe essere spedita con una versione obsoleta di Ansible. Se desideri installare una versione aggiornata di Ansible sul tuo sistema, puoi utilizzare Pip , il gestore di pacchetti Python.

3.1.2. Installa Ansible usando Pip

Innanzitutto, verifica se PIP è installato eseguendo i seguenti comandi:

$ which pip pip3
/usr/bin/pip
/usr/bin/pip3
$ pip --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
$ pip3 --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)

Se PIP non è installato, esegui i seguenti comandi per installarlo.

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python3 get-pip.py --user

Una volta installato PIP, eseguire il comando seguente per installare ansible:

$ sudo python3 -m pip install ansible

Questo installerà l'ultima versione di Ansible.

Puoi anche installare una versione Ansible specifica, ad esempio 2.9, come di seguito:

$ sudo python3 -m pip install 'ansible==2.9'

Dopo aver installato Ansible, esegui il comando seguente per verificare la versione di ansible:

$ ansible --version

Questo comando fornisce informazioni su dove si trovano il file host, il file di configurazione e il file binario ansible e quale versione di Ansible è installata.

Risultato di esempio:

ansible 2.9.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/karthick/.ansible/plugins/modules',
  '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]

3.2. Configura Ansible

Come affermato in precedenza, Ansible comunicherà con i nodi gestiti utilizzando ssh protocollo di autenticazione.

Creeremo una coppia di chiavi ssh e le distribuiremo su tutti i nodi gestiti. Pertanto, ogni volta che viene inviato un comando ansible, si autenticherà con i nodi gestiti utilizzando queste chiavi.

3.2.1. Genera coppia di chiavi SSH per nodi gestiti

Crea un nuovo utente chiamato ansible sia nel controller che nei nodi gestiti.

$ sudo useradd ansible               ##create user 
$ sudo passwd ansible                ##set password for ansible user.

Accedi/Passa come utente ansible e crea una coppia di chiavi ssh usando i comandi:

$ su - ansible
$ ssh-keygen -t rsa

Questo comando genererà una coppia di chiavi SSH.

Ora distribuisci la chiave pubblica a tutti i nodi gestiti.

Puoi utilizzare il ssh-copy-id comando per copiare la chiave pubblica nel nodo di destinazione.

Per copiare la chiave pubblica sul nodo di destinazione con il comando ssh-copy-id, esegui:

$ ssh-copy-id -i ~/.ssh/id_rsa [email protected]

Se hai più nodi, usa for loop per copiare la chiave ssh su tutti i nodi di destinazione.

Ai fini di questa guida, ho 2 nodi gestiti e li ho chiamati centos1 (centos8) e ubuntu1 (Ubuntu 20.04). Per copiare la chiave su entrambi i nodi, ho usato il seguente codice:

$ for node in centos1 ubuntu1; do ssh-copy-id -i /home/ansible/.ssh/id_rsa [email protected]${node} done

Ora accedi al tuo nodo gestito per verificare se l'autenticazione basata su chiave funziona correttamente.

$ ssh [email protected]

Ora la configurazione ansible è completata. Come passaggio successivo, è necessario creare un file di inventario ed eseguire alcuni comandi ansible sugli host gestiti.

3.2.2. Prova la configurazione di Ansible

Ansible ha due file importanti che sono necessari per inviare Adhoc o playbook comandi.

  1. Ansible.cfg - file di configurazione ansible.
  2. Hosts - File di inventario in cui vengono forniti i dettagli dell'host.

Bene, discuti in modo più approfondito sulla configurazione e sui file di inventario in un articolo separato. Al momento, per eseguire il primo comando ansible, devi solo aggiungere i nomi host del tuo nodo gestito nel file di inventario.

Il file di configurazione di Ansible si trova in /etc/ansible/ansible.cfg file. Puoi anche ottenere questi dettagli eseguendo la ansible version comando:

$ ansible --version
ansible 2.9.0
 config file = /etc/ansible/ansible.cfg
 configured module search path = ['/home/karthick/.ansible/plugins/modules',
'/usr/share/ansible/plugins/modules']
 ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
 executable location = /usr/local/bin/ansible
 python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]

Apri ansible.cfg file e cercare l'inventario dei parametri. Ansible farà riferimento a questo parametro durante il runtime per ottenere il percorso del file di inventario.

$ sudo grep -iw "^#Inventory" /etc/ansible/ansible.cfg
#inventory        = /etc/ansible/hosts

L'inventario per impostazione predefinita punta a /etc/ansible/hosts file. Apri hosts file e aggiungere il nome host/indirizzo IP del nodo gestito.

Ho una mappatura da DNS a IP, quindi ho fornito il nome DNS nel file dell'host. Puoi anche fornire l'indirizzo IP.

Tutto è pronto per eseguire il nostro compito in ansible!

Simile a "Hello world" programma nella programmazione, ansible ha anche una tradizione nell'esecuzione di un ping modulo come primo comando per verificare la connettività tra il controller ei nodi gestiti.

Il ping il modulo proverà a raggiungere i nodi gestiti e verificherà se è disponibile un interprete Python da utilizzare e risponderà come pong .

$ ansible all -m ping

Puoi anche specificare esplicitamente il file hosts usando -i segnala come di seguito:

$ ansible all -m ping -i flag <path-to-host-file>

Ora puoi iniziare a giocare con qualsiasi modulo con cui vuoi giocare.

Se desideri aggiungere più nodi controller, tutto ciò che devi fare è copiare la chiave SSH dal nodo controller al nuovo nodo e aggiungere la voce IP/DNS nel file dell'host. E quindi, ansible può iniziare a raccogliere il nodo gestito appena aggiunto. È così semplice!

Conclusione

In questa guida abbiamo discusso di come installare e configurare Ansible in Linux. Ti abbiamo anche mostrato come configurare manualmente un laboratorio domestico Ansible a tre nodi.

Esistono altre soluzioni automatizzate come la creazione di un laboratorio ansible utilizzando Vagrant o Docker . Tratteremo questi argomenti nei nostri prossimi articoli.

Ansible è un argomento vasto! Abbiamo trattato solo le basi di Ansible. Consulta la documentazione ufficiale di Ansible per saperne di più sull'utilizzo di Ansible.

Leggi il prossimo:

  • Configurazione automatizzata di Ansible Lab con Vagrant e Virtualbox in Linux
  • Inventario Ansible e file di configurazione

Linux
  1. Come installare e testare Ansible su Linux

  2. Come installare e configurare Ansible su Fedora 35

  3. Come installare e configurare Ansible su Rocky Linux/CentOS 8

  4. Come installare e configurare EMC PowerPath su Linux

  5. 12 passaggi per installare e configurare Alfresco su UNIX / Linux

Come installare e configurare Django su sistema Linux

Come installare e configurare PrestaShop su sistema Linux

Come installare e configurare Elasticsearch su sistema Linux

Come installare e configurare Slack su distribuzioni Linux

Come installare e configurare Perf nelle distribuzioni Linux

Come installare e configurare Terraform nelle distribuzioni Linux