Ansible 向远程主机推送什么?

Ansible 向远程主机推送什么?

想知道 Ansible 在实体层面是如何工作的。大多数网站都说模块被推送了,Ansible 不需要远程主机上的代理 - 只需要 SSH 和 Python。

看起来 Ansible 需要在本地创建一个 python 脚本并将其复制到远程主机。发送的是什么?它实际上是一个.py文件还是一个.pyc文件 - 或者其他?

远程主机怎么可能不需要任何额外的 Python 包呢?

答案1

大多数网站都说模块已被推送,而 Ansible 不需要远程主机上的代理 - 只需要 SSH 和 Python。

没错。

scp或者也可以使用 WinRM,以及一些其他连接类型


看起来 Ansible 需要在本地创建一个 python 脚本并将其复制到远程主机。发送了什么?它实际上是 .py 文件还是 .pyc 文件 - 或者其他?

它确实在本地创建一个脚本并将其复制到远程主机。.py或其中的一组打包脚本。

你可以自己看看——执行 Ansible 并将ANSIBLE_KEEP_REMOTE_FILES其设置为1

ANSIBLE_KEEP_REMOTE_FILES=1 ansible-playbook playbook.yml

并检查目标机器上的临时目录(默认情况下位于$HOME/.ansible/tmp/连接用户的目录下)。

如果文件已打包,则文件内的注释中会有关于如何扩展该集合的说明。


远程主机怎么可能不需要任何额外的 Python 包呢?

这种说法是错误的。

有许多模块需要额外的 Python 包,例如expect模块

执行此模块的主机需要满足以下要求。

  • python >= 2.6
  • pexpect >= 3.3

甚至是可执行文件,例如unarchive模块

需要目标主机上的gtar/命令。unzip

相关内容