gitlab
Роль Ansible для GitLab
:warning: Этот проект архивирован! :warning:
Эта роль была перенесена в нашу коллекцию hifis.toolkit
:
- https://github.com/hifis-net/ansible-collection-toolkit
- https://galaxy.ansible.com/ui/repo/published/hifis/toolkit/
Роль для установки и настройки официального пакета 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"
Зависимости
Нет.
Лицензия
Информация об авторе
Команда программного обеспечения HIFIS
Участники
Мы хотели бы поблагодарить и признать следующих участников этого проекта:
ansible-galaxy install hifis-net/ansible-role-gitlab