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

Why ansible ping module task is remote execution type?

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

然后 运行s

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 的响应。

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

ping package is transferred to target server(192.168.33.20) and compiled into binary.

Ansible 不会将任何东西编译成二进制文件。它传输模块并运行它,没有发生任何转换。

But, ping command is supposed to run from machine other than 192.168.33.20 to test the response from 192.168.33.20.

您将 Ansible 的 ping 模块与 ping 命令混淆了。 ping 模块基本上是一个不执行任何操作的模块,用于确认 Ansible 能够与远程主机通信。它相当于 运行:

ssh remotehost true

它没有任何事情,它只是returns成功。