variables - 是否可以组合 Ansible 中单独的 vars 文件中提到的相同变量名的值

标签 variables ansible load

我有两个变量文件 app1.ymlapp2.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/

相关文章:

jquery - 如何使用 jQuery 检测 'any' ajax 请求是否完成?

通过 C 程序更改环境变量

java - 将类的变量导入到另一个类

javascript - Postman API - setNextRequest 未设置下一个请求

ansible - 如何使用 Ansible 插件设置 Pycharm 对变量进行代码补全?

jquery - 延迟加载插件 (jQuery)

sql-server - SSIS 日志记录 - 捕获变量?

ansible - 在第二个 var 文件中使用一个 Ansible var 文件中的变量

Ansible 注册变量未保留在任务中

jQuery .load() 在 Chrome 浏览器中无法正常工作