geerlingguy.gitlab

Rola Ansible: GitLab

Wycofane: W wrześniu 2023 roku wycofałem tę rolę, ponieważ już nie utrzymuję żadnych instancji GitLab i używam Gitea do mojej pracy osobistej. Proszę rozważyć stworzenie własnej wersji tej roli lub skorzystanie z roli GitLab stworzonej przez kogoś innego.

CI

Instaluje GitLab, interfejs oparty na Ruby do Gita, na systemie Linux RedHat/CentOS lub Debian/Ubuntu.

Dane logowania do domyślnego konta administratora GitLab są poniżej; upewnij się, że zalogujesz się natychmiast po instalacji i zmienisz te dane!

root
5iveL!fe

Wymagania

Brak.

Zmienne Roli

Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (zobacz defaults/main.yml):

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

Domena i URL, pod którymi instancja GitLab będzie dostępna. Ustawione jako external_url w pliku konfiguracyjnym gitlab.rb. Jeśli chcesz uruchomić GitLab na innym porcie (oprócz 80/443), możesz to tutaj określić (np. https://gitlab:8443/ dla portu 8443).

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

gitlab_git_data_dir to lokalizacja, w której będą przechowywane wszystkie repozytoria Git. Możesz użyć wspólnego dysku lub dowolnej ścieżki na systemie.

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

gitlab_backup_path to lokalizacja, w której będą przechowywane kopie zapasowe GitLab.

gitlab_edition: "gitlab-ce"

Edycja GitLab do zainstalowania. Zwykle to gitlab-ce (Edycja Społecznościowa) lub gitlab-ee (Edycja Enterprise).

gitlab_version: ''

Jeśli chcesz zainstalować określoną wersję, ustaw wersję tutaj (np. 11.4.0-ce.0 dla Debian/Ubuntu, lub 11.4.0-ce.0.el7 dla RedHat/CentOS).

gitlab_config_template: "gitlab.rb.j2"

Szablon gitlab.rb.j2, który jest dostarczany z tą rolą, ma być bardzo ogólny i służyć różnym przypadkom użycia. Jeśli chcesz mieć bardziej spersonalizowaną wersję, możesz zastąpić domyślny szablon tej roli własnym, dodając dodatkowe modyfikacje, które potrzebujesz. Aby to zrobić:

  • Utwórz katalog templates na tym samym poziomie co twój playbook.
  • Utwórz plik templates/mygitlab.rb.j2 (możesz wybrać inną nazwę niż domyślny szablon).
  • Ustaw zmienną jak: gitlab_config_template: mygitlab.rb.j2 (z nazwą twojego niestandardowego szablonu).

Konfiguracja 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"

Konfiguracja SSL GitLab; informuje GitLab, aby przekierowywał zwykłe zapytania http do https, oraz podaje ścieżkę do certyfikatu i klucza (domyślne wartości będą działać dla automatycznego tworzenia certyfikatu samopodpisanego, jeśli ustawione na true w poniższej zmiennej).

# Konfiguracja samopodpisanego certyfikatu SSL.
gitlab_create_self_signed_cert: true
gitlab_self_signed_cert_subj: "/C=US/ST=Missouri/L=Saint Louis/O=IT/CN={{ gitlab_domain }}"

Czy utworzyć certyfikat samopodpisany do obsługi GitLab przez bezpieczne połączenie. Ustaw gitlab_self_signed_cert_subj zgodnie z lokalizacją i organizacją.

Konfiguracja 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

Konfiguracja LetsEncrypt GitLab; informuje GitLab, czy złożyć wniosek o certyfikat od LetsEncrypt, jeśli gitlab_letsencrypt_enable jest ustawione na true. Można skonfigurować wiele adresów e-mail kontaktowych w gitlab_letsencrypt_contact_emails jako listę.

# Konfiguracja 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"

Konfiguracja LDAP GitLab; jeśli gitlab_ldap_enabled jest true, reszta konfiguracji wskaże GitLab, jak połączyć się z serwerem LDAP w celu centralnej autoryzacji.

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

Zależności wymagane przez GitLab dla niektórej funkcjonalności, jak wsparcie strefy czasowej czy e-mail. Możesz zmienić tę listę w swoim playbooku, jeśli np. chcesz zainstalować exim zamiast postfix.

gitlab_time_zone: "UTC"

Strefa czasowa GitLab.

gitlab_backup_keep_time: "604800"

Jak długo przechowywać lokalne kopie zapasowe (przydatne, jeśli nie chcesz, aby kopie zapasowe zapełniały dysk!).

gitlab_download_validate_certs: true

Kontroluje, czy certyfikaty mają być weryfikowane podczas pobierania skryptu instalacyjnego repozytorium GitLab.

# Konfiguracja e-mail.
gitlab_email_enabled: false
gitlab_email_from: "[email protected]"
gitlab_email_display_name: "Gitlab"
gitlab_email_reply_to: "[email protected]"

Konfiguracja systemowej poczty GitLab. Domyślnie wyłączona; ustaw gitlab_email_enabled na true, aby ją włączyć, a także upewnij się, że wprowadziłeś poprawne wartości from i reply-to.

# Konfiguracja 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"

Konfiguracja SMTP GitLab; jeśli gitlab_smtp_enable jest true, reszta konfiguracji wskaże GitLab, jak wysyłać e-maile za pomocą serwera smtp.

gitlab_nginx_listen_port: 8080

Jeśli uruchamiasz GitLab za proxy odwrotnym, możesz chcieć zmienić port, na którym nasłuchuje.

gitlab_nginx_listen_https: false

Jeśli uruchamiasz GitLab za proxy odwrotnym, chcesz, aby SSL zostało zakończone na innym serwerze proxy lub load balancerze.

gitlab_nginx_ssl_verify_client: ""
gitlab_nginx_ssl_client_certificate: ""

Jeśli chcesz włączyć uwierzytelnianie klienta SSL w obu kierunkach, ustaw gitlab_nginx_ssl_verify_client i dodaj ścieżkę do certyfikatu klienta w gitlab_nginx_ssl_client_certificate.

gitlab_default_theme: 2

GitLab zawiera szereg motywów, a tą zmienną możesz ustawić domyślny dla wszystkich użytkowników. Zobacz wbudowane motywy GitLab, aby wybrać domyślny.

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 ma wiele innych ustawień (zobacz oficjalną dokumentację), a możesz je dodać za pomocą specjalnej zmiennej gitlab_extra_settings z odpowiednimi ustawieniami oraz słowami kluczowymi key i value.

Zależności

Brak.

Przykładowy Playbook

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

W pliku vars/main.yml:

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

Licencja

MIT / BSD

Informacje o autorze

Ta rola została stworzona w 2014 roku przez Jeffa Geerlinga, autora Ansible dla DevOps.

Zainstaluj
ansible-galaxy install geerlingguy.gitlab
Licencja
mit
Pobrania
527.5k
Właściciel
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns