GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare Ansible su CentOS 8 Linux

Ansible è uno strumento di automazione IT open source utilizzato per automatizzare la gestione della configurazione, il provisioning, la distribuzione delle applicazioni, l'orchestrazione e molti altri processi IT senza la necessità di installare agenti sui nodi client. Si basa sul protocollo SSH per comunicare con i nodi client. Ansible offre facilità d'uso e installazione rispetto ad altri strumenti simili come puppet, chef, terraform ecc. In questo tutorial impareremo come installare Ansible su CentOS 8 Linux e configurarlo.

Installa Ansible su CentOS 8 Linux

Passaggio 1: Installa e abilita EPEL deposito

[root@install-ansible ~]# dnf install epel-release -y

Passaggio 2: Scarica l'indice remoto dei pacchetti nella cache del file locale per velocizzare il successivo dnf comandi.

[root@install-ansible ~]# dnf makecache
CentOS Linux 8 - AppStream 2.6 kB/s | 4.3 kB 00:01
CentOS Linux 8 - BaseOS 2.6 kB/s | 3.9 kB 00:01
CentOS Linux 8 - Extras 1.0 kB/s | 1.5 kB 00:01
Extra Packages for Enterprise Linux 8 - x86_64 8.7 kB/s | 11 kB 00:01
Extra Packages for Enterprise Linux Modular 8 - x86_64 9.6 kB/s | 10 kB 00:01
Remi's Modular repository for Enterprise Linux 8 - x86_64 501 B/s | 833 B 00:01
Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 802 B/s | 833 B 00:01
Metadata cache created.

Passaggio 3: Installa Ansible

[root@install-ansible ~]# dnf install ansible -y
Last metadata expiration check: 0:02:17 ago on Tue 01 Mar 2022 10:28:48 AM IST.
Dependencies resolved.
=============================================================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================================================
Installing:
ansible noarch 2.9.27-1.el8 epel 17 M
Installing dependencies:
python3-bcrypt x86_64 3.1.6-2.el8.1 epel 44 k
python3-jmespath noarch 0.9.0-11.el8 appstream 45 k
python3-pyasn1 noarch 0.3.7-6.el8 appstream 126 k
python3-pynacl x86_64 1.3.0-5.el8 epel 100 k
sshpass x86_64 1.06-9.el8 epel 27 k
Installing weak dependencies:
python3-paramiko noarch 2.4.3-1.el8 epel 289 k

Transaction Summary
=============================================================================================================================================================
Install 7 Packages
Installed:
  ansible-2.9.27-1.el8.noarch          python3-bcrypt-3.1.6-2.el8.1.x86_64    python3-jmespath-0.9.0-11.el8.noarch    python3-paramiko-2.4.3-1.el8.noarch
  python3-pyasn1-0.3.7-6.el8.noarch    python3-pynacl-1.3.0-5.el8.x86_64      sshpass-1.06-9.el8.x86_64

Complete!

 Passaggio 4: Verifica l'installazione di ansible

[root@install-ansible ~]# ansible --version
ansible 2.9.27
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.6/site-packages/ansible
executable location = /usr/bin/ansible
python version = 3.6.8 (default, Sep 10 2021, 09:13:53) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]

Configura Ansible su CentOS 8

Considera l'architettura seguente per questo tutorial. Puoi estendere lo stesso a n numero di client.

Gestione/amministrazione dei client da Ansible Server

Per la gestione dei client, SSH deve essere installato e in esecuzione. Le porte SSH devono essere aperte e accessibili da Ansible Server.

Passaggio 5: Apri /etc/hosts file su ansible-server

In questo articolo useremo /etc/hosts file per la risoluzione dei nomi DNS degli indirizzi IP dei client

[root@ansible-server ~]# vim /etc/hosts
Indirizzo IP o Nomi DNS per i client

È possibile utilizzare l'indirizzo IP o i nomi DNS dei client da gestire

Aggiungi le voci seguenti all'indirizzo IP e al nome host del client Ansible

10.180.10.122 ansible-client

Impostazione dell'autenticazione senza password SSH

Passaggio 6: Genera chiavi SSH su Ansible Server (Management Node) senza che venga richiesta una passphrase.

