Можно ли разрабатывать пользовательские Ansible модули без Ansible исходного кода? - PullRequest
0 голосов
/ 12 февраля 2020

Согласно руководству разработчика Ansible первое, что нужно сделать, это проверить проект Ansible. И оттуда добавьте свой собственный модуль в ansible / modules / , добавьте вспомогательный код в ansible / module_utils . Поместите свой тестовый код в ansible / test / units / module / и используйте Ansible тестовые утилиты в ansible / test / units / module / utils.py .

В документации о том, как распространять пользовательские модули, ничего нет.

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

Лично я считаю, что это нецелесообразно:

  • Управление исходным кодом становится сложным.

  • Нет простого способа разработки пользовательского модуля для ряда Ansible выпусков.

  • Обновление Ansible включает в себя комплекс слияние исходного кода.

  • Я бы предпочел не участвовать в создании из исходного проекта, подобного Ansible.

  • Не упоминать там реальный риск взлома Ansible, если я коснусь не тех файлов.

Мне известен способ создания пакета Python, содержащего код в пространстве имен ansible / modules . Просто установите пакет pip и вуаля, Ansible знает модуль. Это именно то, что мне нужно.

Однако разработка отдельного кода в пространстве имен ansible делает невозможным импорт кода из установленной библиотеки Ansible. Кроме того, ansible / test был удален из библиотеки Ansible. Больше нет поддержки тестового кода.

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

Или есть чистый способ сделать это?

...