gitlab

Роль Ansible для GitLab

:warning: Этот проект архивирован! :warning:

Эта роль была перенесена в нашу коллекцию hifis.toolkit:

Статус CI Роль Ansible Galaxy Скачивания роли Ansible Galaxy Оценка качества Ansible Galaxy Лицензия Apache-2.0 Последний релиз

Роль для установки и настройки официального пакета GitLab Omnibus.

В настоящее время поддерживаемые платформы:

  • CentOS 7
  • AlmaLinux 8
  • Debian 11 (Bullseye)
  • Ubuntu 18.04 LTS (Bionic Beaver)
  • Ubuntu 20.04 LTS (Focal Fossa)
  • Ubuntu 22.04 LTS (Jemmy Jellyfish)

Требования

Нет.

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

Важные переменные роли

Издание GitLab

Издание GitLab для установки. Пожалуйста, используйте gitlab-ce для Community Edition или gitlab-ee для Enterprise Edition.

gitlab_edition: "gitlab-ee"

Версия и релиз GitLab

Установите конкретную версию GitLab для установки. Пожалуйста, убедитесь, что вы также указываете желаемый релиз. Доступные релизы можно найти здесь.

gitlab_version: "15.6.1"

# Релиз GitLab для RHEL/AlmaLinux 8
gitlab_release: "ce.0.el8"

# Релиз GitLab для Ubuntu
gitlab_release: "ce.0"

Обратите внимание: Если версия GitLab не указана, роль всегда установит последнюю доступную версию пакета GitLab.

URL-адрес GPG-ключа

URL-адрес GPG-ключа, который использовался для подписи пакетов.

gitlab_gpg_key_url: "https://packages.gitlab.com/gitlab/{{ gitlab_edition }}/gpgkey"

ID GPG-ключа

Идентификатор GPG-ключа, который использовался для подписи пакетов.

gitlab_gpg_key_id: "F6403F6544A38863DAA0B6E03F01618A51312F3F"

URL-адрес репозитория пакетов

URL-адрес репозитория пакетов в зависимости от операционной системы.

gitlab_repo_url: "https://packages.gitlab.com/gitlab/{{ gitlab_edition }}/ubuntu/"

URL-адрес репозитория исходных пакетов

URL-адрес репозитория исходных пакетов (только для CentOS и AlmaLinux).

gitlab_source_repo_url: "https://packages.gitlab.com/gitlab/{{ gitlab_edition }}/el/{{ ansible_facts.distribution_major_version }}/SRPMS"

Имя пакета

Имя пакета GitLab для установки.

gitlab_package_name: "{{ gitlab_edition + '=' + gitlab_version + '-' + gitlab_release если gitlab_version и gitlab_release иначе gitlab_edition }}"

Зависимости пакета

Список вспомогательных пакетов, необходимых для GitLab в зависимости от операционной системы.

gitlab_dependencies:
  - apt-transport-https
  - curl
  - gnupg
  - openssh-server
  - openssl
  - tzdata

URL-адрес вашей инстанции GitLab

Укажите URL-адрес вашей инстанции GitLab:

gitlab_external_url: 'https://gitlab.example.com'

Часовой пояс, который будет использоваться GitLab

Выберите часовой пояс для использования GitLab:

gitlab_time_zone: 'Europe/Berlin'

Период времени для хранения резервных копий

Установите период времени (в секундах) для хранения резервных копий GitLab:

gitlab_backup_keep_time: '604800'

Дополнительные переменные роли

Имя шаблона для файла конфигурации GitLab

Укажите имя шаблона для файла конфигурации GitLab, который будет преобразован в файл конфигурации GitLab:

gitlab_configuration_file_template: 'gitlab.rb.j2'

Путь к файлу конфигурации GitLab

Укажите путь к шаблону файла конфигурации GitLab, который содержит пользовательские конфигурации вашей инстанции GitLab:

gitlab_configuration_file_path: '/etc/gitlab/gitlab.rb'

Тема GitLab, которая будет использоваться по умолчанию

Выберите тему по умолчанию для новых пользователей GitLab:

gitlab_default_theme: '2'

Путь к резервным копиям GitLab

Установите путь к резервным копиям GitLab:

gitlab_backup_path: '/var/opt/gitlab/backups'

Порт, на котором прослушивает веб-сервер Nginx

Установите порт, на котором прослушивает веб-сервер Nginx GitLab:

gitlab_nginx_listen_port: '80'

Принимает ли веб-сервер Nginx HTTPS-запросы?

Выберите, принимает ли веб-сервер Nginx GitLab HTTPS-запросы:

gitlab_nginx_listen_https: 'false'

Перенаправляет ли веб-сервер Nginx HTTP-запросы на HTTPS?

Выберите, перенаправляет ли веб-сервер Nginx GitLab HTTP-запросы на HTTPS:

gitlab_nginx_redirect_http_to_https: 'false'

Установка флагов функций GitLab

Установите флаги функций GitLab для включения или отключения дополнительных функций. Переменная представляет собой список пар ключ-значение, требующий имени флага функции и его булевого состояния включено. Значение по умолчанию - пустой список [].

gitlab_feature_flags:
  - name: "vscode_web_ide"
    enabled: true
  - name: "chatops"
    enabled: true
  - name: "webauthn"
    enabled: false  

Сценарий только для Mattermost

Эта роль может использоваться для запуска Mattermost без развертывания GitLab. В этом случае такие сервисы, как sidekiq или puma, не требуются. Установите на true, чтобы предотвратить перезагрузку этих сервисов:

gitlab_mattermost_only_context: 'false'

Переменные, которые нужно установить, если используется внешний Redis