[centos@ansible-server ~]$ ssh-keygen -f id_rsa -t rsa -N ''
Generating public/private rsa key pair.
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
SHA256:vqvgSILGrVxCDsLuORbJojxiYDEFEFlNQi5ZrHeqYhE centos@ansible-server
The key's randomart image is:
+---[RSA 3072]----+
|+B*o.            |
|.+.o.            |
|o.o              |
|oE. .            |
|++=o    S        |
|@*o    .         |
|OB+o.   .        |
|OX=o .   .       |
|*=+ . ..o.       |
+----[SHA256]-----+

Passaggio 7: Copia le chiavi SSH su Ansible Client

[centos@ansible-server ~]$ ssh-copy-id centos@ansible-client
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/centos/.ssh/id_rsa.pub"
The authenticity of host 'ansible-client (10.180.141.122)' can't be established.
ECDSA key fingerprint is SHA256:oDKa1jiDVmPzHmD0HqKr5v10xhalFVbklrdudxAFx5M.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/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
centos@ansible-client's password:

Number of key(s) added: 1

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

Digitare per la prima volta la password di accesso per l'utente centos su Ansible-client. Dopo aver copiato le chiavi SSH, sarai in grado di accedere utilizzando senza password

Passaggio 8: Verifica la connessione senza password

[centos@ansible-server ~]$ ssh centos@ansible-client
Last login: Tue Mar 1 05:57:15 2022 from 10.180.6.115
[centos@ansible-client ~]$

Passaggio 9:  Accesso sudo per centos utente su ansible-client

Assicurati, i centos l'utente su ansible-client ha accesso sudo senza password. Questo aiuta ansible eseguire qualsiasi root comandi su ansible-client usando centos utente.

# visudo

## Add the below content
centos ALL=(ALL) NOPASSWD:ALL

Ora ansible-client è pronto per essere gestito da ansible-server (Management Node) utilizzando centos utente su ansible-client.

Come usare Ansible

Passaggio 10: Crea inventario Ansible

Ansible mantiene un elenco di tutte le informazioni del client remoto che gestisce in un file chiamato inventory file. Il file di inventario di Ansible è solo un semplice file di testo e il percorso predefinito del file è:/etc/ansible/hosts

File di inventario Ansible

Possiamo creare un file di inventario Ansible in una posizione diversa da quella predefinita.

[centos@ansible-server ~]$ mkdir ~/ansible
[centos@ansible-server ~]$ cd ~/ansible
[centos@ansible-server ansible]$ vim hosts

Aggiungi tutte le voci del cliente ansible

ansible-client ansible_user=centos
ansible_user opzione nel file ansible/hosts

L'opzione ansible_user viene utilizzata per definire l'utente su ansible-client che eseguirà i comandi.

File Ansible Inventory:combinazione di nome host e indirizzo IP

Puoi anche combinare indirizzi IP e nomi DNS dei client remoti nel file di inventario

10.180.10.122 ansible_user=centos
Raggruppa i client remoti nel file di inventario

Puoi anche raggruppare i client remoti nel file di inventario in base all'utilizzo. Ad esempio, se hai 4 client come server web e 2 come server db.

[centos]
ansible-client ansible_user=centos

Passaggio 11: Elenca tutti gli host dal file di inventario

[centos@ansible-server ansible]$ ansible -i hosts --list-hosts all
  hosts (1):
    ansible-client

Passaggio 12: Verifica che gli host siano attivi

[centos@ansible-server ansible]$ ansible -i hosts -m ping all
ansible-client | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}

Passaggio 13: Esegui comandi sul client ansible remoto (basato su tutti/nome gruppo)

[centos@ansible-server ansible]$ ansible -i hosts -m shell -a "more /etc/redhat-release" ansible-client
ansible-client | CHANGED | rc=0 >>
CentOS Linux release 7.8.2003 (Core)

Questo è tutto! Ora inizia a gestire i tuoi clienti remoti utilizzando ansible a modo tuo.

Ansible Playbook aiuta a gestire i tuoi server più facilmente effettuando complesse azioni IT eseguite con un coinvolgimento umano limitato o nullo. Cercheremo di trattare Ansible Playbook nel nostro prossimo articolo.


Cent OS
  1. Come eseguire il debootstrap su CentOS Linux

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

  3. Come installare Ansible su CentOS 7

  4. Come installare Linux Kernel 5.0 su CentOS 7

  5. Come installare Ansible su Oracle Linux 8

Come installare R su CentOS 8

Come installare Webmin su CentOS Linux

Come installare JIRA su CentOS 8 Linux

Come aggiornare CentOS 7 a CentOS 8 Linux

Come installare DRBD su CentOS Linux

Come installare Ansible su Linux Mint 20