2016-07-25 18 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を定義します。