Переключатель для использования внешнего экземпляра Redis

Установите переключатель на false, чтобы активировать внешний экземпляр Redis:

gitlab_use_internal_redis: 'false'

Пароль для аутентификации сервисов Redis в кластере

Рекомендуется включить аутентификацию для Redis Master и Redis Replicas, предоставив соответствующий пароль:

gitlab_redis_password: 'changeme'

Осторожно: вы должны использовать собственный приватный и зашифрованный пароль здесь.

Пароль для аутентификации редис-сентинелов

Поддержка аутентификации по паролю для Redis Sentinel была введена в GitLab 16.1.

gitlab_redis_sentinel_password: 'changeme'

Осторожно: вы должны использовать собственный приватный и зашифрованный пароль здесь.

Имя кластера Redis

Выберите имя кластера Redis для ссылок:

gitlab_redis_cluster_name: 'redis-cluster'

Список IP-адресов серверов Redis Sentinel

Добавьте список IP-адресов участвующих серверов Redis Sentinel:

gitlab_redis_sentinel_ips:
  - '192.168.33.11'
  - '192.168.33.12'
  - '192.168.33.13'

Порт, на котором работают сервера Redis Sentinel

Выберите порт, на котором работают серверы Redis Sentinel:

gitlab_redis_sentinel_port: '26379'

Диапазон допустимых IP-адресов для мониторинга серверов Redis Sentinel

Диапазон IP-адресов GitLab, которым разрешено мониторить серверы Redis Sentinel:

gitlab_ip_range: '{{ ansible_facts.default_ipv4.address }}/24'

Переменные, которые нужно установить, если используется внешний Gitaly

Переключатель для использования внешнего экземпляра Gitaly

Установите переключатель на false, чтобы активировать внешний экземпляр Gitaly:

gitlab_use_internal_gitaly: 'false'

Путь к каталогу данных GitLab

Укажите, где разместить каталог данных GitLab:

gitlab_git_data_dir: "/var/opt/gitlab/git-data"

Токен аутентификации Gitaly

Необходимо предоставить токен аутентификации Gitaly:

gitlab_gitaly_token: 'changeme'

Осторожно: вы должны использовать собственный приватный и зашифрованный пароль здесь.

Токен GitLab Shell

Необходимо предоставить токен GitLab Shell:

gitlab_secret_token: 'changeme'

Осторожно: вы должны использовать собственный приватный и зашифрованный пароль здесь.

IP-адрес экземпляра Gitaly

Укажите IP-адрес экземпляра Gitaly:

gitlab_gitaly_instance_ip: '127.0.0.1'

Порт Gitaly

Укажите порт экземпляра Gitaly:

gitlab_gitaly_instance_port: '8075'

Переменные, которые нужно установить, если используется внешняя база данных PostgreSQL

Переключатель для использования внешнего экземпляра PostgreSQL

Установите переключатель на false, чтобы активировать внешний экземпляр PostgreSQL:

gitlab_use_internal_postgresql: 'false'

IP-адрес внешнего экземпляра PostgreSQL

Установите IP-адрес экземпляра PostgreSQL:

gitlab_postgresql_db_host: '127.0.0.1'

Пароль для внешнего экземпляра PostgreSQL

Установите пароль для экземпляра PostgreSQL:

gitlab_postgresql_db_password: 'changeme'

Осторожно: вы должны использовать собственный приватный и зашифрованный пароль здесь.

Настройка реестра GitLab

Включите реестр контейнеров GitLab:

gitlab_registry_enable: "true"

Обратите внимание: Если вы не используете балансировщик нагрузки перед GitLab и позволяете Nginx обрабатывать SSL-шифрование, пожалуйста, также настройте registry_nginx['ssl_certificate'] и registry_nginx['ssl_certificate_key'] через gitlab_additional_configurations.

Дополнительные настройки, заданные как переменные роли

Любые другие настройки, которые еще не являются частью файла конфигурации GitLab, могут быть заданы с помощью переменных роли Ansible.

Настройки через переменные Ruby в виде словаря

Переменные Ruby, которые не являются частью файла конфигурации GitLab, могут быть заданы через переменные роли Ansible.

Пример использования:

gitlab_additional_configurations:
  - gitlab_rails:
      - key: "time_zone"
        value: "Europe/Berlin"
  - nginx:
      - key: "listen_port"
        type: "plain"
        value: "80"
      - key: "listen_https"
        type: "plain"
        value: "false"

Результирующая конфигурация:

gitlab_rails['time_zone'] = 'Europe/Berlin'
nginx['listen_port'] = 80
nginx['listen_https'] = false

Настройки через вызовы функций Ruby

Вызовы функций Ruby, которые не являются частью файла конфигурации GitLab, могут быть заданы через переменные роли Ansible.

Пример использования:

gitlab_ruby_configuration_calls:
  - key: "pages_external_url"
    value: "https://pages.example.com"
  - key: "registry_external_url"
    value: "https://registry.example.com"
  - key: "mattermost_external_url"
    value: "https://mattermost.example.com"

Результирующая конфигурация:

registry_external_url "https://registry.example.com"
pages_external_url "https://pages.example.com"
mattermost_external_url "https://mattermost.example.com"

Зависимости

Нет.

Лицензия

Apache-2.0

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

Команда программного обеспечения HIFIS

Участники

Мы хотели бы поблагодарить и признать следующих участников этого проекта:

О проекте

Install and configure official GitLab Omnibus package

Установить
ansible-galaxy install hifis-net/ansible-role-gitlab
Лицензия
other
Загрузки
24760
Владелец
Helmholtz Digital Services for Science — Collaboration made easy.