Ubuntu上的Ansible

Ubuntu上的Ansible,ansible,ubuntu-16.04,ansible-2.x,ansible-inventory,Ansible,Ubuntu 16.04,Ansible 2.x,Ansible Inventory,我在VirtualBox上创建了两台Ubuntu机器我可以从另一台机器的终端ping另一台机器。 但是,当我从ansible ping时,我得到以下错误 我的/etc/ansible/hosts文件是: 我能找到解决方案吗?如果您阅读,您会注意到: 这不是ICMP ping 因此,ping命令的工作方式和Ansible模块的工作方式是不同的 进一步阅读,Ansibleping模块描述为: 尝试连接到主机,验证可用的Python并在成功时返回pong 因此Ansible尝试连接(默认连接方法是S

我在VirtualBox上创建了两台Ubuntu机器我可以从另一台机器的终端ping另一台机器。 但是,当我从ansible ping时,我得到以下错误

我的/etc/ansible/hosts文件是:

我能找到解决方案吗?

如果您阅读,您会注意到:

这不是ICMP ping

因此,
ping
命令的工作方式和Ansible模块的工作方式是不同的

进一步阅读,Ansible
ping
模块描述为:

尝试连接到主机,验证可用的Python并在成功时返回pong

因此Ansible尝试连接(默认连接方法是SSH)并执行Python代码

在你的情况下,Ansible无法连接

SSH连接是一个先决条件,因此在使用Ansible之前,需要对其进行配置。对于Ubuntu 16.04,您可能需要另外安装OpenSSH

有关安装和配置步骤,请参阅


除此之外,Ubuntu服务器16.04默认情况下不安装Python2,因此您需要手动添加它(对Python3的Ansible支持仍处于试验阶段)

请参阅AskUbuntu上的


然后,您可能仍然需要在清单文件中设置一个参数来告诉Ansible使用Python 2。或者将Python 2作为默认解释器。

确保在两台目标计算机上都安装了python2和ssh,并且防火墙也允许端口22。实际上,16.04附带python2作为系统的默认解释器。@MattSchuchard真的吗?我一定是被他们的流浪盒子误导了。或者它在途中改变了一些时间,但是我的配置脚本保持不变……他们的vagrant box不会安装任何python,因为vagrant映像将是最小的。实际上,我现在正在笔记本电脑上运行一个16.10版本,而
python--version
产生了
python2.7.12+
。不,
ubuntu/xenial64
(v20170417.0.0)确实安装了python3,但没有安装python2,我的理解是,这就是ubuntu服务器16.04的分布方式。桌面上确实有Python2作为默认值,但我现在没有新的服务器要检查。好的,所以听起来像是3代表服务器,2代表桌面。奇怪的