hifis.gitlab

GitLab Ansible Rolle

:warning: Dieses Projekt ist archiviert! :warning:

Diese Rolle wurde in unsere hifis.toolkit Sammlung migriert:

CI Status Ansible Galaxy Rolle Ansible Galaxy Rollen Downloads Ansible Galaxy Qualitätswert Apache-2.0 Lizenziert Neueste Version

Eine Rolle zur Installation und Konfiguration des offiziellen GitLab Omnibus-Pakets.

Aktuell unterstützte Plattformen sind:

  • 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)

Anforderungen

Keine.

Rollenvariablen

Wichtige Rollenvariablen

GitLab Edition

Die zu installierende GitLab-Edition. Bitte verwenden Sie entweder gitlab-ce für die Community-Edition oder gitlab-ee für die Enterprise-Edition.

gitlab_edition: "gitlab-ee"

GitLab Version und Release

Legen Sie eine spezifische GitLab-Version fest, die installiert werden soll. Stellen Sie sicher, dass Sie auch das gewünschte Release angeben. Die verfügbaren Releases finden Sie hier.

gitlab_version: "15.6.1"

# GitLab Release für RHEL/AlmaLinux 8
gitlab_release: "ce.0.el8"

# GitLab Release für Ubuntu
gitlab_release: "ce.0"

Bitte beachten: Wenn keine GitLab-Version angegeben ist, installiert die Rolle immer das neueste verfügbare GitLab-Paket.

GPG-Schlüssel-URL

URL zum GPG-Schlüssel, der zur Signierung der Pakete verwendet wurde.

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

GPG-Schlüssel-ID

Bezeichner des GPG-Schlüssels, der zur Signierung der Pakete verwendet wurde.

gitlab_gpg_key_id: "F6403F6544A38863DAA0B6E03F01618A51312F3F"

Paket-Repository-URL

URL zum Paket-Repository basierend auf dem Betriebssystem.

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

URL des Quellpaket-Repositories

URL zum Quellpaket-Repository (CentOS und AlmaLinux nur).

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

Paketname

Name des GitLab-Pakets, das installiert werden soll.

gitlab_package_name: "{{ gitlab_edition + '=' + gitlab_version + '-' + gitlab_release if gitlab_version and gitlab_release else gitlab_edition }}"

Paketabhängigkeiten

Liste der benötigten Abhängigkeiten für GitLab basierend auf dem Betriebssystem.

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

URL Ihrer GitLab-Instanz

Geben Sie die URL Ihrer GitLab-Instanz an:

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

Zeitzone, die von GitLab verwendet werden soll

Wählen Sie die Zeitzone, die von GitLab verwendet werden soll:

gitlab_time_zone: 'Europe/Berlin'

Zeitraum, in dem Backups aufbewahrt werden

Legen Sie den Zeitraum (in Sekunden) fest, in dem Ihre GitLab-Backups aufbewahrt werden sollen:

gitlab_backup_keep_time: '604800'

Optionale Rollenvariablen

Name der Vorlage für die GitLab-Konfigurationsdatei

Geben Sie den Namen der Vorlage für die GitLab-Konfigurationsdatei an, die in die GitLab-Konfigurationsdatei umgewandelt wird:

gitlab_configuration_file_template: 'gitlab.rb.j2'

Pfad zur GitLab-Konfigurationsdatei

Geben Sie den Pfad der Vorlage für die GitLab-Konfigurationsdatei an, die benutzerdefinierte Konfigurationen Ihrer GitLab-Instanz enthält:

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

GitLab-Thema, das standardmäßig verwendet werden soll

Wählen Sie das Standardthema für neue GitLab-Nutzer:

gitlab_default_theme: '2'

Pfad zu GitLab-Backups

Legen Sie den Pfad zu den GitLab-Backups fest:

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

Port, auf dem der Webserver Nginx hört

Legen Sie den Port fest, auf dem der Webserver Nginx von GitLab lauscht:

gitlab_nginx_listen_port: '80'

Akzeptiert der Webserver Nginx HTTPS-Anfragen?

Wählen Sie, ob der Webserver Nginx von GitLab HTTPS-Anfragen akzeptiert:

gitlab_nginx_listen_https: 'false'

Leitet der Webserver Nginx HTTP-Anfragen zu HTTPS um?

Wählen Sie, ob der Webserver Nginx von GitLab HTTP-Anfragen nach HTTPS umleitet:

gitlab_nginx_redirect_http_to_https: 'false'

Setzen Sie GitLab-Feature-Flags

Setzen Sie GitLab-Feature-Flags, um zusätzliche Funktionen zu aktivieren oder zu deaktivieren. Die Variable ist eine Liste von Schlüssel-Wert-Paaren, die den name des Feature-Flags und seinen booleschen Zustand enabled erfordert. Der Standardwert ist eine leere Liste [].

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

Mattermost-Nur-Anwendungsfall

Diese Rolle kann verwendet werden, um Mattermost ohne Bereitstellung von GitLab auszuführen. In diesem Szenario sind Dienste wie sidekiq oder puma nicht erforderlich. Setzen Sie auf true, um zu verhindern, dass die Rolle diese Dienste neu lädt:

gitlab_mattermost_only_context: 'false'

Variablen, die festgelegt werden müssen, wenn Redis extern verwendet wird

Schalter zur Verwendung einer externen Redis-Instanz

Setzen Sie den Schalter auf false, um eine externe Redis-Instanz zu aktivieren:

