Ansible 向远程主机推送什么?

jou*_*ell 5 ansible

想知道 Ansible 如何在砖块级别工作。大多数站点都说一个模块是推送的,Ansible 不需要远程主机上的代理——只需要 SSH 和 Python。

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

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

tec*_*raf 8

大多数站点都说一个模块是推送的,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
Run Code Online (Sandbox Code Playgroud)

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

如果文件被打包,文件内的注释中有关于如何扩展集的说明。


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

这种说法是不正确的。

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

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

  • 蟒蛇> = 2.6
  • 期望 >= 3.3

甚至可执行文件,例如unarchivemodule

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