GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar Ansible en CentOS 8 Linux

Ansible es una herramienta de automatización de TI de código abierto que se utiliza para automatizar la administración de la configuración, el aprovisionamiento, la implementación de aplicaciones, la orquestación y muchos otros procesos de TI sin necesidad de instalar ningún agente en los nodos del cliente. Se basa en el protocolo SSH para comunicarse con los nodos del cliente. Ansible brinda facilidad de uso e instalación en comparación con otras herramientas similares, como títeres, chef, terraform, etc. En este tutorial, aprenderemos cómo instalar Ansible en CentOS 8 Linux y configurarlo.

Instalar Ansible en CentOS 8 Linux

Paso 1: Instalar y habilitar EPEL repositorio

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

Paso 2: Descargue el índice remoto de paquetes en el caché de archivos local para acelerar el subsiguiente dnf comandos.

[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.

Paso 3: Instalar 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!

 Paso 4: Verificar la instalación de 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)]

Configurar Ansible en CentOS 8

Considere la siguiente arquitectura para este tutorial. Puede extender lo mismo a n número de clientes.

Gestión/Administración de clientes desde Ansible Server

Para administrar clientes, SSH debe estar instalado y en ejecución. Los puertos SSH deben estar abiertos y accesibles desde Ansible Server.

Paso 5: Abra /etc/hosts archivo en el servidor ansible

En este artículo, usaremos /etc/hosts archivo para la resolución de nombres DNS de la dirección IP del cliente

[root@ansible-server ~]# vim /etc/hosts
Dirección IP o nombres DNS para los clientes

Puede usar direcciones IP o nombres DNS de los clientes para administrar

Agregue las siguientes entradas en la dirección IP y el nombre de host del cliente de Ansible

10.180.10.122 ansible-client

Configurar autenticación sin contraseña SSH

Paso 6: Genere claves SSH en Ansible Server (nodo de administración) sin que se le solicite una frase de contraseña.

[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]-----+

Paso 7: Copie las claves SSH a 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.
Solicitud de contraseña para el usuario de centos en ansible-client

Escriba la contraseña de inicio de sesión para el usuario de centos en Ansible-client por primera vez. Después de copiar las claves SSH, podrá iniciar sesión sin contraseña

Paso 8: Verificar conexión sin contraseña

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

Paso 9:  Acceso Sudo para centos usuario en ansible-cliente

Asegúrate de que los centos el usuario en ansible-client tiene acceso sudo sin contraseña. Esto ayuda a ansible a ejecutar cualquier root comandos en ansible-client usando centos usuario.

# visudo

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

Ahora, el cliente ansible está listo para administrarse desde el servidor ansible (nodo de administración) mediante centos usuario en ansible-client.

Cómo usar Ansible

Paso 10: Crear inventario de Ansible

Ansible mantiene una lista de toda la información del cliente remoto que administra en un archivo llamado inventory expediente. El archivo de inventario de Ansible es simplemente un archivo de texto sin formato y la ubicación predeterminada del archivo es:/etc/ansible/hosts

Archivo de inventario de Ansible

Podemos crear un archivo de inventario de Ansible en una ubicación diferente a la predeterminada.

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

Agregue todas las entradas del cliente ansible

ansible-client ansible_user=centos
opción ansible_user en el archivo ansible/hosts

La opción ansible_user se usa para definir el usuario en el cliente ansible que ejecutará los comandos.

Archivo de inventario de Ansible:combinación de nombre de host y dirección IP

También puede mezclar direcciones IP y nombres DNS de los clientes remotos en el archivo de inventario

10.180.10.122 ansible_user=centos
Agrupe clientes remotos en el archivo de inventario

También puede agrupar clientes remotos en un archivo de inventario según su uso. Por ejemplo, si tiene 4 clientes como servidor web y 2 como servidor db.

[centos]
ansible-client ansible_user=centos

Paso 11: Enumere todos los hosts del archivo de inventario

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

Paso 12: Verifique que los hosts estén activos

[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"
}

Paso 13: Ejecute comandos en el cliente ansible remoto (basado en todo/nombre de grupo)

[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)

¡Eso es todo! Ahora comience a administrar sus clientes remotos usando ansible a su manera.

Ansible Playbook ayuda a administrar sus servidores más fácilmente al hacer que las acciones de TI complejas se ejecuten con una participación humana limitada o nula. Intentaremos cubrir Ansible Playbook en nuestro próximo artículo.


Cent OS
  1. Cómo reiniciar en CentOS Linux

  2. Cómo instalar y configurar Ansible en Rocky Linux/CentOS 8

  3. Cómo instalar Erlang en Rocky Linux/Alma Linux/CentOS 8

  4. Cómo instalar Ansible en CentOS 7

  5. Cómo instalar Linux Kernel 5.0 en CentOS 7

Cómo instalar R en CentOS 8

Cómo instalar Webmin en CentOS Linux

Cómo instalar JIRA en CentOS 8 Linux

Cómo actualizar CentOS 7 a CentOS 8 Linux

Cómo instalar DRBD en CentOS Linux

Cómo instalar Ansible en Linux Mint 20