Где искать готовые роли для Ansible?

«Где искать готовые роли для Ansible?» — вопрос из категории Ansible, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Я ищу готовые роли Ansible в первую очередь для стандартизации и ускорения развертывания инфраструктуры. Основные источники:

  1. Ansible Galaxy (galaxy.ansible.com): Это основной официальный хаб. Я использую CLI для поиска и установки:

    # Поиск роли для настройки Nginx
    ansible-galaxy search nginx
    
    # Установка конкретной роли от проверенного автора
    ansible-galaxy install geerlingguy.nginx
  2. GitHub и GitLab: Многие компании и сообщества публикуют свои роли в открытых репозиториях. Я ищу по тегам ansible-role или ansible-collection. Например, роли от Debian, RedHat или elastic часто находятся там.

  3. Внутренние репозитории: В корпоративной среде мы часто создаем свой внутренний 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.