gitlab

Ansible Роль: gitlab

Статус рабочего процесса тестирования Статус рабочего процесса релиза

Ansible роль для установки GitLab версии 13.0 или новее.

Требования

Эта роль использует модуль community.docker.docker_compose. Поэтому на управляющем узле требуется коллекция community.docker.

На управляемом узле для выполнения этой роли необходимы следующие компоненты:

Рекомендуется использовать роль yabusygin.docker для установки всех необходимых компонентов на управляемом узле.

Переменные роли

Вот краткая справка по переменным. Смотрите Wiki и раздел "Пример Playbook" ниже для примеров.

Конфигурация Docker

URL

  • gitlab_hostname -- доменное имя хоста GitLab. Значение по умолчанию: gitlab.test.
  • gitlab_web_port -- номер веб-порта UI. Значение по умолчанию: 80.
  • gitlab_registry_port -- номер порта реестра контейнеров. Значение по умолчанию: 5050.
  • gitlab_ssh_port -- номер порта SSH для Git. Значение по умолчанию: 22.

HTTPS

  • gitlab_https_enable -- включить HTTPS. Значение по умолчанию: no.
  • gitlab_letsencrypt_enable -- включить автоматический HTTPS с помощью Let’s Encrypt. Значение по умолчанию: no.
  • gitlab_https_key -- путь к приватному ключу на управляющем узле.
  • gitlab_https_cert -- путь к цепочке сертификатов на управляющем узле.

Исходящие Электронные Письма

  • gitlab_email_enable -- включить исходящие электронные письма. Возможные значения: yes, no. Значение по умолчанию: no.
  • gitlab_email_from_mailbox -- значение почтового ящика в заголовке "From" в исходящем письме.
  • gitlab_email_from_display_name -- значение имени в заголовке "From" в исходящем письме.
  • gitlab_email_reply_to_mailbox -- значение почтового ящика в заголовке "Reply-To" в исходящем письме.
  • gitlab_email_smtp_server_host -- имя SMTP сервера.
  • gitlab_email_smtp_server_port -- порт SMTP сервера.
  • gitlab_email_smtp_transport_security -- механизм безопасности уровня транспортного слоя. Возможные значения: tls (SMTPS), starttls.
  • gitlab_email_smtp_verify_server_cert -- проверять сертификат SMTP сервера, когда выбран механизм безопасности уровня транспортного слоя tls или starttls. Значение по умолчанию: yes.
  • gitlab_email_smtp_ca_cert -- локальный путь к CA сертификату, используемому для проверки сертификата SMTP сервера.
  • gitlab_email_smtp_user_auth_method -- метод аутентификации пользователя SMTP. Возможные значения: plain, login, cram_md5.
  • gitlab_email_smtp_user_name -- имя пользователя SMTP.
  • gitlab_email_smtp_user_password -- пароль пользователя SMTP.

Сервер приложений (Puma)

Справка по переменным:

  • gitlab_workers -- количество Puma рабочих процессов.
  • gitlab_min_threads -- минимальное количество потоков Puma.
  • gitlab_max_threads -- максимальное количество потоков Puma.

Мониторинг

Справка по переменным:

  • gitlab_monitoring_whitelist -- список адресов/подсетей мониторинговых конечных точек, которым разрешено выполнять проверки работоспособности.

Резервное копирование

Смотрите документацию Gitlab для получения подробностей.

Автоматические Резервные Копии

  • gitlab_backup_cron_enable -- включить задачу cron, которая выполняет периодическое резервное копирование. Значение по умолчанию: no.
  • gitlab_backup_cron_minute -- поле "минуты" командной строки cron. Обязательная переменная. Смотрите crontab(5).
  • gitlab_backup_cron_hour -- поле "часа" командной строки cron. Обязательная переменная. Смотрите crontab(5).
  • gitlab_backup_cron_day_of_month -- поле "дня месяца" командной строки cron. Значение по умолчанию: *.
  • gitlab_backup_cron_month -- поле "месяца" командной строки cron. Значение по умолчанию: *.
  • gitlab_backup_cron_day_of_week -- поле "дня недели" командной строки cron. Значение по умолчанию: *.
  • gitlab_backup_cron_docker_cmd -- команда, которую задача резервного копирования использует для вызова Docker Engine. Значение по умолчанию: docker.
  • gitlab_backup_cron_docker_compose_cmd -- команда, которую задача резервного копирования использует для вызова Docker Compose. Значение по умолчанию: docker compose.

