我正在尝试执行 ansible2 commnads …
当我做:
ansible-playbook -vvv -i my/inventory my/playbook.yml
我得到:
意外异常:未定义名称“basestring”完整的回溯是:
> 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
”`
原文由 code_monk 发布,翻译遵循 CC BY-SA 4.0 许可协议
低于版本 2.5 的 Ansible 需要控制主机上的 Python 2.6 或 2.7: Control Node Requirements
basestring
在 Python 3 中不再可用。来自 Python 3.0 的新增功能:所以解决方案是升级 Ansible 或降级 Python。