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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Ansible的主机备用目录布局时如何忽略文件?相关的知识,希望对你有一定的参考价值。

我正在使用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
",
    "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
",
    "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

以上是关于使用Ansible的主机备用目录布局时如何忽略文件?的主要内容,如果未能解决你的问题,请参考以下文章

ansible-script模块使用方法

inotify用法简介及结合rsync实现主机间的文件实时同步

如何在Ansible中比较多个文件

ansible——playbook剧本

Ansible管理上千台主机时需要的速度优化

ansible