2016-01-21 3 views
3

У меня есть учебник и куча модулей, которые я написал.с использованием доступных модулей из git-хранилища?

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

Я действительно хочу подтолкнуть эти модули к общедоступному git-репозиторию, а затем как-то объяснить возможность использования модулей из репозитория git.

(вроде как НПМ package.json ссылающегося GitHub)

Я не могу показаться, чтобы найти какой-либо документации о том, как сделать это.

В настоящее время я использую обходной путь, где я говорю людям, чтобы установить rpm в репозиторий, а затем определить переменную ANSIBLE_LIBRARY.

Как сообщить игровой книге загрузить модули из репозитория github или другого удаленного места?

+0

Это очень хороший вопрос, и я думаю, что это страшное ограничение анзибль Галактики, чтобы только о распределении ролей и не обеспечивает способ совместного использования модулей. – udondan

+0

Тем временем я понял, что наши модули могут быть вложены внутри ролей, и поскольку Ansible 2 это даже работает с плагинами. – udondan

ответ

0

В настоящее время на данный момент нет решения. Возможно, вы можете добавить учебник для загрузки модулей в свой проект, чтобы избежать npm, но это даже не так уж и приятно.

У меня есть мои пользовательские модули в каталоге рядом с моими книжками. Этот каталог определен в моем глобальном файле ansible.cfg:

library = /usr/share/ansible 

только drawbag здесь является то, что я ВСЕГДА иметь ту же версию для модулей на всех playbboks.

+0

На самом деле это возможно. Это просто не документировано. См. Мой ответ. ниже выше. :) – udondan

1

На самом деле модули могут быть вложены внутри ролей с довольно длительного времени. Поскольку Ansible 2 это возможно даже с большинством плагинов.

Папки, где modules & plugins необходимо хранить внутри роли, это то же самое, что и на уровне плейера. Модули идут в library, модули идут в *_plugins (action_plugins, callback_plugins, filter_plugins и т.д.)

Для того, чтобы модуль/плагин затем доступна роль должна быть применена к пьесам (или добавлено в качестве зависимости другой роли)

Только известное мне исключение - это переменные плагины, и это совершенно разумно. Поскольку переменные плагины выполняются при чтении инвентаря, что происходит до интерпретации ролей.

vars_plugins все еще может распространяться в ролях, но path needs to be added in the ansible.cfg. К счастью, вы также можете использовать подстановочные знаки по путям:

vars_plugins = roles/*/vars_plugins 

И нет, все это никоим образом не задокументировано. :)

Наконец, распределить роли, которые вы можете использовать Ansible Galaxy:

ansible-galaxy install foo 

Ничего плохого непосредственно с помощью мерзавца. Ansible Galaxy фактически является лишь инструментом для установки репозиториев git. Но поскольку Galaxy - это стандарт Ansible, я предлагаю по крайней мере обеспечить совместимый с Galaxy формат. Хорошая (лучше?) Практика установки ролей Galaxy отдельно от ролей проектов может быть найдена here.

Вот пример для плагина действий: https://galaxy.ansible.com/udondan/ssh-reconnect/