gpt4 book ai didi

python - 在 Ansible 中,有没有办法将多个字典传递到 with_dict 任务循环中?

转载 作者:太空宇宙 更新时间:2023-11-04 03:22:56 34 4
gpt4 key购买 nike

我正在尝试在任务循环中将多个词典输入 with_dict。

vars/users.yml 文件

---
server_admins:
admin1: comment="Dark Helmet" uid=10000 state=present
admin2: comment="Princess Vespa" uid=10001 state=present

developers:
dev1: comment="Prince Valium" uid=2000 state=present

group_vars/webservers.yml

---
ssh_users:
- "{{ server_admins }}"
- "{{ developers }}"

任务/main.yml

---
- name: create users
user: name={{ item.key }} {{ item.value }}
with_dict: "{{ ssh_users }}"

如果我在 {{ ssh_users }} 中只定义一个字典,任务将按预期运行。但是当我添加第二个字典时,我得到“with_dict expects a dict”。显然它没想到有两个!

到目前为止,我的解决方法是为每个用户组创建一个新角色,但这已经失控了,而且看起来也不是一个好的解决方案,因为我在每个用户组中都重复了相同的逻辑作用。

关于如何将多个字典传递或连接到 with_dict 中,或以任务循环可以处理的方式构建数据的任何想法;同时仍然保持单一角色?

最佳答案

从 Ansible 2.0 开始有一个 Jinja 过滤器,combine ,为此:

  ---
- name: create users
user: name={{ item.key }} {{ item.value }}
with_dict: "{{ server_admins | combine(developers) }}"

关于python - 在 Ansible 中,有没有办法将多个字典传递到 with_dict 任务循环中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34101439/

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