Ansible Galaxy и Collections

Тема дорожной карты · Ansible

Ansible Galaxy — это официальный открытый хаб сообщества, расположенный по адресу galaxy.ansible.com, где можно найти и обменяться role, collection и playbook Ansible, созданными тысячами разработчиков по всему миру. Этот ресурс играет важную роль в автоматизации и управлении инфраструктурой, предоставляя готовые к использованию решения для различных задач.

Ansible Galaxy поддерживает два формата распространения: устаревший формат role (устанавливается командой ansible-galaxy install author.role_name) и современный формат collection (устанавливается командой ansible-galaxy collection install namespace.collection). В настоящее время collection являются предпочтительной единицей упаковки, так как они обеспечивают более структурированный и модульный подход к организации контента Ansible.

Качественное содержимое Ansible Galaxy, сопровождаемое такими известными разработчиками, как geerlingguy, debops и пространствами имён community.*, предоставляет готовую к использованию автоматизацию для типовых задач, включая настройку веб-серверов, управление базами данных, усиление безопасности и подготовку облачной инфраструктуры. Эти ресурсы особенно полезны для команд, работающих в регулируемых средах, где важно иметь контроль над тем, какие версии Ansible содержимого используются.

Как это работает

Ansible Galaxy и Collections представляют собой публичный реестр ролей и коллекций Ansible (galaxy.ansible.com). Collections (namespace.name) пакетируют роли, модули, плагины и документацию в единый пакет, что является современным способом поставки Ansible-контента. Установка коллекций осуществляется с помощью команды ansible-galaxy collection install community.general или через файл requirements.yml. Для приватного контента можно использовать Automation Hub (Red Hat), приватный Galaxy-сервер или git-репозиторий через requirements.yml.

Когда применять

Всегда используйте requirements.yml с запинненными версиями (ansible-galaxy install -r requirements.yml) для обеспечения воспроизводимости. Collections (современный способ) предпочтительны для нового контента по сравнению с standalone-ролями. Многие "роли" теперь находятся внутри коллекций, таких как community.general, ansible.posix и т.д. Также важно аудитировать скачанные коллекции в среде CI, так как безопасность поставщика контента (supply chain) имеет первостепенное значение.

Типичные ошибки

Основные ловушки при работе с Ansible Galaxy и Collections включают установку ansible-galaxy install user.role без указания версии (ansible-galaxy тянет последнюю версию, которая может сломаться при следующем обновлении); использование community.general там, где есть ansible.builtin (например, модули debug, set_fact, copy встроены в Ansible); и отсутствие проверки активности мейнтейнера (заброшенная роль с 10K скачиваний всё равно заброшена).

Связанные понятия

Полезные ресурсы