我正在尝试将我的第一个剧本与星系角色一起使用,虽然我可以让该角色运行,但似乎无法让它找到我定义的 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