Cómo configurar Ansible en Linux

Configurar y administrar Ansible en Linux puede ser bastante sencillo, pero como la mayoría de las herramientas, tiene sus peculiaridades. Si los comandos básicos no funcionan o tienes problemas con la autenticación SSH o la gestión del inventario, puede ser frustrante. A veces, parece que la red o los permisos están fallando. Afortunadamente, la mayoría de estos problemas tienen soluciones sencillas, una vez que sabes qué buscar. Esta guía te explica los aspectos básicos: instalar Ansible, configurar hosts y asegurarte de que todo se comunique sin problemas. Al final, deberías poder ejecutar comandos básicos e incluso crear playbooks sencillos sin problemas.

Cómo solucionar problemas comunes de configuración y conexión de Ansible en Linux

Método 1: Asegurarse de que Python y SSH estén correctamente instalados

Por qué es útil: Ansible depende en gran medida de Python en hosts administrados y SSH para la comunicación. Si alguno de ellos está mal configurado o no se ejecuta, los comandos se bloquearán o fallarán por completo. Especialmente en instalaciones mínimas, Python no siempre se instala por defecto.

Cuándo aplica: ejecutas un comando Ansible y obtienes algo como «Error al conectar» o «No hay Python instalado en el host remoto».

Qué esperar: Después de solucionar esto, sus hosts responderán al ping y otras tareas ad-hoc, lo que hará posible una mayor automatización.

En la mayoría de las distribuciones de Linux, especialmente en las ligeras o en las de servidor, comprueba que Python 3 o superior esté instalado. Un truco rápido: ejecuta $ python3 --version. Si no está instalado, verás un error de comando no encontrado. Después, simplemente instala Python:

$ sudo apt install python3

Si está en un sistema basado en RedHat, es similar:

$ sudo dnf install python3

Esto estabiliza la comunicación. Algunas configuraciones pueden ser extrañas y podrían requerir que copie manualmente Pythona los hosts remotos o que se asegure de que la ruta predeterminada de Python sea correcta. En ocasiones, deberá verificar que el servidor SSH esté funcionando y aceptando conexiones.

Método 2: Reparación de la autenticación de la clave SSH

Por qué ayuda: ¿Te piden la contraseña constantemente? Es molesto. Configurar la autenticación basada en claves SSH es la mejor opción. Además, evita errores como «Permiso denegado» al ejecutar tus playbooks o comandos.

Cuándo aplica: ves que cada comando te pide tu contraseña, o peor aún, arroja un error si no puedes ingresarla por algún motivo.

Qué esperar: No más indicaciones, ejecuciones más fluidas y menos momentos de «¿Escribí eso bien?».

Esto es lo que debe hacer en la práctica: ejecútelo en su máquina de control (aquella donde está instalado Ansible):

$ ssh-keygen -t rsa

Simplemente presione Enter para omitir la configuración de la contraseña. A continuación, copie su clave en cada servidor:

$ ssh-copy-id [email protected]. XX

Asegúrese de que el demonio SSH remoto permita la autenticación de clave; verifique /etc/ssh/sshd_config y asegúrese de que estas líneas estén activas:

PubkeyAuthentication yes AuthorizedKeysFile.ssh/authorized_keys

Y reiniciar SSH:

$ sudo systemctl restart sshd

Ahora puedes probar ejecutando:

$ ssh [email protected]. XX uptime

Si funciona sin solicitudes de contraseña, todo perfecto. Recuerda: a veces los agentes o permisos SSH fallan, así que si sigue preguntando, revisa ~/.ssh y los permisos.

Método 3: Configurar correctamente los ajustes de inventario y host

Por qué ayuda: Los archivos de inventario incorrectos o las rutas mal ubicadas hacen que Ansible no sepa dónde están tus hosts ni cómo conectarse a ellos. Corregir las rutas y los parámetros puede mejorar al instante la estabilidad de la conexión.

Cuándo aplica: Errores que indican “host inalcanzable”, “conexión rechazada” o problemas extraños con el grupo de host.

Qué esperar: Ansible reconocerá sus servidores y establecerá conexiones SSH sin problemas.

Primero, revisa tu archivo /etc/ansible/hosts con nano o tu editor favorito. Un ejemplo de configuración podría ser:

[servers_all] srvubunt1 ansible_host=192.168.14.144 ansible_user=sysops srvubunt2 ansible_host=192.168.14.142 ansible_user=sysops srv-db01 ansible_host=192.168.14.151 ansible_user=sysops 

Si SSH está configurado con diferentes puertos u opciones específicas, inclúyalas en una sección :vars, como:

[servers] srvubunt1 ansible_host=192.168.14.144 srvubunt2 ansible_host=192.168.14.142 [servers_all:vars] ansible_port=22 ansible_user=sysops 

Ejecutar $ ansible-inventory --graphpara verificar la estructura y los hosts. Si es necesario, especifique explícitamente su inventario con -i /path/to/hosts.

Método 4: Deshabilitar la verificación de la clave de host SSH para una automatización fluida

Por qué ayuda: Si no te has conectado a un host antes o si la huella digital SSH cambia, Ansible se pone nervioso. Ofrece buena seguridad, pero para la configuración inicial, deshabilitar la comprobación puede ahorrarte muchos problemas.

Cuándo aplica: Obtienes errores como “Error en la verificación de la clave de host”, especialmente en servidores nuevos o reconstruidos.

Qué esperar: Se conectará sin pedir cada huella. Nota: No active esta opción indefinidamente; supone un riesgo de seguridad si se encuentra en una red no confiable.

Modifique su /etc/ansible/ansible.cfg agregando o cambiando:

[defaults] host_key_checking = false

Eso es todo. La próxima vez que ejecutes un comando de Ansible, no se detendrá para preguntar por las huellas digitales del host.

Resumen

  • Asegúrese de que Python3 esté instalado en todos sus hosts remotos.
  • Configure la autenticación basada en clave SSH para evitar solicitudes de contraseña.
  • Verifique la sintaxis de su inventario y los parámetros del host.
  • Deshabilite la verificación de la clave del host SSH si solo es una molestia durante la configuración.

Resumen

Lograr que Ansible se comunique fluidamente con tus hosts Linux suele reducirse a lo básico: tener Python instalado, claves SSH configuradas y un inventario correcto. Una vez configurados, ejecutar comandos y playbooks se vuelve mucho más fácil. Cuanto más correctas sean estas configuraciones, menos se preguntará «¿por qué no se conecta?».

Esperamos que estos consejos le ahorren tiempo y frustración. Solucionar estos pequeños problemas hace que su automatización sea mucho más confiable; algo que funcionó en varias configuraciones sin mayores complicaciones.