¿Cómo instalar y configurar Ansible en Ubuntu?

Introducción a Ansible en Ubuntu para un mejor aprovisionamiento del entorno y gestión de la configuración.
La gestión de la configuración es una etapa crucial en DevOps ciclo vital. Ayuda en la automatización y orquestación de la infraestructura de TI.
Hay varias herramientas para la gestión de la configuración, por ejemplo, Puppet, Ansible, Chef y SaltStack. Y por supuesto, Ansible es una de las herramientas más populares en DevOps. Puede administrar miles de servidores y su infraestructura de TI completa con facilidad.

Cubriremos lo siguiente en este artículo.
- Instalación Ansible
- Intercambio de claves SSH
- Configuración del cliente Ansible
- Prueba de Ansible
Instalación Ansible
Para hacerlo simple, intentemos usar Ansible en dos servidores. Uno será ansible-server y otro ansible-client con la siguiente IP.
- servidor ansible - 10.0.0.1
- ansible-cliente - 10.0.0.25
La instalación es sencilla ... lo siguiente debe realizarse en todos los servidores en los que desee utilizar Ansible. En este caso, por encima de ambos servidores.
- Ejecute el siguiente comando para instalar el software necesario requerido para instalar ansible.
root@ansible-server:~# apt install software-properties-common
- Instale el repositorio con el paquete ansible.
root@ansible-server:~# apt-add-repository --yes --update ppa:ansible/ansible
- Actualizaciónate la herramienta de empaquetado avanzada (apt)
root@ansible-server:~# apt update
- y aletaally – ejecute el siguiente comando para instalar
root@ansible-server:~# apt install ansible
La instalación del paquete necesario tardará unos segundos.
¿Cómo se asegura de que esté instalado y de su versión?
Bueno, es facil. Puedes usar --version
sintaxis con ansible para averiguarlo como se muestra a continuación.
root@ansible-server:~# ansible --version
ansible 2.8.1
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.15+ (default, Nov 27 2018, 23:36:35) [GCC 7.3.0]
root@ansible-server:~#
Como puede ver, Ansible 2.8.1 está instalado y proporciona la información necesaria, como la ubicación del archivo de configuración, el módulo de Python.
A continuación, necesitamos hacer un intercambio de claves SSH para que el servicio y un cliente puedan hablar entre sí.
Intercambio de claves SSH
Ansible se conecta a su cliente a través de SSH (Secure shell).
Primero generaremosate una clave pública en el servidor ansible, que debe copiarse en el cliente ansible.
Asegúrese de haber iniciado sesión como usuario root.
- eneroate la clave usando
ssh-keygen
comando como se muestra a continuación
root@ansible-server:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:cDapZBESo+8XcbXupbtILkFrklUSpwa70Y1c7yH5K1A root@ansible-server
The key's randomart image is:
+---[RSA 2048]----+
| =.+oo . |
| . B.B.= . |
| . o @oE + |
| . *oO * . |
| o++.S + . |
| .o +o . + |
| .o..o + |
| ..o o . |
| .o o. |
+----[SHA256]-----+
root@ansible-server:~#
Como habrás notado, tiene gener.ateda clave pública en el .ssh
carpeta. La ruta completa es /root/.ssh/id_rsa.pub
Nota: asegurar la privacidadate y los archivos de clave pública no son legibles en todo el mundo. Puede enumerar los archivos para verificarlos.
- Vaya a la carpeta .ssh
cd /root/.ssh
- Lista de archivos
root@ubuntu:~# ls -l
-rw------- 1 root root 1679 Jun 19 00:37 id_rsa
-rw------- 1 root root 404 Jun 19 00:37 id_rsa.pub
Si nota que el permiso es incorrecto, puede cambiarlo usando chmod
comando
por ejemplo:
chmod 400 id_rsa
chmod 400 id_rsa.pub
Copiemos la clave pública al host Ansible cuya dirección IP es 192.168.56.101
root@ansible-server:~/.ssh# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.25
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '10.0.0.25 (10.0.0.25)' can't be established.
ECDSA key fingerprint is SHA256:eXduPrfV0mhxUcpsZWg+0oXDim7bHb90caA/Rt79cIs.
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
root@10.0.0.25's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@10.0.0.25'"
and check to make sure that only the key(s) you wanted were added.
root@ansible-server:~/.ssh#
Puede ver en el resultado anterior que se ha agregado 1 clave correctamente. este indicaates que se intercambia la clave SSH.
A continuación, configuraremos un cliente Ansible.
Configuración del cliente Ansible
Supongo que ya ha seguido los pasos de instalación de Ansible en el servidor cliente como se explica en la p.revpasos iosos.
La configuración del cliente o del host no es más que hacer que el servidor Ansible conozca a los clientes. Y para hacerlo:
- Inicie sesión en el servidor Ansible
- Vaya a / etc / ansible
- Agregue lo siguiente en archivo de hosts usando tu editor favorito
[Client]
node1 ansible_ssh_host=10.0.0.25
- Guarde el archivo de hosts
Prueba ansible
Si ha seguido todos los pasos correctamente, obtendrá un ÉXITO mensaje cuando ejecuta el siguiente comando en el servidor ansible.
root@ansible-server:~/.ssh# ansible -m ping Client
node1 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
root@ansible-server:~/.ssh#
Thea anterior hace ping al cliente para probar la conectividad y confirmar si es buena o no.
Conclusión
Espero que esto le dé una idea para comenzar con la instalación y el juego. Estén atentos para más tutoriales de Ansible o también consulte este Curso de Udemy Mastering Ansible.