2017-08-24 84 views
-1

特定鍵值我有以下結構YAML文件(abc.yaml):循環在YAML來獲得ansible-劇本

- my-container-sanity-testing: 
    tier: 0 
    phase: 1 
    provision_windows: True 
    resource_group_type: openstack 
    resource_groups: 
     - name: 'container_0' 
     role: 'atomic' 
     count: 1 
     image: 'fedora-atomic-cloud-released-latest' 
     - name: 'windows_0' 
     role: 'ad' 
     count: 1 
     image: 'win-2012-r2' 

,我有一個劇本如下任務。

-name: Get test metadata 
set_fact: 
    test_metadata="{{ lookup('file', '{{ playbook_dir }}/abc.yaml') | from_yaml }}" 

我該怎麼辦環比YAML假設我已經知道了什麼具體的列表值(我的容器,健全測試),並檢查列表值(這是一個字典)具有關鍵provision_windows:真。

以上任何提示都會有所幫助。

回答

0

Ansible使用Jinja2的模板,你可以使用filters,在這種情況下,selectattr filter

- debug: 
    msg: "{{ test_metadata | selectattr('provision_windows') | list }}" 

==>這將顯示你的test_metadata具有屬性provision_windows設置爲True

的所有元素