Ansible:冲突的行动声明:组,标签

时间:2017-09-27 07:25:34

标签: tags ansible

我在角色中有以下代码:

- 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

1 个答案:

答案 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文件后,一切都完全正常。

相应的错误报告:https://github.com/ansible/ansible/issues/31070

相关问题