es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Enfoque en hosts en un grupo en orden con Ansible.

En Patrones: orientación de hosts y grupos – Documentación de Ansible se sugiere que es posible orientar en orden los hosts de un grupo al utilizar Ansible. Por ejemplo, la documentación utiliza un grupo webservers:

ini
[webservers]
cobweb
webbing
weber

La documentación sugiere que ao usar webservers[0] se orientaría a cobweb. En mi entorno, tengo dos nodos en un grupo y al orientar al primer nodo usando [0], me devuelve el segundo nodo y no el primero en el grupo.

Ansible se ejecuta en AWX y el proyecto de inventario se basa en una fuente Git. AWX también lista el grupo en el orden correcto en la interfaz web, pero cuando emito la salida del grupo, está en orden inverso.

yaml
- debug:
msg: "hosts: {{ groups['my_group'] }}"

¿Es este un problema conocido? Los resultados que estoy obteniendo sugieren que el orden está aleatorizado. Así que la documentación es incorrecta o hay un error en Ansible o AWX.

Estoy usando Ansible 2.9.17 con AWX 17.0.1.

La forma en que se ordena la variable groups es, en mi opinión, independiente de la estrategia de orden. Por ejemplo, cuando tengo una jugada como se muestra a continuación, puedo decirle a Ansible que use el orden del inventario.

yaml
hosts: my_group
order: inventory
roles: ...

En cuanto puedo ver, esto no tiene relación con el orden de la lista groups['my_group'].

Tags:  

Answer

  1. Avatar for davy.ai

    Seleccionando hosts en un grupo de Ansible

    De acuerdo con la documentación de Ansible, es posible seleccionar los hosts en un grupo en un orden específico. Sin embargo, esto no siempre funciona como se espera. Por ejemplo, usar webservers[0] para seleccionar cobweb en un grupo de 3 hosts [cobweb, webbing, weber] podría devolver webbing en lugar de cobweb.

    Esto podría deberse a un error en Ansible, AWX o la fuente de Git, a pesar de que el orden del grupo se muestra correctamente en la interfaz web de AWX. Por lo tanto, es posible que la forma en que se ordenan las vars de los groups no dependa de la estrategia de orden.

    Para asegurarse de que Ansible siga el orden del inventario al ejecutar una tarea, se puede utilizar el comando order: inventory.

Comments are closed.