geerlingguy.gitlab

Ansible Rolle: GitLab

Veraltet: Im September 2023 habe ich diese Rolle eingestellt, da ich keine GitLab-Instanzen mehr verwalte und stattdessen Gitea für meine persönliche Arbeit verwende. Bitte überlegen Sie, diese Rolle zu forken oder die Rolle eines anderen Benutzers zu verwenden.

CI

Installiert GitLab, ein Ruby-basiertes Frontend für Git, auf jedem RedHat/CentOS- oder Debian/Ubuntu-Linux-System.

Die Standardadministrator-Kontodaten von GitLab sind unten aufgeführt; melden Sie sich sofort nach der Installation an und ändern Sie diese Anmeldedaten!

root
5iveL!fe

Anforderungen

Keine.

Rollenvariablen

Verfügbare Variablen sind unten aufgeführt, zusammen mit Standardwerten (siehe defaults/main.yml):

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

Die Domain und URL, unter der die GitLab-Instanz erreichbar sein wird. Dies wird als external_url-Konfigurationseinstellung in gitlab.rb festgelegt. Wenn Sie GitLab auf einem anderen Port (neben 80/443) ausführen möchten, können Sie den Port hier angeben (z. B. https://gitlab:8443/ für Port 8443).

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

gitlab_git_data_dir ist der Speicherort, an dem alle Git-Repositorys gespeichert werden. Sie können ein freigegebenes Laufwerk oder einen beliebigen Pfad auf dem System verwenden.

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

gitlab_backup_path ist der Speicherort, an dem die GitLab-Backups gespeichert werden.

gitlab_edition: "gitlab-ce"

Die Ausgabe von GitLab, die installiert werden soll. In der Regel entweder gitlab-ce (Community Edition) oder gitlab-ee (Enterprise Edition).

gitlab_version: ''

Wenn Sie eine bestimmte Version installieren möchten, geben Sie die Version hier an (z. B. 11.4.0-ce.0 für Debian/Ubuntu oder 11.4.0-ce.0.el7 für RedHat/CentOS).

gitlab_config_template: "gitlab.rb.j2"

Die gitlab.rb.j2-Vorlage, die mit dieser Rolle geliefert wird, ist sehr allgemein gehalten und bedient eine Vielzahl von Anwendungsfällen. Viele Menschen möchten jedoch eine individuellere Version, daher können Sie die Standardvorlage dieser Rolle durch Ihre eigene ersetzen und alle zusätzlichen Anpassungen hinzufügen, die Sie benötigen. Um dies zu tun:

  • Erstellen Sie ein Verzeichnis templates auf derselben Ebene wie Ihr Playbook.
  • Erstellen Sie eine Datei templates\mygitlab.rb.j2 (wählen Sie einfach einen anderen Namen als die Standardvorlage).
  • Setzen Sie die Variable wie: gitlab_config_template: mygitlab.rb.j2 (mit dem Namen Ihrer benutzerdefinierten Vorlage).

SSL-Konfiguration.

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"

GitLab SSL-Konfiguration; weist GitLab an, normale HTTP-Anfragen auf HTTPS umzuleiten, und gibt den Pfad zum Zertifikat und Schlüssel an (die Standardwerte funktionieren für die automatische Erstellung eines selbstsignierten Zertifikats, wenn auf true in der unten stehenden Variable gesetzt).

# SSL Selbstsigniertes Zertifikat Konfiguration.
gitlab_create_self_signed_cert: true
gitlab_self_signed_cert_subj: "/C=DE/ST=Baden-Württemberg/L=Stuttgart/O=IT/CN={{ gitlab_domain }}"

Ob ein selbstsigniertes Zertifikat erstellt werden soll, um GitLab über eine sichere Verbindung bereitzustellen. Setzen Sie gitlab_self_signed_cert_subj entsprechend Ihrem Standort und Ihrer Organisation.

LetsEncrypt-Konfiguration.

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-Konfiguration; weist GitLab an, ob ein Zertifikat von LetsEncrypt angefordert und verwendet werden soll, wenn gitlab_letsencrypt_enable auf true gesetzt ist. Mehrere Kontakt-E-Mails können unter gitlab_letsencrypt_contact_emails als Liste konfiguriert werden.

# LDAP-Konfiguration.
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=Benutzername,CN=Benutzer,DC=example,DC=com"
gitlab_ldap_password: "passwort"
gitlab_ldap_base: "DC=example,DC=com"

GitLab LDAP-Konfiguration; wenn gitlab_ldap_enabled auf true gesetzt ist, wird GitLab mit den restlichen Konfigurationen verbunden, um sich mit einem LDAP-Server für die zentrale Authentifizierung zu verbinden.

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

Abhängigkeiten, die von GitLab für bestimmte Funktionen erforderlich sind, wie Zeitzonenunterstützung oder E-Mail. Sie können diese Liste in Ihrem eigenen Playbook ändern, wenn Sie beispielsweise exim anstelle von postfix installieren möchten.

gitlab_time_zone: "UTC"

Zeitzone von GitLab.

gitlab_backup_keep_time: "604800"

Wie lange lokale Backups aufbewahrt werden sollen (nützlich, wenn Sie nicht möchten, dass Backups Ihren Speicherplatz füllen!).

gitlab_download_validate_certs: true

Steuert, ob Zertifikate beim Herunterladen des Installationsskripts aus dem GitLab-Repository validiert werden sollen.

# E-Mail-Konfiguration.
gitlab_email_enabled: false
gitlab_email_from: "[email protected]"
gitlab_email_display_name: "GitLab"
gitlab_email_reply_to: "[email protected]"

E-Mail-Systemkonfiguration von GitLab. Standardmäßig deaktiviert; setzen Sie gitlab_email_enabled auf true, um es zu aktivieren, und geben Sie validierte Absender-/Antwortwerte ein.

# SMTP-Konfiguration
gitlab_smtp_enable: false
gitlab_smtp_address: "smtp.server"
gitlab_smtp_port: "465"
gitlab_smtp_user_name: "smtp benutzer"
gitlab_smtp_password: "smtp passwort"
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-Konfiguration von GitLab; wenn gitlab_smtp_enable auf true gesetzt ist, wird GitLab mit den restlichen Konfigurationen verbunden, um E-Mails über einen SMTP-Server zu senden.

gitlab_nginx_listen_port: 8080

Wenn Sie GitLab hinter einem Reverse Proxy ausführen, möchten Sie möglicherweise den Listenport auf einen anderen Wert ändern.

gitlab_nginx_listen_https: false

Wenn Sie GitLab hinter einem Reverse Proxy ausführen, möchten Sie möglicherweise SSL an einem anderen Proxy-Server oder Lastenausgleichsterminal beenden.

gitlab_nginx_ssl_verify_client: ""
gitlab_nginx_ssl_client_certificate: ""

Wenn Sie die zwei-Wege-SSL-Client-Authentifizierung aktivieren möchten, setzen Sie gitlab_nginx_ssl_verify_client und fügen Sie einen Pfad zum Client-Zertifikat in gitlab_nginx_ssl_client_certificate hinzu.

gitlab_default_theme: 2

GitLab enthält eine Reihe von Themen, und Sie können das Standardthema für alle Benutzer mit dieser Variablen festlegen. Siehe die enthaltenen GitLab-Themen, um ein Standardthema auszuwählen.

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 bietet viele weitere Einstellungen (siehe offizielle Dokumentation), und Sie können sie mit dieser speziellen Variablen gitlab_extra_settings hinzufügen, indem Sie die entsprechenden Einstellungen sowie die Schlüssel- und Wertepaare angeben.

Abhängigkeiten

Keine.

Beispiel-Playbook

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

In vars/main.yml:

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

Lizenz

MIT / BSD

Autor-Information

Diese Rolle wurde 2014 von Jeff Geerling erstellt, Autor von Ansible für DevOps.

Installieren
ansible-galaxy install geerlingguy.gitlab
Lizenz
mit
Downloads
527.5k
Besitzer
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns