gitlab
Ansible Роль: gitlab
Ansible роль для установки GitLab версии 13.0 или новее.
Требования
Эта роль использует модуль community.docker.docker_compose. Поэтому на управляющем узле требуется коллекция community.docker.
На управляемом узле для выполнения этой роли необходимы следующие компоненты:
- Docker Engine
- Docker Compose
- требования модуля community.docker.docker_compose
Рекомендуется использовать роль yabusygin.docker для установки всех необходимых компонентов на управляемом узле.
Переменные роли
Вот краткая справка по переменным. Смотрите Wiki и раздел "Пример Playbook" ниже для примеров.
Конфигурация Docker
gitlab_image
-- образ контейнера Docker, который следует использовать. Значение по умолчанию:gitlab/gitlab-ce:latest
.gitlab_restart_policy
-- политика перезапуска контейнера Docker. Возможные значения:always
,on-failure
,unless-stopped
. По умолчанию 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>
ansible-galaxy install yabusygin/ansible-role-gitlab