2017-10-05 12 views
0

私のプレイブックを条件付きで使用してコマンドを実行しようとしています。コマンドは、タイプ値が 'PBSTP'に設定されている特定の顧客に依存しています。タイプが他のものに設定されている場合は、再生を実行しないでください。私は現在、この設定を使用しようとしていますが、dictオブジェクトに 'type'の値が含まれていないため、条件付きで失敗していることがわかります。 これを行う方法はありますか?与えられた例ではYAMLファイルの変数に条件依存依存

- command: cp -r /home/pb/scripts /home/{{ item }}/scripts 
    with_items: "{{ customers }}" 
    when: customers['type'] == "PBSTP" 

は、私が「飲み会」クライアントが「TEST-BANK」クライアントが行うようにスクリプトのディレクトリコピーを取得しないことを望みます。 ありがとうございました!

TEST-BANK: 
    type: PBSTP 
    accept: 32506 
    connect: 33506 
    ipaddr: 
     - 192.167.203.92 
    subtype: INBOUND 
SESH: 
    type: SPOT 
    accept: 32508 
    connect: 33508 
    ipaddr: 
     - 192.167.203.63 
    subtype: TIERED 

答えて

1

あなたはcustomers辞書にwhen条件を適用しよう(それが鍵にTEST-BANKSESH、などがあります)。あなたは、ループの反復で現在の項目に条件を適用する

- command: cp -r /home/pb/scripts /home/{{ item.key }}/scripts 
    with_dict: "{{ customers }}" 
    when: item.value['type'] == "PBSTP" 

with_itemsはそれが価値だあなただけのキーを与えないだろうとあなたは、with_dictを使用する必要があることに注意してください。

+0

ありがとう、コンスタンチン。あなたは私のすべての無能なquieriesのために非常に役立ちます! –

関連する問題