Ansible 错误 "ERROR! (25, 'Inappropriate ioctl for device')", "unreachable" 是啥意思?
Posted
技术标签:
【中文标题】Ansible 错误 "ERROR! (25, \'Inappropriate ioctl for device\')", "unreachable" 是啥意思?【英文标题】:What does Ansible error "ERROR! (25, 'Inappropriate ioctl for device')", "unreachable" mean?Ansible 错误 "ERROR! (25, 'Inappropriate ioctl for device')", "unreachable" 是什么意思? 【发布时间】:2016-04-07 01:57:30 【问题描述】:我有一个 Rasberry pi,我可以通过 SSH 从终端通过以太网电缆从我的 Macbook 连接到 pi,通过命令“ssh pi@169.254.0.2”
然而,当我对这个主机运行 ansible playbook 时
[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 相同的方式连接?
【问题讨论】:
令人惊讶地,难以理解(对我来说):如果我先 ping 服务器,然后运行 playbook,它就可以工作 :) --> 例如。 ansible -i ansible-pi/hosts pis -m ping --ask-pass --sudo; ansible-playbook ansible-pi/playbook.yml -i ansible-pi/hosts --ask-pass --sudo 【参考方案1】:在报告此类问题时始终包含 Ansible 版本。当 Ansible 打开多个 ssh 连接时,我遇到了类似的问题。您可以在 Ansible 配置文件 (/etc/ansible/ansible.cfg) 中将 pipelining
设置为 False 并重试吗?在设置之前检查它现在设置的内容。
pipelining = False
【讨论】:
很好的电话,我忘记了。我在问题中添加了我的 ansible 版本(2.0.0.2)——如果你会看到我的评论,我发现了一个有效的“hack”,但我会尝试你的想法 似乎添加该配置也可以解决问题!我不知道是什么导致了这个错误,但如果有人遇到这个谜团,我希望这篇 *** 帖子能帮助你像我一样开心【参考方案2】:我在尝试从 docker 容器内运行 ansible 时收到此错误,我也收到了同样的错误。 This answer 引导我找到解决方案,即您必须添加分配伪 TTY 的 -t
标志。
例如
sudo docker run -t -v `pwd`:/ansible -w /ansible ansible:latest ansible-playbook -i inventory.yml site.yml
【讨论】:
以上是关于Ansible 错误 "ERROR! (25, 'Inappropriate ioctl for device')", "unreachable" 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
[ansible学习笔记]Error: ansible requires the stdlib json or simplejson module, neither was found!
Ansible virtualenv下pip3安装requirements报错