2017-07-15 9 views
1

私はAnsibleの新規ユーザーです.Anabledを使用して自動化タスクを実行する方法を確認しようとしています。私はいくつかのサーバーに接続して、アイテムのリスト(list_2)を取得するファイルをcatしたいと思います。そのアイテムのリストが別のリスト(list_1)にあるかどうかを確認したいと思います。 list_2のどの項目がlist_1にあるかを示す表を出力したいのですか?スクリプトを実行せずにAnabilities経由でこれを達成する方法はありますか?Pythonタスクの出力を評価する可能性がありません

以下は両方のリストを集めてそれらをレジスタに入れますが、list_2の項目がlist_1に含まれているかどうかを評価する方法は不明です。

list_1 = 'red, green, yellow, blue, orange, purple' 
list_2 = 'green, blue, purple' 

hosts: myhost 

tasks: 
- name: get list 1 
    shell: "cat /dir/list_1" 
    register: list_1 

tasks: 
- name: get list 2 
    shell: "cat /dir/list_2" 
    register: list_2 

所望の出力:

ここ
list_1 list2inlist1 
red  No 
green Yes 
blue Yes 
orange No 
purple Yes 

答えて

1

は、私は、テンプレートはと思い、あなたが本当にあなたの希望の出力と同じ構文をしたい場合は、ご希望の出力

- name: print intersection 
    debug: 
    msg: "{{ item }}" 
    with_items: "{{ list_1.stdout.split(', ') }}" 
    when: item in list_2.stdout.split(', ') 

に近いでしょう何か最も簡単な方法です。 intersection.j2で

- name: print intersection template 
    template: 
    src: intersection.j2 
    dest: /some_dir/intersection.txt 

list1 list2inlist1 
{% for item in list_1.stdout.split(', ') %} 
{% if item in list_2.stdout.split(', ') %} 
{{ item }} YES 
{% else %} 
{{ item }} NO 
{% endif %} 
{% endfor %} 
あなたのタスクで

関連する問題