【发布时间】:2022-01-10 15:03:44
【问题描述】:
我正在学习如何在 python 中创建 ansible 模块,我想连接到远程设备,我正在查看 ansible 源代码以了解它们是如何连接的,但我仍然无法理解如何连接???
我从 ansible 获取了这个简单的模块文件来检查它们如何连接到远程设备并执行模块所做的所有事情 https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/ping.py
我在这个文件中没有看到任何用于 ssh 的套接字或库,那么它是怎么回事?
ansible 是先连接远程主机,然后再激活远程主机上的模块吗?
这就是它在远程设备上需要 python 的原因吗?
看不懂
【问题讨论】:
-
我们使用 ansible cli 工具来运行 adhoc 命令和 ansible-playbook 来根据 playbook 任务复制和执行所需的模块。它基本上是这些 cli 工具,它们根据清单连接到远程主机,并根据我的理解复制所需的模块并在远程主机上执行它们。正如 ansible 文档中提到的,我们需要确保我们可以 ssh 到远程主机,然后才能管理远程主机。
-
过于简化的视图:模块被归档到控制器上的 tarball 文件中。该文件使用为主机配置的whatever connection plugin 推送到远程主机(ssh、本地、docker ...)。 tarball 被提取到目标上的临时目录并使用 python 执行。结果返回给控制器。临时内容被清理。 -- 你可能会更好地理解使用
-vvv运行ansible(-playbook)
标签: python networking ssh automation ansible