Molecule如何进行角色查找

How does Molecule does the role lookup

使用 Molecule 2.19.0 在 Ansible 角色上对其进行测试。 Molecule 和 Ansible 都按预期工作。

我有一个关于如何 分子执行 Ansible 角色的问题。

这是我的文件结构:

| my_role (Root of the role)
* defaults
* files
* molecule
   * default
       * tests
           - molecule.yml
           - playbook.yml
           - Dockerfile.j2
           - tests
* tasks
* templates

现在,在分子playbook.yml中,我设置了角色名称:

---
- name: Converge
  hosts: all
  roles:
    - role: my_role

当运行宁molecule testmolecule converge时,它将运行角色(如预期)。

但是 Molecule 是如何做到这一点的?在此特定用例中,它如何知道该角色存在于根目录中。

Molecule 通过为 ANSIBLE_ROLES_PATH 设置一些合理的默认值来做到这一点: Click me for source code

还有 "project directory" 的概念,它是分子 运行 来自的目录。这将是您的角色目录。