1

我想使用一个需要“主机名”的自定义模块,以便我可以从自定义模块启动 SSH 连接并运行命令。所以我将 transport = "local" 传递给 Runner 对象。但是,我找不到在自定义模块中获取“主机名”信息的方法。

我正在使用使用 Python API 的 Ansible 1.9.2。

4

2 回答 2

0

一个模块只有明确传递给它的可用信息。相反,您可能感兴趣的是一个动作插件,它通过(不存在的)定义在控制机器上本地运行并且可以访问更多(全部?)数据。

你可以在这里看到一些动作插件代码:https ://github.com/ansible/ansible/tree/devel/lib/ansible/plugins/action

PS:在开始编写自定义模块/插件之前,您不想升级到 Ansible 2 吗?API 完全改变了,一旦你升级,你必须重写你的模块/插件。

于 2016-02-26T04:34:15.863 回答
0

好吧,我傻了。API 中的方式也完全相同。您可以使用 {{ inventory_hostname }} 提取主机名。

于 2016-02-26T08:15:26.513 回答