hifis.gitlab
GitLab Ansible Rolle
:warning: Dieses Projekt ist archiviert! :warning:
Diese Rolle wurde in unsere hifis.toolkit Sammlung migriert:
- https://github.com/hifis-net/ansible-collection-toolkit
- https://galaxy.ansible.com/ui/repo/published/hifis/toolkit/
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
Autorinformationen
Mitwirkende
Wir möchten uns bei den folgenden Mitwirkenden dieses Projekts bedanken:
ansible-galaxy install hifis.gitlab