我正在尝试执行ansible2命令。。。
当我这样做时:
ansible-playbook -vvv -i my/inventory my/playbook.yml
我得到:
Unexpected Exception: name 'basestring' is not defined the full traceback was:
Traceback (most recent call last): File "/usr/local/bin/ansible-playbook", line 85, in <module> sys.exit(cli.run()) File "/usr/local/lib/python3.4/site-packages/ansible/cli/playbook.py", line 150, in run results = pbex.run() File "/usr/local/lib/python3.4/site-packages/ansible/executor/playbook_executor.py", line 87, in run self._tqm.load_callbacks() File "/usr/local/lib/python3.4/site-packages/ansible/executor/task_queue_manager.py", line 149, in load_callbacks elif isinstance(self._stdout_callback, basestring): NameError: name 'basestring' is not defined
这里是ansible --version
:
ansible 2.0.0.2
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides
这里是python --version
Python 3.4.3
低于版本2.5的Ansible需要控制主机上的Python 2.6或2.7:Control Node Requirements
basestring
在Python 3中不再可用。来自What’s New In Python 3.0:我在使用带有Ansible的Python 3时遇到了这个问题,通过分叉dopy项目并在Ansible脚本中安装dopy来解决这个问题:
name: git+https://github.com/eodgooch/dopy@0.4.0#egg=dopy
。如果仍有错误,请确保将
version
更改为0.4.0
,并从Python站点包目录中删除任何延迟的dopy包。你也可以
pip3 install git+https://github.com/eodgooch/dopy@0.4.0#egg=dopy
代替你的职责。basestring在Python3中不可用
对于python 2.x和3.x,可以通过以下方法修复此问题:
相关问题 更多 >
编程相关推荐