Ansible错误“ERROR!(25,'设备不适当的ioctl')”,“无法访问”是什么意思?

时间:2016-04-07 01:57:31

标签: ssh ansible

我有一个Rasberry pi,我可以通过SSH从终端通过以太网电缆从我的Macbook连接到pi,通过命令'ssh pi@169.254.0.2'

然而,当我向这个主持人运行一个ansible剧本时

[pis]
169.254.0.2

我收到以下错误:

PLAY [Ansible Playbook for configuring brand new Raspberry Pi]         *****************

TASK [setup] *******************************************************************
<169.254.0.2> ESTABLISH CONNECTION FOR USER: pi on PORT 22 TO 169.254.0.2
CONNECTION: pid 2118 waiting for lock on 10
CONNECTION: pid 2118 acquired lock on 10
fatal: [169.254.0.2]: UNREACHABLE! => {"changed": false, "msg": "ERROR! (25, 'Inappropriate ioctl for device')", "unreachable": true}

PLAY RECAP *********************************************************************
169.254.0.2                : ok=0    changed=0    unreachable=1    failed=0   

我的ansible版本是2.0.0.2。

如何配置Ansible,使其连接方式与我从终端成功连接SSH的方式相同?

2 个答案:

答案 0 :(得分:1)

报告此类问题时始终包含Ansible版本。当Ansible打开多个ssh连接时,我遇到了类似的问题。您可以在Ansible配置文件(/etc/ansible/ansible.cfg)中将pipelining设置为False并重试吗?在设置之前检查它的设置。

pipelining = False

答案 1 :(得分:0)

我尝试从docker容器内运行ansible时收到此错误,但我得到了同样的错误。 This answer引导我找到解决方案,你必须添加-t标志来分配伪TTY。

E.g。

sudo docker run -t -v `pwd`:/ansible -w /ansible ansible:latest ansible-playbook -i inventory.yml site.yml