gitlab_use_internal_redis: 'false'

Passwort zur Authentifizierung von Redis-Diensten innerhalb des Clusters

Es wird empfohlen, die Authentifizierung für Redis Master und Redis Replikate zu aktivieren, indem das jeweilige Passwort bereitgestellt wird:

gitlab_redis_password: 'changeme'

Vorsicht: Sie müssen hier Ihr eigenes privates und verschlüsseltes Passwort verwenden.

Passwort zur Authentifizierung von Redis-Sentinels

Die Unterstützung für die Passwortauthentifizierung von Redis Sentinel wurde in GitLab 16.1 eingeführt.

gitlab_redis_sentinel_password: 'changeme'

Vorsicht: Sie müssen hier Ihr eigenes privates und verschlüsseltes Passwort verwenden.

Referenzname des Redis-Clusters

Wählen Sie einen Namen für den Redis-Cluster zur Referenz:

gitlab_redis_cluster_name: 'redis-cluster'

Liste der IP-Adressen der Redis-Sentinel-Server

Fügen Sie eine Liste der IP-Adressen der beteiligten Redis-Sentinel-Server hinzu:

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

Port, auf dem Redis-Sentinel-Server abhört

Wählen Sie den Port, auf dem die Redis-Sentinel-Server abhören:

gitlab_redis_sentinel_port: '26379'

IP-Adressbereich für die Überwachung von Redis-Sentinel-Servern

Bereich der GitLab-IP-Adressen, die berechtigt sind, die Redis-Sentinel-Server zu überwachen:

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

Variablen, die festgelegt werden müssen, wenn Gitaly extern verwendet wird

Schalter zur Verwendung einer externen Gitaly-Instanz

Setzen Sie den Schalter auf false, um eine externe Gitaly-Instanz zu aktivieren:

gitlab_use_internal_gitaly: 'false'

Pfad zum GitLab-Datenverzeichnis

Geben Sie an, wo das GitLab-Datenverzeichnis platziert werden soll:

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

Gitaly-Authentifizierungstoken

Ein Gitaly-Authentifizierungstoken muss angegeben werden:

gitlab_gitaly_token: 'changeme'

Vorsicht: Sie müssen hier Ihr eigenes privates und verschlüsseltes Passwort verwenden.

GitLab-Shell-Token

Ein GitLab-Shell-Token muss angegeben werden:

gitlab_secret_token: 'changeme'

Vorsicht: Sie müssen hier Ihr eigenes privates und verschlüsseltes Passwort verwenden.

Gitaly-IP-Adresse

Geben Sie die IP-Adresse der Gitaly-Instanz an:

gitlab_gitaly_instance_ip: '127.0.0.1'

Gitaly-Port

Geben Sie den Port der Gitaly-Instanz an:

gitlab_gitaly_instance_port: '8075'

Variablen, die festgelegt werden müssen, wenn eine externe PostgreSQL-Datenbank verwendet wird

Schalter zur Verwendung einer externen PostgreSQL-Datenbankinstanz

Setzen Sie den Schalter auf false, um eine externe PostgreSQL-Datenbankinstanz zu aktivieren:

gitlab_use_internal_postgresql: 'false'

IP-Adresse der externen PostgreSQL-Datenbankinstanz

Legen Sie die IP-Adresse der PostgreSQL-Datenbankinstanz fest:

gitlab_postgresql_db_host: '127.0.0.1'

Passwort für die externe PostgreSQL-Datenbankinstanz

Legen Sie das Passwort der PostgreSQL-Datenbankinstanz fest:

gitlab_postgresql_db_password: 'changeme'

Vorsicht: Sie müssen hier Ihr eigenes privates und verschlüsseltes Passwort verwenden.

GitLab-Registry konfigurieren

Aktivieren Sie die GitLab-Container-Registry:

gitlab_registry_enable: "true"

Bitte beachten: Wenn Sie keinen Load Balancer vor GitLab betreiben und NGinx sich um die SSL-Verschlüsselung kümmert, konfigurieren Sie bitte auch registry_nginx['ssl_certificate'] und registry_nginx['ssl_certificate_key'] über gitlab_additional_configurations.

Zusätzliche Konfigurationen, die als Rollenvariablen angegeben werden

Alle anderen Konfigurationen, die noch nicht Teil der GitLab-Konfigurationsdatei sind, können durch Ansible-Rollenvariablen angegeben werden.

Konfigurationen über dictionary-ähnliche Ruby-Variablen

Ruby-Variablen, die nicht Teil der GitLab-Konfigurationsdatei sind, können durch Ansible-Rollenvariablen angegeben werden.

Nutzungsbeispiel:

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"

Ergebnis der Konfiguration:

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

Konfigurationen über Ruby-Funktionsaufrufe

Ruby-Funktionsaufrufe, die nicht Teil der GitLab-Konfigurationsdatei sind, können durch Ansible-Rollenvariablen angegeben werden.

Nutzungsbeispiel:

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"

Ergebnis der Konfiguration:

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

Abhängigkeiten

Keine.

Lizenz

Apache-2.0

Autorinformationen

HIFIS Software-Team

Mitwirkende

Wir möchten uns bei den folgenden Mitwirkenden dieses Projekts bedanken:

Über das Projekt

Install and configure official GitLab Omnibus package

Installieren
ansible-galaxy install hifis.gitlab
GitHub Repository
Lizenz
other
Downloads
24.9k
Besitzer
Helmholtz Digital Services for Science — Collaboration made easy.