剧本是否可以访问清单文件的路径?

Is path of the inventory file accessible to playbooks?

我有这样的库存层次结构:

inventories
  foo
    foo1/hosts
    foo2/hosts
  bar
    bar1/hosts
    bar2/hosts

通常,我使用显式完整路径调用 ansible:

ansible -i inventories/bar/bar1 ....

但是,某些剧本可以 运行 合并清单:

ansible -i inventories/bar ....

这将多个 hosts 文件连接在一起,正如我想要的那样。但是,我看不到任务和模板可以辨别主机属于哪个特定子库存的方法。

有没有办法知道这个?理想情况下,主机将根据其在...

中列出的清单文件属于组。

是的,可以访问。 Ansible 2.3+ 有以下两个新的 magic variables:

  • inventory_file
  • inventory_dir