GNU/Linux >> Linux Esercitazione >  >> Linux

Come installare e configurare Ansible su Redhat Enterprise Linux 8

Questo tutorial illustra passo passo l'installazione e la configurazione di Ansible su Redhat Enterprise Linux 8.
Ansible è il principale sistema di gestione della configurazione Open Source. Consente agli amministratori e ai team operativi di controllare facilmente migliaia di server dalla macchina centrale senza installare agenti su di essi.

In questo tutorial imparerai:

  • Panoramica Ansible
  • Installa e configura Python
  • Imposta SSH senza password
  • Installa Ansible
  • Testare e gestire Ansible

Architettura Ansible.

Requisiti e convenzioni software utilizzati

Requisiti software e convenzioni della riga di comando Linux
Categoria Requisiti, convenzioni o versione del software utilizzata
Sistema Red Hat Enterprise Linux 8
Software Python3, Ansible
Altro Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando.
Convenzioni # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando
$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato

Panoramica Ansible

Ansible è un motore di automazione IT estremamente semplice che automatizza il provisioning del cloud, la gestione della configurazione, l'implementazione delle applicazioni, l'orchestrazione all'interno dei servizi e molte altre esigenze IT.

Progettato per implementazioni multi-livello sin dal primo giorno, Ansible modella la tua infrastruttura IT descrivendo come tutti i tuoi sistemi sono correlati, invece di gestire un solo sistema alla volta.

Non utilizza agenti e nessuna infrastruttura di sicurezza personalizzata aggiuntiva, quindi è facile da implementare e, soprattutto, utilizza un linguaggio molto semplice (YAML, sotto forma di Ansible Playbooks) che ti consente di descrivere i tuoi lavori di automazione in un modo che si avvicina inglese semplice. Ansible funziona connettendosi ai tuoi nodi e inviando loro piccoli programmi, chiamati "moduli Ansible".
Questi programmi sono scritti per essere modelli di risorse dello stato desiderato del sistema. Ansible quindi esegue questi moduli (su SSH per impostazione predefinita) e li rimuove al termine.

La tua libreria di moduli può risiedere su qualsiasi macchina e non sono richiesti server, demoni o database. In genere lavorerai con il tuo programma terminale preferito, un editor di testo e probabilmente un sistema di controllo della versione per tenere traccia delle modifiche ai tuoi contenuti.

Installa e configura Python

La versione predefinita di Python in RHEL 8 è Python 3.6. Ma Python 2 rimane disponibile in RHEL 8. Se per qualsiasi motivo Python 3.6 manca nell'installazione di Red Hat Enterprise Linux 8, dovrai installarlo manualmente.

Python 3.6 può essere installato su RHEL 8 eseguendo il comando seguente sul tuo terminale. Python deve essere installato sia su Ansible Server che su tutti gli host/client a cui si connetterà.

# yum install python3
Updating Subscription Management repositories.
Updating Subscription Management repositories.
Last metadata expiration check: 8:59:59 ago on Sun 03 Feb 2019 11:20:51 PM +04.
Dependencies resolved.
======================================================================================================================================================
 Package                 Arch                  Version                                     Repository                                            Size
======================================================================================================================================================
Installing:
 python36                x86_64                3.6.6-17.el8+2102+a4bbd900                  rhel-8-for-x86_64-appstream-beta-rpms                 22 k
Enabling module streams:
 python36                                      3.6                                                                                                   

Transaction Summary
======================================================================================================================================================
Install  1 Package

Total download size: 22 k
Installed size: 22 k
Is this ok [y/N]: y
Downloading Packages:
python36-3.6.6-17.el8+2102+a4bbd900.x86_64.rpm                                                                        6.0 kB/s |  22 kB     00:03    
------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                 6.0 kB/s |  22 kB     00:03     
warning: /var/cache/dnf/rhel-8-for-x86_64-appstream-beta-rpms-64aba9de5ea7e089/packages/python36-3.6.6-17.el8+2102+a4bbd900.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f21541eb: NOKEY
Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs)                                                         3.2 kB/s | 3.3 kB     00:01    
Importing GPG key 0xF21541EB:
 Userid     : "Red Hat, Inc. (beta key 2) <[email protected]>"
 Fingerprint: B08B 659E E86A F623 BC90 E8DB 938A 80CA F215 41EB
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta
Is this ok [y/N]: y
...
Installed:
  python36-3.6.6-17.el8+2102+a4bbd900.x86_64                                                                                                          

Complete!

Per usare Python 3, digita semplicemente python3 nel terminale.

Avresti dovuto notare che per utilizzare Python 3, il comando è python3 e python2 per Python 2. Cosa succede se le tue applicazioni sono configurate per fare riferimento a python che non è disponibile a livello di sistema. Riceverai il seguente errore bash.

