为分子准备步骤调用另一个目录中的角色
Calling a role in another directory for molecule prepare step
我有角色 role-1,我正在尝试为其创建分子测试,但此角色依赖于位于不同目录中的另一个角色 role-2。
作为 docker 容器到 运行 的分子设置的一部分,我有一个 prepare.yml 文件,我试图将其用于 运行 角色 2,以便容器准备 运行 role-1。
最初我在同一个位置拥有这两个角色,并且没有这个问题,因为它们位于同一个目录中。但是我需要为版本控制的角色分离代码,而且我 运行 遇到了为测试定位 role-2 的问题。这种分离只是为了开发和测试,角色一起安装在一个位置进行部署,所以没有问题。
我已经在 prepare.yml
文件任务中尝试了 import_role
、include_role
、roles
并更新了 molecule.yml
中的 ANSIBLE_ROLES_PATH:
文件指向角色为 2 的目录并得到相同的错误:
ERROR! the role 'role-2' was not found in ...
它列出了一堆目录,包括由 ANSIBLE_ROLES_PATH 值设置的目录,并指向我的 prepare.yml
文件中带有任务 name: role-2
的行。我原以为可能是权限问题,但使用 import_role
我可以使用 become: yes
和 become_user: correct_user
来得到同样的错误。
我的 prepare.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
查看目录时出错。你看到你的角色了吗?
我想你应该试试这个
import_role:
name: role/role-2
我有角色 role-1,我正在尝试为其创建分子测试,但此角色依赖于位于不同目录中的另一个角色 role-2。 作为 docker 容器到 运行 的分子设置的一部分,我有一个 prepare.yml 文件,我试图将其用于 运行 角色 2,以便容器准备 运行 role-1。 最初我在同一个位置拥有这两个角色,并且没有这个问题,因为它们位于同一个目录中。但是我需要为版本控制的角色分离代码,而且我 运行 遇到了为测试定位 role-2 的问题。这种分离只是为了开发和测试,角色一起安装在一个位置进行部署,所以没有问题。
我已经在 prepare.yml
文件任务中尝试了 import_role
、include_role
、roles
并更新了 molecule.yml
中的 ANSIBLE_ROLES_PATH:
文件指向角色为 2 的目录并得到相同的错误:
ERROR! the role 'role-2' was not found in ...
它列出了一堆目录,包括由 ANSIBLE_ROLES_PATH 值设置的目录,并指向我的 prepare.yml
文件中带有任务 name: role-2
的行。我原以为可能是权限问题,但使用 import_role
我可以使用 become: yes
和 become_user: correct_user
来得到同样的错误。
我的 prepare.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
查看目录时出错。你看到你的角色了吗?
我想你应该试试这个
import_role:
name: role/role-2