ansible - 如何使用ansible将vars文件包含在vars文件中?

标签 ansible

是否可以将 Ansible 中的 vars 文件动态包含到另一个 vars 文件中?

即我有 vars 文件:

---
definitions:
- { product: web_v2, suite: mysuite, include: default_step.yml }
- { product: prod2, suite: mysuite2, include: default_step.yml }

我希望将 default_step.yml 的内容添加到字典中。请注意,这是在 vars 文件中,因此有关如何从任务中包含 vars 文件的文档似乎不适用。

我能想到的就是用 jinja 模板化这个文件并使用它的 {% include %} 函数,然后在主任务中使用 include_vars 但那看起来很复杂...

最佳答案

不幸的是,vars 文件没有 include 语句。

您可以将所有变量放入definitions字典中,或者将变量添加为同一文件中的另一个字典。

如果您不想将它们放在同一个文件中,可以通过在播放开始时添加 vars 文件将它们包含在剧本级别:

---
- hosts: myhosts

  vars_files:
    - default_step.yml

或在任务中:

---
- hosts: myhosts

  tasks:
    - name: include default step variables
      include_vars: default_step.yml

关于ansible - 如何使用ansible将vars文件包含在vars文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27746077/

相关文章:

ansible - ansible local_action 没有 yaml 语法?

shell - ansible playbook shell模块转义特殊字符

Ansible set_fact 正在覆盖项目

ansible - 通过 Ansible 查找包含程序的所有 CICS 区域

unix - Ansible不使用cp命令复制目录

循环时,Ansible 仅在包含的 playbook 中运行任务一次

Ansible:运行失败的任务

Ansible 变量优先级哈希

ansible - 在 Ansible playbook 中指定角色的版本

linux - 使用 Ansible 在特定时间安排命令