# python
-bash: python: command not found

È possibile utilizzare il meccanismo delle alternative per abilitare il comando python senza versione a livello di sistema e impostarlo su una versione specifica. Per impostare Python 3 come predefinito, esegui il comando seguente.

# alternatives --set python /usr/bin/python3

L'esecuzione di python -V dovrebbe mostrare la versione predefinita di Python configurata:

#python -V
Python 3.6.6

o avviando Python una console:

# python
Python 3.6.6 (default, Oct 16 2018, 01:53:53) 
[GCC 8.2.1 20180905 (Red Hat 8.2.1-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Imposta SSH senza password

Crea l'utente ansible su tutti gli host:

# useradd ansible ;  echo "" | passwd --stdin ansible

Inserisci la voce necessaria nel file sudoers /etc/sudoers per utenti ansible per l'accesso sudo senza password:

ansible ALL=(ALL) NOPASSWD: ALL

Ora genera la chiave SSH in Ansible Server:

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ansible/.ssh/id_rsa): 
Created directory '/home/ansible/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ansible/.ssh/id_rsa.
Your public key has been saved in /home/ansible/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:wNt/uNePRkrV+Hhv/DJgteXK2BjOGvPbr9yNigXM2EM ansible@rhel8-ansible-server
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|     .           |
|      o   E    o |
|       + *    + o|
|      . S *  o * |
|         . += + +|
|          ==o@ +.|
|           OBoO+=|
|          +o++*BB|
+----[SHA256]-----+

Copialo su server remoti come utente ansible:

$ ssh-copy-id ansible@rhel8-ansible-client
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/ansible/.ssh/id_rsa.pub"
The authenticity of host 'rhel8-ansible-client (192.168.1.109)' can't be established.
ECDSA key fingerprint is SHA256:e+NfCeK/kvnignWDHgFvIkHjBWwghIIjJkfjygR7NkI.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
ansible@rhel8-ansible-client's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'ansible@rhel8-ansible-client'"
and check to make sure that only the key(s) you wanted were added.

Installa Ansible

Una volta installato Python, procedi con l'installazione di Pip che è un gestore di pacchetti Python che useremo per installare Ansible:

# yum -y install python3-pip
Updating Subscription Management repositories.
Updating Subscription Management repositories.
Last metadata expiration check: 9:03:18 ago on Sun 03 Feb 2019 11:20:51 PM +04.
Package python3-pip-9.0.3-4.el8.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!

Una volta che abbiamo pip3 installato, utilizzalo per installare Ansible nel sistema di gestione di Ansible come utente ansible.

$ pip3 install ansible --user

Puoi vedere Ansible installato usando il seguente comando:

$ ansible --version
ansible 2.7.6
  config file = None
  configured module search path = ['/home/ansible/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/ansible/.local/lib/python3.6/site-packages/ansible
  executable location = /home/ansible/.local/bin/ansible
  python version = 3.6.6 (default, Oct 16 2018, 01:53:53) [GCC 8.2.1 20180905 (Red Hat 8.2.1-3)]

Test e gestione

Crea il file di inventario Ansible, l'impostazione predefinita è /etc/ansible/hosts ma puoi copiare il file hosts nella home directory dell'utente ansible. Puoi anche creare un gruppo di host remoti come di seguito nel file hosts.


[web]
192.168.1.105
[db]
192.168.1.107
[app]
192.168.1.108
192.168.1.109
192.168.1.110

Puoi utilizzare il modulo ping per testare Ansible e dopo l'esecuzione riuscita puoi vedere l'output di seguito.

$ ansible -i hosts 192.168.1.109 -m ping
192.168.1.109 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

L'opzione -i viene utilizzata per fornire il percorso al file di inventario. Dovresti ottenere lo stesso output per il nome del gruppo "app".

$ ansible -i hosts app -m ping
192.168.1.108 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
192.168.1.109 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
192.168.1.110 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Conclusione

La semplicità e la capacità di Ansible di ridurre la complessità di altri strumenti lo hanno reso un candidato affidabile per il tuo ambiente. La sua principale preoccupazione è sulla sicurezza e l'affidabilità. Utilizza OpenSSH per il trasporto e il linguaggio è progettato attorno all'audibilità anche da coloro che non hanno familiarità con il programma. Ansible è sufficientemente adatto per la gestione sia di piccole configurazioni con una manciata di istanze che di ambienti aziendali.


Linux
  1. Come installare e testare Ansible su Linux

  2. Installa e configura Ansible in Linux

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

  4. Come installare e configurare TensorFlow su Rocky Linux 8

  5. Come installare e configurare EMC PowerPath su 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

Come installare e configurare Gradle su distribuzioni Linux

Come installare e configurare Git su distribuzioni Linux

Come installare e configurare Yarn su distribuzioni Linux