Ответ
Я ищу готовые роли Ansible в первую очередь для стандартизации и ускорения развертывания инфраструктуры. Основные источники:
-
Ansible Galaxy (galaxy.ansible.com): Это основной официальный хаб. Я использую CLI для поиска и установки:
# Поиск роли для настройки Nginx ansible-galaxy search nginx # Установка конкретной роли от проверенного автора ansible-galaxy install geerlingguy.nginx -
GitHub и GitLab: Многие компании и сообщества публикуют свои роли в открытых репозиториях. Я ищу по тегам
ansible-roleилиansible-collection. Например, роли отDebian,RedHatилиelasticчасто находятся там. -
Внутренние репозитории: В корпоративной среде мы часто создаем свой внутренний Galaxy-подобный сервер (с помощью
pulp_ansibleилиmazer) или просто Git-репозиторий для хранения проверенных и доработанных под наши стандарты ролей.
Мои критерии оценки роли перед использованием:
- Активность проекта: Смотрю на дату последнего коммита и частоту релизов.
- Качество кода: Проверяю наличие тестов (molecule, tox), использование
ansible-lintи структуру роли (есть лиmeta/,defaults/,handlers/). - Популярность и репутация автора: Роли от
geerlingguy,cloudalchemyилиelasticобычно хорошо протестированы. - Поддержка нужных ОС: Убеждаюсь, что роль поддерживает наши целевые дистрибутивы (Ubuntu 20.04/22.04, RHEL 8/9).
Пример файла requirements.yml для управления зависимостями:
# requirements.yml
roles:
- name: geerlingguy.nginx
version: 4.1.0
- name: geerlingguy.docker
version: 7.0.0
- src: https://github.com/our-company/ansible-role-custom-app.git
version: main
name: custom_app_role
Установка: ansible-galaxy install -r requirements.yml.