我有一个无聊的Ubuntu 16.04 VM,已安装Ansible(使用sudo apt install ansible
),我配置了/etc/ansible/hosts
文件,当我尝试运行ansible all -m ping
时,出现此错误:
Traceback (most recent call last):
File "/usr/bin/ansible", line 85, in <module>
sys.exit(cli.run())
File "/usr/lib/python2.7/dist-packages/ansible/cli/adhoc.py", line 190, in run
self._tqm.cleanup()
File "/usr/lib/python2.7/dist-packages/ansible/executor/task_queue_manager.py", line 245, in cleanup
self._cleanup_processes()
File "/usr/lib/python2.7/dist-packages/ansible/executor/task_queue_manager.py", line 249, in _cleanup_processes
self._result_prc.terminate()
File "/usr/lib/python2.7/dist-packages/ansible/executor/process/result.py", line 89, in terminate
super(ResultProcess, self).terminate()
File "/usr/lib/python2.7/multiprocessing/process.py", line 137, in terminate
self._popen.terminate()
AttributeError: 'NoneType' object has no attribute 'terminate'
我在Vagrant Centos7映像上尝试了相同的安装和配置文件,并且一切正常。
我无法找到相似的东西,但也许我的搜索技能不是很好。有人遇到吗?在Ubuntu上还要安装其他东西吗?
谢谢。
答案 0 :(得分:1)
我找到了适用于Ubuntu版本的解决方案。不要仅使用sudo apt install ansible
来安装它,而需要从ansible仓库中安装它。
运行此:
sudo apt-add-repository ppa:ansible/ansible
sudo apt update
sudo apt install ansible -y
我不知道为什么它会这样工作,我没有时间研究它,但是它可以使用ppa:ansible/ansible
来工作。我猜那个apt中的那个已经过时了。
PS:感谢那些投票否决的人。