为什么 ansible ping 模块任务是远程执行类型?



Ansible 有两种执行类型:远程、本地

本地执行类型类似于从 ansible 服务器调用 REST API 调用并接收 http 响应


从 ansible 服务器运行以下命令后:

ansible 192.168.33.20 -i inventory -u vagrant -m ping -k -vvv

-vvv选项显示:

ping包被传输到目标服务器(192.168.33.20(并编译成二进制文件。

然后ping在远程机器(192.168.33.20(上执行

/usr/bin/python /home/vagrant/.ansible/tmp/ansible-tmp-111111.44.555555/ping

然后运行

rm -rf /home/vagrant/.ansible/tmp/ansible-tmp-111111.44.555555/ >/dev/null 2>&1

192.168.33.20


但是,ping命令应该从192.168.33.20以外的机器运行,以测试来自192.168.33.20的响应。

为什么 ansibleping模块任务是远程执行类型?

ping包被传输到目标服务器(192.168.33.20(并编译成二进制文件。

Ansible 不会将任何东西编译为二进制文件。它将模块转移并运行它,而不会发生转换。

但是,ping 命令应该从 192.168.33.20

以外的机器运行,以测试来自 192.168.33.20 的响应。

您将 Ansible 的ping模块与ping命令混淆了。ping模块基本上是一个无所事事的模块,用于确认 Ansible 能够与远程主机通信。 这有点相当于跑步:

ssh remotehost true

它不执行任何操作,只是成功返回。

最新更新