首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为分子准备步骤调用另一个目录中的角色

为分子准备步骤调用另一个目录中的角色
EN

Stack Overflow用户
提问于 2021-10-19 16:21:22
回答 1查看 130关注 0票数 0

我有一个角色,role-1,我正在尝试为其创建分子测试,但这个角色依赖于位于不同目录中的另一个角色,role-2。作为docker容器运行测试的分子设置的一部分,我有一个prepare.yml文件,我尝试使用它来运行role-2,这样容器就可以运行role-1了。最初,我将这两个角色放在相同的位置,没有这个问题,因为它们位于相同的目录中。但是我需要为版本控制分离角色的代码,并且我遇到了定位测试的role-2的问题。这种分离只是为了开发和测试,角色一起安装在一个位置进行部署,所以没有问题。

我已经在我的prepare.yml文件任务中尝试了import_roleinclude_roleroles,并更新了molecule.yml文件中的ANSIBLE_ROLES_PATH:,使其指向具有role-2的目录,并得到相同的错误:

ERROR! the role 'role-2' was not found in ...

它列出了一系列目录,包括由ANSIBLE_ROLES_PATH值设置的目录,并指向我的prepare.yml文件中包含任务name: role-2的那一行。我曾认为这可能是权限问题,但使用import_role时,我可以使用become: yesbecome_user: correct_user,但得到了相同的错误。

我的prepare.yml文件如下所示

代码语言:javascript
复制
- name: Prepare
  hosts: all
  vars:
    pkg_list:
      - package-1
      - package-2

  tasks:
    - name: Install packages
      become: yes
      package:
        name: "{{ pkg_list }}"
        state: present

    - name: Install role-2
      become: yes
      become_user: correct-user
      import_role:
        name: role-2

是否可以执行我所需的操作并从其他位置调用角色?或者有没有更好的方法来做到这一点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-02 07:02:22

你得到错误- ERROR! the role 'role-2' was not found in看目录中的错误。你看到你的角色是dir了吗?我觉得你应该试试这个

代码语言:javascript
复制
import_role:
        name: role/role-2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69634461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档