使用Ansible的主机备用目录布局时如何忽略文件?

时间:2018-05-17 10:24:18

标签: ansible ansible-inventory

我正在使用建议的替代目录布局 official documentation

我的目录结构非常简单。它看起来像这样:

 inventories
    └── dev
        └── hosts

主机文件内容如下:

[mygroup]
myhost ansible_host=1.2.3.4

这项工作非常顺利。

但是,我正在使用小时虚拟机,我不想在我的git存储库中保留一个hosts文件。用于文档目的并跟踪此类文件的结构。我想通过以下结构创建一个“模板文件”。

inventories
    └── dev
        ├── hosts
        └── hosts.tpl

例如,此tpl文件具有以下内容:

[mygroup] myotherhost ansible_host=4.3.2.1

如果执行这样的ansible命令:

ansible mygroup -i inventories/dev/ -m shell -a ls

我得到的结果如下:

myhost | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: ssh: connect to host 1.2.3.4 port 22: Operation timed out\r\n",
    "unreachable": true
}
myotherhost | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: ssh: connect to host 4.3.2.1 port 22: Operation timed out\r\n",
    "unreachable": true
}

我们收到了清单/ dev / hosts和inventoryories / dev / hosts.tpl中定义的主机的错误消息。

我不希望Ansible读取我的库存/ dev / hosts.tpl文件,怎么做?

ps:如果我必须更改文件名

,这没关系

2 个答案:

答案 0 :(得分:0)

我找到了解决方案:我直接调用库存文件库存/ dev / hosts

ansible -i inventories/dev/hosts -m shell -a ls

即使使用group_vars subdir也能正常工作。

答案 1 :(得分:-1)

尝试在myhost命令中输入主机名mygroup而不是组名ansible,如下所示

ansible myhost -i inventories/dev/ -m shell -a ls