我刚刚开始研究 Ansible 以及它如何改善我的工作。话虽如此,当我尝试使用 Ansible ( ansible all -m ping -vv
) ping 主机时遇到了问题。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
}
我的软件版本是:
- Ansible 2.4.1.0
- Python 2.7.12
答案1
自从你开始使用 Ansible 以来,我相信你读过ping
模块适用于(这种情况下,只读取标题就足够了):
ping - 尝试连接主机,验证可用的 python,并在成功时返回 pong
Ansible 告诉你:
/bin/sh: 1: /usr/bin/python: 未找到
因此很可能无法“验证可用的 Python“。
原因是:Ubuntu 16.04 没有安装 Python 2,因此 Ansible 无法运行/usr/bin/python
可执行文件。
你需要:
- 在目标机器上安装 Python 2,或者
- 指示 Ansible 使用 Python 3(它正在运行,但尚未得到官方支持)- 有一个
ansible_python_interpreter
设置。