【问题标题】:Calling eddyhub.gnome_shell role (from ansible galaxy) from another role从另一个角色调用 eddyhub.gnome_shell 角色(来自 ansible Galaxy)
【发布时间】:2017-01-20 08:21:50
【问题描述】:

我想在 ansible playbook 中安装 gnome 扩展,结果发现:https://galaxy.ansible.com/eddyhub/gnome_shell/ nice!

我组织剧本的方式,我想从另一个任务中调用角色,所以我创建了一个这样的任务(这是完整的任务文件,位于 (roles/common/tasks/gnome.yaml ):

dependencies:
   - { role: eddyhub.gnome_shell, gnome_extension_path: /home/nathanhuesken/.local/share/gnome-shell/extensions/, gnome_extension_owner: nathanhuesken, gnome_shell_extensions: [442] }

但是运行 playbook,我得到了这个错误:

ERROR! Unexpected Exception: global name 'AnsibleError' is not defined
the full traceback was:

Traceback (most recent call last):
  File "/usr/bin/ansible-playbook", line 92, in <module>
    exit_code = cli.run()
  File "/usr/lib/python2.7/site-packages/ansible/cli/playbook.py", line 154, in run
    results = pbex.run()
  File "/usr/lib/python2.7/site-packages/ansible/executor/playbook_executor.py", line 73, in run
    pb = Playbook.load(playbook_path, variable_manager=self._variable_manager, loader=self._loader)
  File "/usr/lib/python2.7/site-packages/ansible/playbook/__init__.py", line 53, in load
    pb._load_playbook_data(file_name=file_name, variable_manager=variable_manager)
  File "/usr/lib/python2.7/site-packages/ansible/playbook/__init__.py", line 98, in _load_playbook_data
    entry_obj = Play.load(entry, variable_manager=variable_manager, loader=self._loader)
  File "/usr/lib/python2.7/site-packages/ansible/playbook/play.py", line 115, in load
    return p.load_data(data, variable_manager=variable_manager, loader=loader)
  File "/usr/lib/python2.7/site-packages/ansible/playbook/base.py", line 206, in load_data
    self._attributes[name] = method(name, ds[name])
  File "/usr/lib/python2.7/site-packages/ansible/playbook/play.py", line 217, in _load_roles
    roles.append(Role.load(ri, play=self))
  File "/usr/lib/python2.7/site-packages/ansible/playbook/role/__init__.py", line 116, in load
    r._load_role_data(role_include, parent_role=parent_role)
  File "/usr/lib/python2.7/site-packages/ansible/playbook/role/__init__.py", line 169, in _load_role_data
    self._task_blocks = load_list_of_blocks(task_data, play=self._play, role=self, loader=self._loader, variable_manager=self._variable_manager)
  File "/usr/lib/python2.7/site-packages/ansible/playbook/helpers.py", line 58, in load_list_of_blocks
    loader=loader
  File "/usr/lib/python2.7/site-packages/ansible/playbook/block.py", line 79, in load
    return b.load_data(data, variable_manager=variable_manager, loader=loader)
  File "/usr/lib/python2.7/site-packages/ansible/playbook/base.py", line 206, in load_data
    self._attributes[name] = method(name, ds[name])
  File "/usr/lib/python2.7/site-packages/ansible/playbook/block.py", line 115, in _load_block
    use_handlers=self._use_handlers,
  File "/usr/lib/python2.7/site-packages/ansible/playbook/helpers.py", line 178, in load_list_of_tasks
    raise AnsibleError("included task files must contain a list of tasks", obj=data)
NameError: global name 'AnsibleError' is not defined

我做错了什么?

【问题讨论】:

  • 包含的任务文件必须包含任务列表——您以错误的方式包含文件。请向 playbook sn-ps 提供 include 语句和您尝试包含的文件。
  • 我的 playbook 中没有任何带有 include 语句的 playbook sn-ps
  • 你在哪里输入dependencies:?请发布文件。

标签: ansible ansible-role


【解决方案1】:

我做错了什么?

您正在将一个子句 dependencies:(它不是 Ansible 模块)放入任务文件中,而它属于 meta/main.yml(阅读有关 role dependencies 的更多信息)。

目前无法从 Ansible 中的任务中调用角色。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-25
    • 2014-10-03
    • 2019-01-14
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 2017-08-14
    相关资源
    最近更新 更多