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

问题描述 投票:0回答:2

我正在使用official documentation中推荐的替代目录布局。

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

 inventories
    └── dev
        └── hosts

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
}

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

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

ps:如果我必须更改文件名,那没关系

ansible ansible-inventory
2个回答
0
投票

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

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

即使使用group_vars subdir也能很好地工作。


-1
投票

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

ansible myhost -i inventories/dev/ -m shell -a ls
© www.soinside.com 2019 - 2024. All rights reserved.