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.