gpt4 book ai didi

shell - Ansible jinja 模板 : variable number of group keys

转载 作者:行者123 更新时间:2023-12-04 03:55:22 25 4
gpt4 key购买 nike

我正在编写 shell ansible 脚本,我需要做的一件事是使用 jinja2 从 list 文件中填充 ini 文件中的列表。

目前它接受变量 component_group_1 和 component_group_2 作为组键并从那里填充组件列表

components: "{{groups[component_group_1]+groups[component_group_2]}}"

我如何重写这一行,以便它可以只使用一个名为 all_component_groups 的变量,它具有此模式“客户、供应商、产品....”中所有需要的组键,并且可以在哪里是任意数量的组 key ?

最佳答案

将 var 作为列表会容易得多:

all_component_groups_list:
- group1
- group2
- group3

同时,根据您的模式创建列表非常容易

all_components_groups: "customers,vendors,products"
all_components_groups_list: "{{ all_components_groups.split(',') }}"

一旦你明白了,剩下的也很简单:

  1. 使用map => extractgroups 字典中提取相关列表
  2. 展平列表列表以获得包含所有值的单个列表
  3. 使用 unique 过滤器删除可能的重复值

根据您的逗号分隔列表要求将它们放在一起

components: "{{ all_component_groups.split(',') | map('extract', groups) | flatten | unique }}"

关于shell - Ansible jinja 模板 : variable number of group keys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63999729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com