我应该将 group_vars 放在 ansible 设置和 galaxy 角色的哪里

我应该将 group_vars 放在 ansible 设置和 galaxy 角色的哪里

我正在尝试将我的第一个剧本与星系角色一起使用,虽然我可以让该角色运行,但似乎无法让它找到我定义的 group_vars。

角色是 nickjj.mariadb(可能并不重要)但在文档中指出 group_vars 应该与您的库存目录相关。

我尝试了几种不同的方法,但目前还没有成功。

tree                                                                                                                                                             
 .
 ├── group.vars
 │   └── siteservers.yml
 ├── install_maria.yml
 ├── inventory
 │   └── hosts
 └── update-apt.yml

这是我所拥有的布局,我正在运行剧本

ansible-playbook -i inventory/hosts -l siteservers install_maria.yml -K

它成功地从 hosts 文件中找到服务器的 ip 地址,但似乎没有从 siteservers.yml 中获取变量。

这个应该放在哪里?我对布局了解清楚了吗,还是完全错了?

答案1

尝试设置PLAYBOOK_VARS_ROOT参数到剧本的路径,以便 Ansible 可以找到group_vars目录。或者将值设置为bottom

这将设置哪些 playbook 目录将用作处理 vars 插件的根目录,包括查找 host_vars/group_vars。top 选项遵循使用链中的顶部 playbook 查找根目录的传统行为。bottom 选项遵循 2.4.0 行为,即使用当前 playbook 查找根目录。all 选项从第一个父级检查到当前 playbook。

答案2

您的目录名称有拼写错误:group.vars

这应该有一个下划线,而不是句号:group_vars

相关内容