Escenarios y casos de uso avanzados de conexión
Si bien la configuración básica de los parámetros de conexión de Ansible cubre muchos casos de uso comunes, también hay escenarios más avanzados que es posible que encuentres. Exploremos algunos de estos escenarios y cómo manejarlos.
Conexión a hosts bastión (jump boxes)
En algunos entornos, es posible que necesites conectarte a tus hosts de destino a través de un host bastión o jump box. Ansible admite este escenario permitiéndote especificar una variable ansible_ssh_common_args
en tu archivo de inventario.
[bastions]
bastion01 ansible_host=10.0.0.10
[webservers]
web01 ansible_host=192.168.1.100 ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -q bastion01"'
web02 ansible_host=192.168.1.101 ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -q bastion01"'
En este ejemplo, Ansible utilizará el host bastión bastion01
para establecer una conexión con los hosts webservers
.
Conexión a hosts con puertos SSH no estándar
Si tus hosts de destino utilizan puertos SSH no estándar, puedes especificar el parámetro ansible_port
en tu archivo de inventario.
[databases]
db01 ansible_host=192.168.1.200 ansible_port=2222
db02 ansible_host=192.168.1.201 ansible_port=2222
Esto indicará a Ansible que utilice el puerto especificado al conectarse a los hosts databases
.
Conexión a hosts Windows
Para hosts Windows, puedes utilizar el tipo de conexión winrm
estableciendo el parámetro ansible_connection
.
[windows]
win01 ansible_host=192.168.1.150 ansible_user=windowsadmin ansible_password=windowspass ansible_connection=winrm
win02 ansible_host=192.168.1.151 ansible_user=windowsadmin ansible_password=windowspass ansible_connection=winrm
Asegúrate de tener la configuración de WinRM necesaria configurada en tus hosts Windows para que esto funcione.
Conexión a hosts con métodos de autenticación específicos
Ansible admite varios métodos de autenticación, como claves SSH, contraseñas y Kerberos. Puedes especificar el método de autenticación adecuado utilizando el parámetro de conexión correspondiente.
[kerberos_hosts]
host01 ansible_host=192.168.1.200 ansible_user=kerberos_user ansible_password=kerberos_pass ansible_connection=krb5
host02 ansible_host=192.168.1.201 ansible_user=kerberos_user ansible_password=kerberos_pass ansible_connection=krb5
En este ejemplo, estamos utilizando la autenticación Kerberos para conectarnos al grupo kerberos_hosts
.
Al entender estos escenarios de conexión avanzados, puedes adaptar Ansible para que funcione sin problemas con una amplia gama de configuraciones de infraestructura, asegurando una comunicación confiable y segura con tus hosts de destino.