在远程主机上运行 Ansible ping 失败

Zam*_*oth -1 automation ubuntu ansible

我刚刚开始研究 Ansible 以及它如何改善我的工作。话虽如此,当我尝试使用 Ansible () 对主机执行 ping 操作时,我遇到了问题ansible all -m ping -vv。Ansible 安装在主机 A 上,主机 B 在 /etc/ansible/hosts 上配置。两台主机都运行 Ubuntu 16.04.03 LTS,我可以在没有密码的情况下从 A 到 B 进行 SSH。

Ansible ping 返回

172.28.25.81 | FAILED! => {
    "changed": false, 
    "failed": true, 
    "module_stderr": "Shared connection to 172.28.25.81 closed.\r\n", 
    "module_stdout": "/bin/sh: 1: /usr/bin/python: not found\r\n", 
    "msg": "MODULE FAILURE", 
    "rc": 0
}
Run Code Online (Sandbox Code Playgroud)

我的软件版本是:

  • 安塞布尔2.4.1.0
  • Python 2.7.12

tec*_*raf 5

自从您开始使用 Ansible 以来,我相信您已经阅读了ping模块的用途(在这种情况下仅阅读标题就足够了):

\n\n
\n

ping - 尝试连接到主机,验证可用的 python 并在成功时返回\xc2\xa0pong\xc2\xa0

\n
\n\n

安塞布尔告诉你:

\n\n
\n

/bin/sh: 1: /usr/bin/python: 未找到

\n
\n\n

所以它可能无法“验证可用的Python ”。

\n\n
\n\n

这是有原因的:Ubuntu 16.04 没有安装 Python 2,因此 Ansible 无法运行/usr/bin/python可执行文件。

\n\n

你需要:

\n\n
    \n
  • 在目标机器上安装 Python 2,或者
  • \n
  • 指示 Ansible 使用 Python 3(它可以工作,但尚未正式支持) - 有一个ansible_python_interpreter设置。
  • \n
\n