gitlab

Ansible Роль: GitLab

Устарело: В сентябре 2023 года я утратил поддержку этой роли, так как больше не поддерживаю никакие экземпляры GitLab и использую Gitea для своей личной работы. Пожалуйста, подумайте о том, чтобы создать форк этой роли или использовать роль GitLab от другого автора.

CI

Устанавливает GitLab, фронтенд на Ruby для Git, на любой системе Linux RedHat/CentOS или Debian/Ubuntu.

Данные учетной записи администратора по умолчанию для GitLab указаны ниже; убедитесь, что вы вошли в систему сразу после установки и изменили эти учетные данные!

root
5iveL!fe

Требования

Нет.

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

Доступные переменные перечислены ниже вместе с значениями по умолчанию (см. defaults/main.yml):

gitlab_domain: gitlab
gitlab_external_url: "https://{{ gitlab_domain }}/"

Домен и URL, по которым экземпляр GitLab будет доступен. Это значение устанавливается в настройках конфигурации external_url в gitlab.rb, и если вы хотите запустить GitLab на другом порту (кроме 80/443), вы можете указать порт здесь (например, https://gitlab:8443/ для порта 8443).

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

gitlab_git_data_dir — это место, где будут храниться все Git репозитории. Вы можете использовать общий диск или любой путь на системе.

gitlab_backup_path: "/var/opt/gitlab/backups"

gitlab_backup_path — это место, где будут храниться резервные копии GitLab.

gitlab_edition: "gitlab-ce"

Издание GitLab для установки. Обычно это либо gitlab-ce (Community Edition), либо gitlab-ee (Enterprise Edition).

gitlab_version: ''

Если вы хотите установить конкретную версию, укажите версию здесь (например, 11.4.0-ce.0 для Debian/Ubuntu или 11.4.0-ce.0.el7 для RedHat/CentOS).

gitlab_config_template: "gitlab.rb.j2"

Шаблон gitlab.rb.j2, входящий в эту роль, предназначен для общего использования и может покрыть множество сценариев. Однако многим пользователям может понадобиться более настраиваемая версия, и вы можете переопределить шаблон по умолчанию этой роли, добавив свои собственные настройки. Для этого:

  • Создайте каталог templates на том же уровне, что и ваш playbook.
  • Создайте файл templates\mygitlab.rb.j2 (просто выберите другое имя, отличное от имени шаблона по умолчанию).
  • Установите переменную таким образом: gitlab_config_template: mygitlab.rb.j2 (с именем вашего пользовательского шаблона).

Настройка SSL.

gitlab_redirect_http_to_https: true
gitlab_ssl_certificate: "/etc/gitlab/ssl/{{ gitlab_domain }}.crt"
gitlab_ssl_certificate_key: "/etc/gitlab/ssl/{{ gitlab_domain }}.key"

Настройка SSL для GitLab; указывает GitLab перенаправлять обычные http запросы на https, и путь к сертификату и ключу (значения по умолчанию подойдут для автоматического создания самоподписанного сертификата, если установлено true в следующей переменной).

# Конфигурация самоподписанного сертификата SSL.
gitlab_create_self_signed_cert: true
gitlab_self_signed_cert_subj: "/C=US/ST=Missouri/L=Saint Louis/O=IT/CN={{ gitlab_domain }}"

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

Настройка LetsEncrypt.

gitlab_letsencrypt_enable: false
gitlab_letsencrypt_contact_emails: ["[email protected]"]
gitlab_letsencrypt_auto_renew_hour: 1
gitlab_letsencrypt_auto_renew_minute: 30
gitlab_letsencrypt_auto_renew_day_of_month: "*/7"
gitlab_letsencrypt_auto_renew: true

Настройка GitLab LetsEncrypt; указывает GitLab, нужно ли запрашивать и использовать сертификат от LetsEncrypt, если gitlab_letsencrypt_enable установлено в true. Несколько контактных адресов электронной почты можно настроить в gitlab_letsencrypt_contact_emails в виде списка.

# Настройка LDAP.
gitlab_ldap_enabled: false
gitlab_ldap_host: "example.com"
gitlab_ldap_port: "389"
gitlab_ldap_uid: "sAMAccountName"
gitlab_ldap_method: "plain"
gitlab_ldap_bind_dn: "CN=Username,CN=Users,DC=example,DC=com"
gitlab_ldap_password: "password"
gitlab_ldap_base: "DC=example,DC=com"

Настройка GitLab LDAP; если gitlab_ldap_enabled установлено в true, остальная конфигурация укажет GitLab, как подключиться к LDAP серверу для централизованной аутентификации.

gitlab_dependencies:
  - openssh-server
  - postfix
  - curl
  - openssl
  - tzdata

Зависимости, необходимые GitLab для определенного функционала, например, поддержки часового пояса или электронной почты. Вы можете изменить этот список в своем собственном playbook, если, например, хотите установить exim вместо postfix.

gitlab_time_zone: "UTC"

Часовой пояс GitLab.

gitlab_backup_keep_time: "604800"

Как долго хранить локальные резервные копии (полезно, если вы не хотите, чтобы резервные копии заполняли ваш диск!).

gitlab_download_validate_certs: true

Контролирует, нужно ли проверять сертификаты при загрузке скрипта установки репозитория GitLab.

# Настройка электронной почты.
gitlab_email_enabled: false
gitlab_email_from: "[email protected]"
gitlab_email_display_name: "Gitlab"
gitlab_email_reply_to: "[email protected]"

Настройка системной почты GitLab. По умолчанию отключена; установите gitlab_email_enabled в true, чтобы включить, и убедитесь, что вы ввели действительные значения from/reply-to.

# Настройка SMTP
gitlab_smtp_enable: false
gitlab_smtp_address: "smtp.server"
gitlab_smtp_port: "465"
gitlab_smtp_user_name: "smtp user"
gitlab_smtp_password: "smtp password"
gitlab_smtp_domain: "example.com"
gitlab_smtp_authentication: "login"
gitlab_smtp_enable_starttls_auto: true
gitlab_smtp_tls: false
gitlab_smtp_openssl_verify_mode: "none"
gitlab_smtp_ca_path: "/etc/ssl/certs"
gitlab_smtp_ca_file: "/etc/ssl/certs/ca-certificates.crt"

Настройка SMTP GitLab; если gitlab_smtp_enable установлено в true, остальная конфигурация сообщит GitLab, как отправлять письма с использованием сервера smtp.

gitlab_nginx_listen_port: 8080

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

gitlab_nginx_listen_https: false

Если вы запускаете GitLab за обратным прокси, вы можете желать завершить SSL на другом прокси-сервере или балансировщике нагрузки.

gitlab_nginx_ssl_verify_client: ""
gitlab_nginx_ssl_client_certificate: ""

Если вы хотите включить двустороннюю аутентификацию SSL клиента, установите gitlab_nginx_ssl_verify_client и добавьте путь к клиентскому сертификату в gitlab_nginx_ssl_client_certificate.

gitlab_default_theme: 2

GitLab включает в себя множество тем, и вы можете установить тему по умолчанию для всех пользователей с помощью этой переменной. См. включенные темы GitLab, чтобы выбрать тему по умолчанию.

gitlab_extra_settings:
  - gitlab_rails:
      - key: "trusted_proxies"
        value: "['foo', 'bar']"
      - key: "env"
        type: "plain"
        value: |
          {
          "http_proxy" => "https://my_http_proxy.company.com:3128",
          "https_proxy" => "https://my_http_proxy.company.com:3128",
          "no_proxy" => "localhost, 127.0.0.1, company.com"
          }
  - unicorn:
      - key: "worker_processes"
        value: 5
      - key: "pidfile"
        value: "/opt/gitlab/var/unicorn/unicorn.pid"

GitLab имеет множество других настроек (см. официальную документацию), и вы можете добавить их с помощью этой специальной переменной gitlab_extra_settings с соответствующей настройкой и ключами key и value.

Зависимости

Нет.

Пример Playbook

- hosts: servers
  vars_files:
    - vars/main.yml
  roles:
    - { role: geerlingguy.gitlab }

Внутри vars/main.yml:

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

Лицензия

MIT / BSD

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

Эта роль была создана в 2014 году Джеффом Гирлингом, автором Ansible for DevOps.

Установить
ansible-galaxy install geerlingguy/ansible-role-gitlab
Лицензия
mit
Загрузки
500493
Владелец
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns