2016-05-15 2 views
3

ランダムな文字列またはタイムスタンプを生成し、それを再生中のすべてのホストに送信するタスクが必要です。例えば可能性:ランダムな文字列を生成してすべてのホスト間で共有する

、私はこれを行う場合:

- name: Create a unique ID 
    shell: random_string 
    register: unique_id 

- name: store the unique ID 
    lineinfile: 
    dest: '/home/project/config.txt' 
    regexp: 'unique_id' 
    line: 'unique_id = "{{ unique_id }}' 

これは、各リモートマシン上で別々にランダムな文字列を生成しますので、それらが一致しません。私はlocal_actionを使ってローカルマシン上に生成することができましたが、各ホストごとに別々に実行します。どうすればすべてのホストで同じことが保証されますか?

答えて

3

delegate_toまたはlocal_actionと組み合わせて使用​​すると、変数を1回だけ生成することができます。

だからあなたの最初の仕事は、単に次のようになります。

- name: Create a unique ID 
    shell: random_string 
    run_once: true 
    delegate_to: 127.0.0.1 
    register: unique_id 
+0

run_onceは私が必要なものです。ありがとう – mahemoff