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