2016-07-25 1 views
1

그룹에 호스트가 10 개 있다고 가정합니다. (10) N에서 N 호스트에서 작전을 실행하는 방법
는 1에서 10
예에 임의의 값입니다책임 있음. 그룹에서 N 호스트를 선택하는 방법

- hosts: groups['group_name'][1:3] it works. 

하지만이

같은 변수를 사용하는 경우 대신 3 작동하지 않습니다
- hosts: groups['group_name'][1:N] 

임의 N, 처음 N, 마지막 N 어느 것이 될 수 있습니다.

감사합니다.

+0

비슷한 질문 [여기] (http://stackoverflow.com/a/38264504/2795592)에 대답했습니다. 모든 그룹을 동적으로 형성 할 수 있습니다. 'when : play_hosts.index (inventory_hostname)

+0

불행히도 잘 작동하지 않습니다. 같은 문제. 경우 : play_hosts.index (inventory_hostname) <2 - 작동합니다. my_N_var 인 경우 - – user3419308

+0

변수를 게임 플레이 북에 어떻게 전달합니까? '-e my_N_var = 3'을 시도 했습니까? –

답변

1

이 작품 ansible 2.1에서 절대적으로 미세 :이 같은

--- 
- hosts: all 
    gather_facts: no 
    tasks: 
    - group_by: key=limited_selection 
     when: play_hosts.index(inventory_hostname) < max_index | int 

- hosts: limited_selection 
    gather_facts: no 
    tasks: 
    - debug: msg="I'm in the limited selection group!" 

Exec에서 : ansible-playbook -e max_index=3 playbook.yml 또는 다른 곳 max_index을 정의합니다.