在另一个目录中调用角色进行分子制备步骤



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

我在我的prepare.yml文件任务中尝试了import_role,include_role,roles,并更新了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,但得到相同的错误。

我的准备。Yml文件如下所示

- 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

是否有可能做我需要的,并从另一个位置调用角色?或者也许有更好的方法来做到这一点?

您得到错误-ERROR! the role 'role-2' was not found in查看dirs错误。你看到你的角色了吗?我想你应该试试这个

import_role:
name: role/role-2