Импорт коллекции Ansible в playbook локально из текущей папки без упаковки или галактики - PullRequest
0 голосов
/ 19 марта 2020
.
├── test
│   └── ansible_poc_collection
│       ├── docs
│       ├── galaxy.yml
│       ├── plugins
│       │   └── README.md
│       ├── README.md
│       └── roles
│           └── testrole
│               └── tasks
│                   └── main.yml
└── test-play.yml

galaxy.yml содержит пространство имен и имя:

namespace: test
name: ansible_poc_collection

В test-play.yml Я импортирую тестролл из коллекции следующим образом :

- hosts: all
  collections:
   - test.ansible_poc_collection
  tasks:
    - import_role:
        name: testrole

Но выдает ошибку, что роль не может быть найдена:

ERROR! the role 'testrole' was not found in /home/user/tests/ansible-poc-collection/roles:/home/user/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/home/user/tests/ansible-poc-collection

The error appears to be in '/home/user/user/ansible-poc-collection/test-play.yml': line 6, column 15, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

    - import_role:
        name: testrole
              ^ here

Попытка создать папку верхнего уровня collections и перемещение коллекции туда, чтобы она находилась в collections/test/ansible_poc_collection, та же ошибка , Также при ссылке на полное имя с пространством имен / именем коллекции:

- import_role:
    name: test.ansible_poc_collection.testrole

Другой нерабочий подход заключался в установке COLLECTIONS_PATHS так, чтобы он указывал на каталог root моей коллекции (содержащий test папка пространства имен):

COLLECTIONS_PATHS=/home/user/tests/ansible-poc-collection/collections ansible-playbook -i 127.0.0.1, test-play.yml

Как локально импортировать коллекцию без создания архива и использования Ansible Galaxy?

Используемая версия 2.9.6 (последняя стабильная на момент запись)

1 Ответ

0 голосов
/ 20 марта 2020

Хорошо, это в основном обходной путь.

Скопируйте только необходимые каталоги и зависимые каталоги, смежные с playbook (из каталога коллекции).

Источник: https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#directory -план

.
├── plugins
│   └── README.md
├── roles
│   └── testrole
│       └── tasks
│           └── main.yml
└── test-play.yml
...