-1
当我运行以下命令ansible意外的异常:词典更新序列元素#0
[[email protected]] $ ansible localhost -vvv -m setup
Using /etc/ansible/ansible.cfg as config file
它提供了以下错误
ERROR! Unexpected Exception: dictionary update sequence element #0 has length 1; 2 is required
the full traceback was:
Traceback (most recent call last):
File "/usr/bin/ansible", line 92, in <module>
exit_code = cli.run()
File "/usr/lib/python2.6/site-packages/ansible/cli/adhoc.py", line 129, in run
inventory = Inventory(loader=loader, variable_manager=variable_manager, host_list=self.options.inventory)
File "/usr/lib/python2.6/site-packages/ansible/inventory/__init__.py", line 92, in __init__
self.parse_inventory(host_list)
File "/usr/lib/python2.6/site-packages/ansible/inventory/__init__.py", line 159, in parse_inventory
group.vars = combine_vars(group.vars, self.get_group_variables(group.name))
File "/usr/lib/python2.6/site-packages/ansible/inventory/__init__.py", line 527, in get_group_variables
self._vars_per_group[groupname] = self._get_group_variables(groupname, vault_password=vault_password)
File "/usr/lib/python2.6/site-packages/ansible/inventory/__init__.py", line 545, in _get_group_variables
vars = combine_vars(vars, self.get_group_vars(group))
File "/usr/lib/python2.6/site-packages/ansible/inventory/__init__.py", line 727, in get_group_vars
return self._get_hostgroup_vars(host=None, group=group, new_pb_basedir=new_pb_basedir, return_results=return_results)
File "/usr/lib/python2.6/site-packages/ansible/inventory/__init__.py", line 788, in _get_hostgroup_vars
host_results = self._variable_manager.add_group_vars_file(base_path, self._loader)
File "/usr/lib/python2.6/site-packages/ansible/vars/__init__.py", line 616, in add_group_vars_file
data = self._load_inventory_file(path, loader)
File "/usr/lib/python2.6/site-packages/ansible/vars/__init__.py", line 574, in _load_inventory_file
rval.update(data)
ValueError: dictionary update sequence element #0 has length 1; 2 is required
在GitHub上提交问题。虽然它不能保证解决问题,但至少在那里的模板将要求您提供您没有打算在SO上发布的必要信息(如版本等)。 ···毫无疑问,你正在使用一些旧的Ansible,只有这个问题:多大。 – techraf
python2.6?相当老 –
@Konstantin Suvorov:旧的,但仍然正式支持(http://docs.ansible.com/ansible/2.4/intro_installation.html#control-machine-requirements:“目前Ansible可以从任何使用Python 2的机器上运行(版本2.6或2.7)“)。 @anish:哪个版本的ansible? ('ansible --version')。你能显示完整的输出,而不仅仅是堆栈跟踪? (更新你的问题,而不是回答评论) – zigarn