Как раздать ансибельные модули?

Если кто-то разработает роль ansible, ее можно легко распределить, создав репозиторий на github, который будет доступен для установки через ansible-galaxy ( очень четкие инструкции).

Как насчет модулей?

Существует ли подобная "поддерживающая структура" для выпуска открытого исходного кода (например, набора файлов Python), чтобы пользователи могли легко установить его?

2 ответа

Решение

В настоящее время лучший способ сделать это на самом деле через library каталог в роли галактики. Вы по-прежнему можете установить и использовать роли (и связанные модули) через файл требований, фактически не выполняя ничего из роли. Мы также ищем способы сделать роли более ориентированными на библиотеку (например, переменные / пустые точки входа, а не просто жестко заданные в tasks/main.yml).

Роль может содержать модули в папке библиотеки. Чтобы активировать модуль в сборнике пьес, необходимо сначала добавить эту роль в сборник пьес или в качестве зависимости от другой роли. В противном случае Ansible не знает содержащиеся модули. Роль, предоставляющая модуль, не обязана иметь что-либо подобное заданным задачам. Проще говоря library папка внутри и, конечно же, требуется meta/main.yml

Начиная с Ansible 2.0, это работает даже с (большинством) плагинов, например, плагинов действий или плагинов обратного вызова. action_plugins или же callback_plugins и т.д. Я думаю, что подключаемые модули, плагины и стратегии не работают таким образом, но это по понятным причинам. Такие плагины работают на уровне playbook, поэтому их нельзя загружать с помощью ролей.

Другие вопросы по тегам