2015-02-25 9 views
10

Używam gry Ansible i chcę wyświetlić listę wszystkich hostów, na które jest skierowany. Ansibl docs mentions that this is possible, ale ich metoda nie wydaje się działać ze złożonym grupy docelowej (kierowania jak hostów: Serwery_Web: & data_center_primary)Jak wyświetlić listę wszystkich aktualnie atakowanych hostów w grze Ansible Play

jestem pewien, że to jest wykonalne, ale nie mogę wydawać się znaleźć żadnej dodatkowej dokumentacji na nim . Czy jest jakiś var ze wszystkimi aktualnie atakowanymi hostami?

+1

Nie wiesz, do której sekcji masz na myśli w docs . (może błędny link?) - Jeśli nie masz na myśli/nie wiesz, możesz użyć przełącznika '--list-hosts', aby wyświetlić tylko listę hostów, na które wpłynąłaby książka. – udondan

+0

--list-hosts to dane, które chcę, ale dla konkretnej gry, z różnym targetowaniem niż ogólne wejście – xabram

Odpowiedz

17

Szukasz

--- 
- 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 

skutkowałoby 'play_hosts' zmienna w

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']" 
} 

inwentaryzacji:

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

[some_other_group] 
web1 
web3 
+0

Tego właśnie szukałem, dziękuję! Czy po prostu wiesz to z doświadczenia, czy było to gdzieś w dokumentacji ansibla? Jeśli w dokumentach możesz połączyć? – xabram

+0

Cóż, znalazłem go czytając ansibli grupy google https://groups.google.com/forum/#!forum/ansible-project lub przykład playbooka (nie pamiętam dokładnie) Teraz, kiedy wiem, co Czy szukam, jest zdanie na ten temat: http://docs.ansible.com/playbooks_variables.html#id40 – sirkubax

+4

'play_hosts' jest [odesłany z 2.2] (https://docs.ansible.com/ ansible/playbooks_variables.html). Możesz teraz użyć 'ansible_play_batch' – user2599522

9

Jeśli nie masz na myśli/nie wiesz, możesz użyć przełącznika --list-hosts, aby wyświetlać tylko listę hostów, na które wpływałaby książka.

Istnieje również dyktafon hostvars, który przechowuje wszystkie hosty obecnie znane z Ansible. Ale myślę, że moduł setup musiał zostać uruchomiony na wszystkich hostach, więc nie można pominąć tego kroku przez gather_facts: no.

+0

'--check' jest również przydatne. Żadne z nich (lista-gospodarze, sprawdzanie) nie jest idealne, ale dobrze jest o nich wiedzieć. – tedder42