gpt4 book ai didi

python - 如何更新 Ansible 中的嵌套变量

转载 作者:太空狗 更新时间:2023-10-30 01:13:09 28 4
gpt4 key购买 nike

我有一些额外的信息,例如数据库连接详细信息等,存储在/etc/ansible/facts.d/environment.fact 中。

这些作为变量可用,例如 ansible_local.environment.database.name。更新数据库名称的最佳方法是什么?

我尝试了 set_fact 模块,但无法让它正确更新嵌套变量。它只是覆盖整个 ansible_local 散列。

- name: Update database name
set_fact:
args:
ansible_local:
environment:
database:
name: "{{ db_name }}"

最佳答案

假设您使用的是 Ansible 2.0 或更早版本,这应该会有所帮助。

- set_fact:
test:
app:
in: 1
out: 2

- set_fact:
test_new:
app:
transform: 3

- set_fact:
test: "{{test|combine(test_new,recursive=True)}}"

- debug: var=test

A combine是 Ansible 中包含的 Jinja2 过滤器。确保在这种情况下使用 recursive 参数。

关于python - 如何更新 Ansible 中的嵌套变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37043746/

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