Collections
Тема дорожной карты · Ansible
Коллекции в Ansible — это стандартный формат распространения содержимого Ansible, введённый в Ansible Yöntem 2.9. Они упаковывают модули, плагины, role, playbook и документацию в версионированную, именованную единицу, устанавливаемую командой ansible-galaxy collection install namespace.collection_name. Коллекции заменили устаревшую модель "module extras" и теперь служат основным механизмом, через который Red Hat, облачные провайдеры, сетевые производители и сообщество распространяют содержимое Ansible. Примеры известных коллекций включают ansible.posix, community.general, amazon.aws и kubernetes.core. Коллекции фиксируются в файле requirements.yml и устанавливаются в локальный каталог collections/ проекта для обеспечения воспроизводимых сред автоматизации в CI и на production. Формат полного квалифицированного имени коллекции (FQCN) для ссылок на модули — это рекомендуемая нотация, которая однозначно определяет источник содержимого, особенно когда несколько коллекций предоставляют модули с одинаковым коротким именем.
Как это работает
Коллекции представляют собой публичный реестр ролей и коллекций Ansible (galaxy.ansible.com). Коллекции (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 обеспечивает воспроизводимость среды. Коллекции (современный способ) предпочтительны перед standalone-ролями для нового контента, так как многие "роли" теперь находятся внутри коллекций, таких как community.general, ansible.posix и т.д. Важно аудитировать скачанные коллекции в CI, так как управление цепочкой поставок является ключевым аспектом безопасности.
Типичные ошибки
Типичные ошибки при работе с коллекциями включают установку ansible-galaxy install user.role без указания версии, что может привести к скачиванию последней версии, которая может сломаться при обновлении. Другой распространённой ошибкой является использование коллекции community.general, где есть встроенные модули Ansible (debug, set_fact, copy). Наконец, не проверка активности мейнтейнеров коллекций может привести к использованию заброшенных ролей, даже если они имеют большое количество скачиваний.