gpt4 book ai didi

ansible - 追加到 Ansible 列表中的字典

转载 作者:行者123 更新时间:2023-12-02 15:25:07 24 4
gpt4 key购买 nike

我有以下结构,需要将其合并到单个字典列表中。

我可以更改 secrets 列表的语法/结构(如果更容易的话,可以更改为其他内容)。

vars:
users:
- name: foo
database: foodb
- name: bar
database: bardb

secrets:
- name: foo
password: foopass
- name: bar
password: barpass

预期结果:

users:
- name: foo
database: foodb
password: foopass
- name: bar
database: bardb
password: barpass

我尝试了几种过滤器都无济于事,我最接近的是:

tasks: 
- set_fact: foo: "{{ foo|default([]) + [item | combine(secrets, recursive=True)] }}"
with_items: "{{ users }}"

结果:

fatal: [localhost]: FAILED! => {"failed": true, "msg": "|combine expects dictionaries, got u'foo'"}

最佳答案

例如:

---
- hosts: localhost
gather_facts: no
vars:
users:
- name: foo
database: foodb
- name: bar
database: bardb
secrets:
- name: foo
password: foopass
- name: bar
password: barpass
tasks:
- set_fact:
tmp_user: "{{ item | combine(secrets | selectattr('name','equalto',item.name) | first) }}"
with_items: "{{ users }}"
register: tmp_users
- set_fact:
users: "{{ tmp_users.results | map(attribute='ansible_facts.tmp_user') | list }}"
- debug:
msg: "{{ users }}"

关于ansible - 追加到 Ansible 列表中的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42673166/

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