【问题标题】:Specifying Ansible inventory directory指定 Ansible 库存目录
【发布时间】: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 可以让它找到丢失的变量。

标签: ansible ansible-inventory


【解决方案1】:

您需要在第一个项目的 ansible.cfg 中定义清单文件路径,您将在其中定义第二个项目的清单路径。

例子:

inventory = ./_inventory/hosts.ini

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    相关资源
    最近更新 更多