我正在使用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:如果我必须更改文件名,那没关系
我找到了解决方案:我直接调用库存文件库存/ dev / hosts
ansible -i inventories/dev/hosts -m shell -a ls
即使使用group_vars
subdir也能很好地工作。
尝试在myhost
命令中输入主机名mygroup
而不是组名ansible
,如下所示
ansible myhost -i inventories/dev/ -m shell -a ls