2017-11-17 12 views
3

脚本は、次のようになります。私は、コマンドラインオプション--limitを知っどのように1つのホスト上で特定のタスクを実行することができますか?

- hosts: all 
    tasks: 
    - name: "run on all hosts,1" 
     shell: something1 
    - name: "run on all hosts,2" 
     shell: something2 
    - name: "run on one host, any host would do" 
     shell: this_command_should_run_on_one_host 
    - name: "run on all hosts,3" 
     shell: something3 

、私は1つのホストに制限することができ、それは脚本でそれを行うことは可能でしょうか?いずれについても

+1

'run_once:true'をタスクに追加します。 – ceejayoz

答えて

5

(デフォルトでは、リストの最初に一致します)ホスト:

- name: "run on that_one_host host" 
    shell: this_command_should_run_on_one_host 
    when: ansible_hostname == ‘that_one_host’ 

それとも​​(Ansibleインベントリに定義されたホスト名):特定のホストの

- name: "run on first found host" 
    shell: this_command_should_run_on_one_host 
    run_once: true 

使用する名前に応じてansible_hostname(ターゲットマシンで定義されているホスト名)の代わりに入力します。

+0

非常に便利ですが、残念なことにすべての危険なモジュールには当てはまりません。 – FuzzyAmi

+0

@FuzzyAmiどういう意味ですか? – techraf

関連する問題