Загрузка Резервных Копий на S3 Совместимое Хранилище

  • gitlab_backup_upload_enable -- включить загрузку резервных копий на удаленное хранилище. Значение по умолчанию: no.
  • gitlab_backup_upload_s3_region -- регион AWS region.
  • gitlab_backup_upload_s3_bucket -- S3 bucket для хранения объектов резервных копий. Обязательная переменная.
  • gitlab_backup_upload_s3_access_key_id -- идентификатор ключа доступа. Обязательная переменная.
  • gitlab_backup_upload_s3_secret_access_key -- секретный ключ доступа. Обязательная переменная.
  • gitlab_backup_upload_s3_endpoint -- HTTP API конечная точка для S3 совместимого хранилища.
  • gitlab_backup_upload_s3_path_style_enable -- использовать метод доступа по пути для доступа к ведру (см. Методы доступа к ведру).

Ограничение Срока Хранения Локальных Резервных Копий

  • gitlab_backup_keep_time -- устанавливает значение gitlab_rails['backup_keep_time'].

Зависимости

Если используется роль yabusygin.docker для установки Docker и других требований, то рекомендовано включить [переназначение пространств имен пользователей][UsernsRemap] (см. пример ниже).

Пример Playbook

Настройка по умолчанию (Docker и другие требования уже установлены):

- name: установить GitLab
  hosts: gitlab
  tasks:
    - name: установить GitLab
      ansible.builtin.import_role:
        name: yabusygin.gitlab

На основе кастомизированной роли yabusygin.docker:

---
- name: установить кастомизированный Docker и GitLab
  hosts: gitlab
  tasks:
    - name: установить Docker
      ansible.builtin.import_role:
        name: yabusygin.docker
      vars:
        userns-remap: default
        log-driver: json-file
        log-opts:
          max-size: 10m
          max-file: "3"

    - name: установить GitLab
      ansible.builtin.import_role:
        name: yabusygin.gitlab
      vars:
        gitlab_image: gitlab/gitlab-ee:latest
        gitlab_restart_policy: always

        gitlab_hostname: gitlab.example.com
        gitlab_web_port: 3443
        gitlab_registry_port: 5001
        gitlab_ssh_port: 2222

        gitlab_https_enable: yes
        gitlab_https_key: https/gitlab.key.pem
        gitlab_https_cert: https/gitlab.crt.pem

        gitlab_workers: 2
        gitlab_min_threads: 4
        gitlab_max_threads: 4

        gitlab_monitoring_whitelist:
          - 192.168.10.39
          - 10.0.1.0/24

        gitlab_email_enable: yes
        gitlab_email_from_mailbox: [email protected]
        gitlab_email_from_display_name: GitLab
        gitlab_email_reply_to_mailbox: [email protected]
        gitlab_email_smtp_server_host: smtp.example.com
        gitlab_email_smtp_server_port: 587
        gitlab_email_smtp_transport_security: starttls
        gitlab_email_smtp_user_auth_method: login
        gitlab_email_smtp_user_name: gitlab
        gitlab_email_smtp_user_password: Pa$$w0rD

        gitlab_backup_cron_enable: yes
        gitlab_backup_cron_minute: 0
        gitlab_backup_cron_hour: 2
        gitlab_backup_cron_docker_cmd: /usr/bin/docker
        gitlab_backup_cron_docker_compose_cmd: /usr/local/bin/docker-compose

        gitlab_backup_upload_enable: yes
        gitlab_backup_upload_type: s3
        gitlab_backup_upload_s3_endpoint: https://ams3.digitaloceanspaces.com
        gitlab_backup_upload_s3_region: ams3
        gitlab_backup_upload_s3_bucket: my.s3.bucket
        gitlab_backup_upload_s3_access_key_id: AKIAKIAKI
        gitlab_backup_upload_s3_secret_access_key: secret123

        gitlab_backup_keep_time: 604800

Лицензия

MIT

Информация об авторе

Алексей Бусыгин <yaabusygin@gmail.com>

О проекте

An Ansible role for setting up GitLab.

Установить
ansible-galaxy install yabusygin/ansible-role-gitlab
Лицензия
mit
Загрузки
91
Владелец