Instalación de Ansible y su configuración básica

0
4264

Ansible es una plataforma de software libre para configurar y administrar computadoras. Combina instalación multi-nodo, ejecuciones de tareas ad hoc y administración de configuraciones. En esta entrada trataremos una instalación de ansible y su configuración básica.

Vamos a partir de 3 servidores, el central y los llamados nodos, los tres servidores cuentan con Centos7 con python 2.7.5.

Para instalar ansible en el servidor central desde los repositorios escribiremos lo siguiente:

[root@localhost ~]# yum install ansible

Una vez instalado tendremos que definir a que nodos se conectará ansible. Para ello tendremos que dirigirnos al fichero /etc/ansible/hosts:

[webservers]
192.168.1.216
192.168.1.217

Podéis comprobar la documentación oficial aquí para ver que opciones disponemos. Lo bueno de Ansible es que no necesita agentes en los servidores remotos, utiliza una conexión ssh. Por lo que para ello tendremos que genererar una clave. Podréis ver una guía de nuestra web en el siguiente enlace.

Generamos la clave y la copiamos a los nodos.

[root@localhost .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.1.216 (192.168.1.216)' can't be established.
ECDSA key fingerprint is SHA256:miFb8ZezjwEZdTZmoX0WZzkxMTVmEzhfoCZiYDiR0Zk.
ECDSA key fingerprint is MD5:cf:44:09:34:30:3a:25:23:51:b6:e7:a7:c6:79:02:b2.
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.

Repetimos el mismo proceso para el otro nodo.

Una vez realizado ya podremos hacer el primer test.

Los Playbooks son las plantillas YAML que utiliza ansible para hacer despliegues. Podéis comprobar los siguientes ejemplos relacionados con Playbooks en los docs de Ansible mediante este enlace. Un Playbook puede tener diferentes grupos de servicio definidos. En este caso vamos a lanzar el siguiente ejemplo:

---
- hosts: webservers
tasks:

- name: Install
yum:
name: httpd
state: present

- name: Allowing traffic to port 80 and 443
command: firewall-cmd --zone=public --add-service=http --permanent

- name: Service restart Apache2
service:
name: httpd
state: restarted

- name: Reloading
command: firewall-cmd --reload

Lo ejecutaremos con el siguiente comando y nos devolverá lo siguiente:


[root@localhost playbooks]# ansible-playbook webservers.yml

PLAY [webservers] **********************************************************************************************************************

TASK [Gathering Facts] *****************************************************************************************************************
ok: [192.168.1.216]
ok: [192.168.1.217]

TASK [Install] *************************************************************************************************************************
ok: [192.168.1.216]
ok: [192.168.1.217]

TASK [Allowing traffic to port 80 and 443] *********************************************************************************************
changed: [192.168.1.217]
changed: [192.168.1.216]

TASK [Service restart Apache2] *********************************************************************************************************
changed: [192.168.1.216]
changed: [192.168.1.217]

PLAY RECAP *****************************************************************************************************************************
192.168.1.216 : ok=4 changed=2 unreachable=0 failed=0
192.168.1.217 : ok=4 changed=2 unreachable=0 failed=0

[root@localhost playbooks]

Si ahora entramos por nuestro navegador en los servidores podremos ver la página web default de apache. Como podéis ver el poder de control y despliegue que nos brinda Ansible sobre nuestras máquinas es muy grande.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí