Ansible 2.x 在 connection local 方面存在错误
不论经过如何,这是来源。
作为对策,可以使用ansible_connection = ssh在本地主机上进行ssh连接来解决问题。
经过
突然间,即使之前安装好了,也开始突然崩溃。
作为我的主力电脑,我把Ubuntu装进了我的桌面,并最近一直在努力通过Ansible来创建一个设备设置的playbook。但是今天我长时间没有进行内容更新,当我更新并运行时。
fatal: [127.0.0.1]: FAILED! => {"failed": true, "msg": "ERROR! privilege output closed while waiting for password prompt:\nBECOME-SUCCESS-ivlqlqubbijeusfhqiyftxjknfjzqgbm\n{\"invocation\": {\"module_args\": {\"executable\": null, \"name\": \"gulp\", \"global\": true, \"ignore_scripts\": false, \"state\": \"present\", \"production\": false, \"registry\": null, \"version\": null, \"path\": null}}, \"changed\": false}\n"}
出现了什么错误啊。
虽然有提到“特权输出已关闭,等待密码提示”,但因为已经使用了“–ask-become-pass”参数传递了密码,所以一切搞得有点混乱。
在仔细搜索了一番后仍然无法找到。
虽然有一些类似的文本,但是 “–ask-sudo-pass” 的使用方法不太正确,所以只能找到与这次有些不同的结果。
更换为Ansible 2.0是原因。
我以前从来不觉得有问题,突然变得不行,所以我想肯定有原因。我意识到问题可能是我升级到Ansible 2.0导致的,然后我搜索了一些带有ansible 2这样的关键词的文章,发现了这篇文章。我想起我正好在出现这个错误的地方使用了with_items,所以很可疑,我看了一下,果然如我所料。
An evidence is that the playbook above works finewith localhost ansible_ssh_host=127.0.0.1 setting
in the inventory instead of localhost ansible_connection=local.
由于已经存在 ansible.cfg 文件,我将其中的 ansible_connection = local 部分修改为 ansible_connection = ssh,然后再次运行,结果运行正常。
虽然问题尚未解决,但是根据已合并的拉取请求来看,希望不久后能够得到修正。
就是那种感觉