playbook modules example ansible ansible-playbook

modules - Cómo enumerar todos los hosts actualmente seleccionados en un juego Ansible



ansible-playbook command (2)

Estoy ejecutando un juego de Ansible y me gustaría enumerar todos los hosts a los que apunta. Ansible docs menciona que esto es posible , pero su método no parece funcionar con un grupo objetivo complejo (segmentación como hosts: web_servers: & data_center_primary)

Estoy seguro de que esto es factible, pero parece que no puedo encontrar más documentación al respecto. ¿Hay una var con todos los hosts apuntados actualmente?


Estás buscando la variable ''play_hosts''

--- - hosts: all tasks: - name: Create a group of all hosts by app_type group_by: key={{app_type}} - debug: msg="groups={{groups}}" run_once: true - hosts: web:&some_other_group tasks: - debug: msg="play_hosts={{play_hosts}}" run_once: true

resultaría en

TASK: [Create a group of all hosts by app_type] ******************************* changed: [web1] => {"changed": true, "groups": {"web": ["web1", "web2"], "load_balancer": ["web3"]}} TASK: [debug msg="play_hosts={{play_hosts}}"] ********************************* ok: [web1] => { "msg": "play_hosts=[''web1'']" }

inventario:

[proxy] web1 app_type=web web2 app_type=web web3 app_type=load_balancer [some_other_group] web1 web3


Puede usar la opción --list-hosts para listar solo los hosts a los que afectaría un libro de jugadas.

Además, existen los hostvars dict que contienen todos los hosts conocidos actualmente por Ansible. Pero creo que el módulo de setup tuvo que ejecutarse en todos los hosts, por lo que no puede omitir ese paso a través de gather_facts: no .