Cómo instalar Ansible y usarlo en automatización

En este artículo, sabremos cómo instalar Ansible. Antes de pasar por eso, sabríamos qué es Ansible y cuáles son sus usos.

ENSABLE

Ansible es una herramienta de automatización que se utiliza para administrar los servidores por usted. Solo necesitamos configurar Ansible para instalar un paquete o configurar una aplicación de servidor o incluso reiniciar un servicio.

Pero la pregunta es por qué necesitamos herramientas de automatización, especialmente Ansible, la respuesta es muy simple. El mantenimiento de un solo servidor no siempre es fácil, pero si tenemos que administrar más de un servidor, es muy difícil sin herramientas de automatización. Ansible no tiene agente, lo cual es la principal ventaja en comparación con otras herramientas de automatización como títeres, chef, salt, etc. No necesitamos tener nada instalado en el extremo del cliente. En Ansible, se admiten los modos push y pull. Ansible es una herramienta centrada en la seguridad que utiliza SSH abierto . Los scripts de Ansible se conocen comúnmente como libros de jugadas y son fáciles de leer.

Instalación de la herramienta de automatización Ansible

En máquinas RHEL/CENTOS

Para instalar Ansible en RHEL/CENTOS, debemos instalar y habilitar el repositorio epel usando el siguiente comando.

[email protected] ~]# yum install epel-release

La instalación de los paquetes python-pip, python-devel y git

[[email protected] ~]# yum install python-pip python-devel git

Después de completar estos paquetes, instale Ansible Package de la siguiente manera

[[email protected] ~]# yum install ansible

de lo contrario, también puede instalar usando el comando pip de la siguiente manera

[[email protected] ~]#pip install ansible

Para instalar en fedora, simplemente reemplace yum con dnf, incluso yum también funciona bien con fedora.

verifique la versión ansible usando el comando –version

Archivo de inventario

Ansible funciona contra múltiples sistemas en su infraestructura al mismo tiempo. Para ello, selecciona partes de los sistemas enumerados en el archivo de inventario de Ansible, que por defecto se guardan en la ubicación /etc/ansible/hosts.

El formato para /etc/ansible/hosts es el siguiente

Un grupo puede tener múltiples servidores y un servidor puede ser parte de múltiples grupos.
El nombre del grupo está entre corchetes []. Los nombres de los servidores pueden ser sus nombres DNS o direcciones IP.

Aquí usé los servidores 10.0.0.6 y 10.10.16.137.

[Web Servers]
10.0.0.6
10.10.16.137

SSH-keygen y SSH-copy-id

Para ejecutar cualquier módulo o libro de jugadas desde el host local al host remoto, necesitamos crear y copiar claves ssh a los hosts remotos usando ssh-keygen y ssh-copia-id.

Primero creamos la clave ssh usando el comando ssh-keygen

ansible ssh keygen

Luego copie la clave ssh al host remoto usando el comando ssh-copy-id.

[[email protected] ~]# ssh-copy-id [email protected]
/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.
 [[email protected] ~]# ssh-copy-id [email protected]
/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.

Módulos Ansible

Ansible se envía con una serie de módulos (llamados “biblioteca de módulos”) que se pueden ejecutar directamente en hosts remotos o a través de Playbooks.

Los usuarios también pueden escribir sus propios módulos. Estos módulos pueden controlar los recursos del sistema, como servicios, paquetes o archivos (realmente cualquier cosa), o manejar la ejecución de comandos del sistema.

Podemos hacer ping a todos los hosts en el archivo de inventario usando el siguiente comando

ansible -m todo ping

también podemos ejecutar el comando en todos los hosts remotos o en un grupo particular en el archivo de inventario usando ansible

comando ansible en remoto

Aquí ejecuto el módulo de comando lsenumera todos los archivos en el directorio de inicio de hosts remotos.

también podemos saber el nombre del host, el tiempo de actividad, quién inició sesión en los hosts remotos de la siguiente manera.

nombre de host ansible que

Manuales de Ansible

Los libros de jugadas son la configuración de Ansible, la implementación de las políticas que queremos aplicar o hacer cumplir en los hosts remotos en los que se encuentran en YAML comienza con “-“. Consiste en una lista de módulos y los argumentos.

Ejemplo:

---
hosts: localhost
- name: install pip
yum: pkg=python-pip state=installed

El código anterior instalará el paquete pip en hosts remotos. Cubriremos en detalle los libros de jugadas de Ansible en el próximo artículo.

Related Posts