Molecule — тестовые роли из другого каталога

Я хочу проверить свои роли, которые у меня есть в другом каталоге. Ниже структуры моего проекта: Структура проекта

Когда я пытаюсь использовать молекулу, она не может найти роли, которые находятся в каталоге ролей.

❯ sudo molecule converge
--> Test matrix

└── default
    ├── dependency
    ├── create
    ├── prepare
    └── converge

--> Scenario: 'default'
--> Action: 'dependency'
Skipping, missing the requirements file.
Skipping, missing the requirements file.
--> Scenario: 'default'
--> Action: 'create'
Skipping, instances already created.
--> Scenario: 'default'
--> Action: 'prepare'
Skipping, prepare playbook not configured.
--> Scenario: 'default'
--> Action: 'converge'
--> Sanity checks: 'docker'
ERROR! the role 'curl' was not found in /home/belluu/programming/Ansible-Posthog/molecule/default/roles:/root/.cache/molecule/Ansible-Posthog/default/roles:/home/belluu/programming:/root/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/home/belluu/programming/Ansible-Posthog/molecule/default

The error appears to be in '/home/belluu/programming/Ansible-Posthog/molecule/default/converge.yml': line 5, column 7, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

  roles:
    - role: curl
      ^ here

Молекула пытается найти правильный каталог, но безуспешно. Можно ли указать ему путь к каталогу с ролями?


person BElluu    schedule 17.05.2020    source источник


Ответы (1)


Простой ответ: да

В вашем файле molecule.yml добавьте следующие строки под env::

provisioner:
  name: ansible
  ...
  env:
    ANSIBLE_ROLES_PATH: "../../roles"

Кроме того, вы можете связать Molecule с другими путями:

provisioner:
  name: ansible
  ...
  env:
    ANSIBLE_CONFIG: ../../ansible.cfg
  inventory:
    links:
      group_vars: ../../inventory/group_vars
      host_vars: ../../inventory/host_vars
person scottalan    schedule 06.08.2020