【发布时间】:2014-11-16 07:44:27
【问题描述】:
我有两个 Ansible 项目。一个包含常见的角色和剧本,第二个剧本包含特定于客户的角色,包括库存。
我希望能够使用来自第二个项目的清单来运行常见的剧本
ansible-playbook -vvvv -s -K -i \
~/inventory/hosts/staging.int.openbet.com site.yml
~/inventory >
.
├── group_vars
│ └── all
├── hosts
│ └── staging.int.openbet.com
└── host_vars
└── staging.int.openbet.com
这对主机正确运行,但没有拾取 host_vars。我期待 host_vars 和 group_vars 与清单文件相关,但这似乎没有发生。
http://docs.ansible.com/intro_inventory.html#splitting-out-host-and-group-specific-data
提示:在 Ansible 1.2 或更高版本中,group_vars/ 和 host_vars/ 目录可以存在于 playbook 目录或 inventory 目录中。如果两个路径都存在,则将第二个加载 playbook 目录中的变量。
最感谢的任何帮助,我正在运行 1.7
【问题讨论】:
-
相信问题是额外的主机目录。现在检查一下
-
对于后代:是的,假设您在工作目录中作为主机文件,Ansible 正在从那里寻找 ./group_vars 和 ./host_vars 目录。因此,将 hosts 文件移动到
~/inventory/staging.int.openbet.com可以让它找到丢失的变量。