[英]Ansible, dynamically create list of dictionaries from pattern match of variable names
我正在嘗試從以類似方式命名的退出變量在 Ansible 中動態創建字典列表。 我無法真正修改現有變量,因為它們被項目中的其他事物使用。
假設以下變量已經存在:
item_1a:
name: first test item
value: 100
item_2a:
name: second test item
value: 200
options: extra
item_zz:
name: last test item
option: nameless
我需要從名稱匹配^item_*
所有變量動態創建什么:
dynamic_list:
- name: first test item
value: 100
- name: second test item
value: 200
options: extra
- name: last test item
option: nameless
我可以以任何方式按名稱模式查詢變量嗎?
例如,下面的任務完成了這項工作
- set_fact:
dynamic_list: "{{ my_vars|map('extract', vars)|list }}"
vars:
my_vars: "{{ vars|select('match', '^item_.*$')|list }}"
給
dynamic_list:
- name: first test item
value: 100
- name: second test item
options: extra
value: 200
- name: last test item
option: nameless
我最終通過以下方式獲得了列表,
vars:
varname_list: "{{ query(varnames, '^item_.*$') }}"
dynamic_list: "{{ varname_list | map('extract', vars) | list }}"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.