【发布时间】:2016-02-26 16:15:26
【问题描述】:
我想使用需要“主机名”的自定义模块,以便我可以从自定义模块启动 SSH 连接并运行命令。所以我将 transport = "local" 传递给 Runner 对象。但是,我找不到在自定义模块中获取“主机名”信息的方法。
我正在通过 Python API 使用 Ansible 1.9.2。
【问题讨论】:
标签: api ansible ansible-api
我想使用需要“主机名”的自定义模块,以便我可以从自定义模块启动 SSH 连接并运行命令。所以我将 transport = "local" 传递给 Runner 对象。但是,我找不到在自定义模块中获取“主机名”信息的方法。
我正在通过 Python API 使用 Ansible 1.9.2。
【问题讨论】:
标签: api ansible ansible-api
一个模块只有明确传递给它的可用信息。相反,您可能感兴趣的是一个动作插件,它通过(不存在的)定义在控制机器上本地运行,并且可以访问更多(全部?)数据。
你可以在这里看到一些动作插件代码:https://github.com/ansible/ansible/tree/devel/lib/ansible/plugins/action
PS:在开始编写自定义模块/插件之前,您不想升级到 Ansible 2 吗? API 完全改变了,一旦你升级,你必须重写你的模块/插件。
【讨论】:
好吧,我傻了。 API 中的方式也完全相同。您可以使用 {{ inventory_hostname }} 提取主机名。
【讨论】: