我在角色中有以下代码:
- name: Create user group
group: name={{ user.group }} state=present
tags:
- user
当我运行ansible-playbook -i localhost --ask-become-pass playbook.yml
时,我发现错误:
ERROR! conflicting action statements: group, tags
The error appears to have been in '/home/user/spark/roles/base/tasks/main.yml': line 12, column 3, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
- name: Create user group
^ here
...
exception type: <class 'ansible.errors.AnsibleParserError'>
exception: conflicting action statements: group, tags
...
完整错误日志:https://www.pastiebin.com/59cb4faf9ae35
如果我删除tags
,它会毫无错误地运行。
它是例外的:异常:操作中的意外参数类型:在我只留下名称和标签之后。完整的错误日志:pastiebin.com/59cb5b2996a10一直都很好,但现在它的工作原理没有任何明确的原因。我尝试使用以前的playbook工作版本(通过git checkout),但无论如何都存在错误:(
我会很感激任何暗示。
P.S。我有ansible playbook for Archlinux machine的分叉。 P.P.S.
ansible 2.4.0.0
config file = /home/user/spark/ansible.cfg
configured module search path = [u'/home/user/spark/library/ansible-aur']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.14 (default, Sep 20 2017, 01:25:59) [GCC 7.2.0]
Ansible aur:
[submodule "library/ansible-aur"]
path = library/ansible-aur
url = https://github.com/pigmonkey/ansible-aur.git
ansible.cfg
[defaults]
library = ./library/ansible-aur
UPD 即可。如果我删除group
这样的关键字:
- name: Create user group
tags:
- user
我发现了一个错误:意外的参数类型在行动中:在我只留下名称和标签之后。完整错误日志:pastiebin.com/59cb5b2996a10
答案 0 :(得分:0)
这个非常有趣的故事。
我有一个vim插件,可以为项目创建ctags tags
。它创建了名为spark/library/ansible-aur/tags
的文件。
它不是python文件或其他东西。这只是常见的ctags文件。
通过使用带有ansible代码的pdb调试器,我发现它是所有麻烦的根源。
我发现了一个错误字符串:conflicting action statements
在ansible代码中:
> /usr/lib/python2.7/site-packages/ansible/parsing/mod_args.py(293)parse()
-> raise AnsibleParserError("conflicting action statements: %s, %s" % (action, item), obj=self._task_ds)
并在那里注入pdb.set_trace()
。
然后我做了一些研究:
(Pdb) item
u'tags'
(Pdb) item in module_loader
True
(Pdb) module_loader.find_plugin(item)
u'/home/user/spark/library/ansible-aur/tags'
最后一行有点暗示。删除tags
文件后,一切都完全正常。