【发布时间】:2020-02-03 10:37:35
【问题描述】:
我正在尝试将我的 Ansible 角色变量拆分为多个文件 - 根据 this answer,应该可以创建一个 vars/main 目录,并且应该自动加载该目录中的所有 .yml 文件。
然而,这似乎并没有发生在我的案例中。
我的目录结构:
vars
└── main
├── gce_settings.yml
├── vsphere_settings.yml
└── vsphere_zone.yml
但是,当我尝试使用在 vsphere_settings.yml 中定义的变量时,Ansible 抱怨该变量未定义:
{"msg": "The task includes an option with an undefined variable. The error was: 'vsphere_user' is undefined
如果我将变量声明移动到vars/main.yml,一切都会按预期进行。但是,当然,我更愿意将我的变量分成多个文件。
我在 Ansible 官方文档中找不到对这个“功能”的任何引用,我不知道如何解决它。谁能指出我正确的方向?
我的 ansible 版本:
ansible 2.8.5 在 Ubuntu 16.04 上
在你问之前:是的,我确实在尝试加载 vars/main/*.yml 时确保 main.yml 不存在...
【问题讨论】:
-
如果我下面的示例对您不起作用,请发布详细信息。让它mcve.
-
谢谢你,弗拉基米尔 - 我已经为问题添加了更多细节,并且我还在我的回答中发布了另一个示例(带有重现步骤)。
标签: variables ansible roles ansible-2.x