我有两个变量文件 app1.yml
和 app2.yml
具有相同的变量名称,即 dbconn
cat app1.yml
dbconn:
- host1 port1
cat app2.yml
dbconn:
- host4 port4
- host5 port5
cat main.yml
- name: Load Variable Files
include_vars: "{{ playbook_dir }}/{{ item }}.yml"
loop:
- app1
- app2
run_once: yes
- debug:
msg: "{{ dbconn }}"
我的期望是变量dbconn
具有来自两个变量文件的值,即
- host1 port1
- host4 port4
- host5 port5
但是,它仅打印最后加载的变量文件值,即 - host4 port4
和 - host5 port5
你能推荐一下吗?
最佳答案
连接循环中的列表。例如,
- set_fact:
dbconn: "{{ dbconn|d([]) + (lookup('file', item)|from_yaml).dbconn }}"
loop:
- app1.yml
- app2.yml
给出
dbconn:
- host1 port1
- host4 port4
- host5 port5
关于variables - 是否可以组合 Ansible 中单独的 vars 文件中提到的相同变量名的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72907764/