我有一个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的方式相同?
答案 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