"MCの部落"

Skip to content

[筆記] 還是 Ansible Selectattr

Posted bychchang 2020-06-28 Leave a comment on [筆記] 還是 Ansible Selectattr

在上一篇 Ansible how to use ‘list’ in yaml file

有提到怎麼用 with_items / set_fact 來取得在yaml 檔案中的清單

不過就是有點醜

這兩天又修改了一下,不需要用 when 來指定條件,改成用 filter 來篩選資料

將list整理成我們需要的「部份」資料就好,而不是所有資料都塞進來

- name: set dc_users
  tags:
    - dcusers
    - depot_folder
    - env
  set_fact:
    dc_users: "{{ item.users }}"
  with_items: "{{ teams|selectattr('name','equalto','dc')|map(attribute='users')|list }}"

有沒有比較「優雅」(自己說…

先把 teams 這個 var 抓進來,然後用 selectattr 這個filter 選出 name == dc 的資料

再將篩選後的資料,用 map 去抓出 users 這個屬性,最後轉成 list

這樣子就可以直接得到 users 了

Tags: a, ansible, cloudflare, debian, docker, GPU, letsencrypt, n1, openwrt, pihole, postfix, postgresql, raid, router, ssl, synology, ubuntu, vpn, wireguard,

文章導覽

Previous Post Previous post:
[ansible] 用 ip 位置判斷是否要執行task /ansible run task depends on ipaddr
Next Post Next post:
[ansible] 引用事先定義好的yaml檔裡面的變數 – Ansible Selectattr From List in Dictionary file

No comments

Write a Reply or Comment 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

You May Also Like:

[筆記] ansible 設定 ssh_args 開啟 ForwardX11 / config ansible ssh_args to enable forwardagent
[ansible] Ansible how to use ‘list’ in yaml file
[ansible] 引用事先定義好的yaml檔裡面的變數 – Ansible Selectattr From List in Dictionary file
[ansible] 用 ip 位置判斷是否要執行task /ansible run task depends on ipaddr

"MCの部落"

Top