2017-10-09 11 views
0

私のホストには3つのネットワークIPアドレスがあり、そのうちの1つは後でプレイブックに必要です。IPアドレスを検索して見つける可能性のある設定モジュール

{ 
    "setup.ansible_facts.ansible_ip_addresses": [ 
     "10.0.2.15", 
     "fe80::85ae:2178:df12:8da0", 
     "192.168.99.63", 
     "fe80::3871:2201:c0ab:6e39", 
     "192.168.0.63", 
     "fe80::79c5:aa03:47ff:bf65", 
     "fd89:8d5f:2227:0:79c5:aa03:47ff:bf65", 
     "2a02:c7f:9420:7100:79c5:aa03:47ff:bf65" 
    ] 
} 

私は検索して192.168.0.63を見つけるための方法を見つけようとしています:

- name: Gather Networks Facts into Variable 
    setup: 
    register: setup 

- name: Debug Set Facts 
    debug: 
    var: setup.ansible_facts.ansible_ip_addresses 

ザ・は、次のような出力を提供します。私の脚本で

私は次のセットアップ・モジュールを走ってきました最初の3オクテットまたは192.168.0を使用します。私はまた、その価値を事実に反映させたいので、後で私の演劇でこれを使うことができます。

AnsibleまたはJinja2でその価値を検索して見つける最も良い方法は何ですか?

答えて

1

これはどうしてですか?

- set_fact: 
    my_fact: "{{ (setup.ansible_facts.ansible_ip_addresses | select('match','192.168.0.') | list)[0] }}" 

パターンに一致する値が複数ある場合、最初のパターンが順番に取得されます。

+0

これは完全に機能しました。ありがとうございました – PatchSte

関連する問題