sysadmin 2.0 - Ayuda y tutoriales sobre Dominios , Alojamiento , VPS , Dedicados , Distribuciones , Paneles

¡Registre una cuenta gratis hoy para convertirse en miembro! Una vez que haya iniciado sesión, podrá participar en este sitio agregando sus propios temas y publicaciones, así como conectarse con otros miembros a través de su propia bandeja de entrada privada!

Cómo instalar y configurar Ansible en Redhat Enterprise Linux 8

Nicutzy

Administrador
Staff member
Administrador
Joined
Jan 5, 2019
Messages
270
Reaction score
40
Points
42
Este tutorial cubre la instalación y configuración paso a paso de Ansible en Redhat Enterprise Linux 8. Ansible es el principal sistema de administración de configuración de código abierto. Facilita a los administradores y equipos de operaciones el control de miles de servidores desde la máquina central sin instalar agentes en ellos.
En este tutorial aprenderás:

Resumen ansible
  • Instalar y configurar Python
  • Establecer contraseña sin SSH
  • Instalar Ansible
  • Probando y manejando lo imposible
313

  • Sistema - Red Hat Enterprise Linux 8
  • Software - Python3, Ansible
  • Otro - Acceso privilegiado a su sistema Linux como root o mediante el comando sudo.
  • Convenciones
    • # - requiere que los comandos de linux dados se ejecuten con privilegios de root directamente como usuario root o usando el comando sudo
    • $ - Requiere que los comandos de linux dados se ejecuten como un usuario regular sin privilegios
Resumen ansible
Ansible es un motor de automatización de TI radicalmente simple que automatiza el aprovisionamiento de la nube, la administración de la configuración, el despliegue de aplicaciones, la orquestación dentro del servicio y muchas otras necesidades de TI.
Diseñado para implementaciones de varios niveles desde el primer día, Ansible modela su infraestructura de TI al describir cómo se relacionan todos sus sistemas, en lugar de solo administrar un sistema a la vez.

No utiliza agentes ni infraestructura de seguridad personalizada adicional, por lo que es fácil de implementar y, lo que es más importante, utiliza un lenguaje muy simple (YAML, en forma de Ansible Playbooks) que le permite describir sus trabajos de automatización de una manera que se acerca inglés simple. Ansible funciona conectándose a sus nodos y sacando pequeños programas, llamados "módulos ansibles". Estos programas están escritos para ser modelos de recursos del estado deseado del sistema. Ansible luego ejecuta estos módulos (a través de SSH de forma predeterminada), y los elimina cuando termina.
Su biblioteca de módulos puede residir en cualquier máquina, y no se requieren servidores, demonios ni bases de datos. Por lo general, trabajará con su programa de terminal favorito, un editor de texto y, probablemente, un sistema de control de versiones para realizar un seguimiento de los cambios en su contenido.

Instalar y configurar Python
La versión predeterminada de Python en RHEL 8 es Python 3.6. Pero Python 2 sigue disponible en RHEL 8. Si por algún motivo falta Python 3.6 en la instalación de Red Hat Enterprise Linux 8, deberá instalarlo manualmente.
Python 3.6 se puede instalar en RHEL 8 ejecutando el siguiente comando en su terminal. Python debe instalarse tanto en el servidor de Ansible como en todos los hosts / clientes donde se conectará.

Code:
# 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!
Para utilizar Python 3, simplemente escriba python3 en el terminal.
Debería haber notado que para usar Python 3, el comando es python3 y python2 para Python 2. ¿Qué sucede si sus aplicaciones están configuradas para referirse a python que no está disponible en todo el sistema? Obtendrá el siguiente error de bash.

Code:
# python
-bash: python: command not found
Puede usar el mecanismo de alternativas para habilitar el comando de Python sin versión en todo el sistema y establecerlo en una versión específica. Para configurar Python 3 como predeterminado, ejecute el siguiente comando.

Code:
# alternatives --set python /usr/bin/python3
La ejecución de python -V debería mostrar la versión predeterminada de Python configurada:

Code:
#python -V
Python 3.6.6
o iniciando Python una consola:

Code:
# 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.
>>>
Establecer contraseña sin SSH
Crea el usuario ansible en todos los hosts:

Code:
# useradd ansible ;  echo "" | passwd --stdin ansible
Haga la entrada necesaria en el archivo sudoers / etc / sudoerspara un usuario ansible para acceder a sudo sin contraseña:

Code:
ansible ALL=(ALL) NOPASSWD: ALL
Ahora genere la clave SSH en el servidor de Ansible:

Code:
$ 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 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|     .           |
|      o   E    o |
|       + *    + o|
|      . S *  o * |
|         . += + +|
|          [email protected] +.|
|           OBoO+=|
|          +o++*BB|
+----[SHA256]-----+
Cópialo en servidores remotos como usuario ansible:

Code:
$ ssh-copy-id [email protected]
/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
[email protected]'s password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
Instalar Ansible
Una vez que se haya instalado Python, proceda a instalar Pip, que es un administrador de paquetes de Python que usaremos para instalar Ansible:

Code:
# 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 vez que tengamos instalado pip3, utilícelo para instalar Ansible en el sistema Ansible Management como usuario confiable.

Code:
$ pip3 install ansible --user
Puedes ver el Ansible instalado usando el siguiente comando:

Code:
$ 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)]
Code:
Testing and Managing
Create the Ansible inventory file, default is /etc/ansible/hosts but you can copy the hosts file in the home directory of the ansible user. You can also create a group of remote hosts like below in the hosts file.
Code:
[web]
192.168.1.105
[db]
192.168.1.107
[app]
192.168.1.108
192.168.1.109
192.168.1.110
Puede usar el módulo de ping para probar Ansible y, después de una ejecución exitosa, puede ver la siguiente salida.

Code:
$ ansible -i hosts 192.168.1.109 -m ping
192.168.1.109 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
La opción -i se usa para proporcionar la ruta al archivo de inventario. Debería obtener la misma salida para el nombre del grupo "app".

Code:
$ 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"
}
Conclusión
La simplicidad y la capacidad de Ansible para disminuir la complejidad de otras herramientas lo ha convertido en un candidato confiable para su entorno. Su principal preocupación es la seguridad y la fiabilidad. Utiliza OpenSSH para el transporte, y el lenguaje está diseñado alrededor de la capacidad de auditoría incluso para aquellos que no están familiarizados con el programa. Ansible es lo suficientemente adecuado para administrar ambas configuraciones pequeñas con un puñado de instancias como los entornos empresariales.