yabusygin.gitlab
Ansible Rolle: gitlab
Eine Ansible Rolle zur Einrichtung von GitLab Version 13.0 oder neuer.
Anforderungen
Die Rolle verwendet das Modul community.docker.docker_compose. Daher ist die Sammlung community.docker auf einem Control-Node erforderlich.
Die folgenden Anforderungen sind auf einem verwalteten Node notwendig, um diese Rolle auszuführen:
- Docker Engine
- Docker Compose
- Anforderungen des community.docker.docker_compose Moduls
Es wird empfohlen, die Rolle yabusygin.docker zu verwenden, um alle Anforderungen auf dem verwalteten Node zu installieren.
Rollenvariablen
Hier ist eine schnelle Referenz für die Variablen. Siehe Wiki und den Abschnitt "Beispiel-Playbook" unten für Beispiele.
Docker-Konfiguration
gitlab_image
-- Docker-Container-Image, das verwendet werden soll. Standardwert:gitlab/gitlab-ce:latest
.gitlab_restart_policy
-- Docker-Container Neustart-Policy. Werte:always
,on-failure
,unless-stopped
. Docker startet einen Container standardmäßig unter keinen Umständen neu.
URL
gitlab_hostname
-- Domain-Name des GitLab-Hosts. Standardwert:gitlab.test
.gitlab_web_port
-- Portnummer für die Web-UI. Standardwert:80
.gitlab_registry_port
-- Portnummer für das Container-Registry. Standardwert:5050
.gitlab_ssh_port
-- Portnummer für Git-Shell-SSH. Standardwert:22
.
HTTPS
gitlab_https_enable
-- HTTPS aktivieren. Standard:nein
.gitlab_letsencrypt_enable
-- automatisiertes HTTPS mit Let’s Encrypt aktivieren. Standard:nein
.gitlab_https_key
-- Pfad zum privaten Schlüssel auf dem Control-Host.gitlab_https_cert
-- Pfad zur Zertifikatskette auf dem Control-Host.
Ausgehende E-Mails
gitlab_email_enable
-- ausgehende E-Mails aktivieren. Werte:ja
,nein
. Standardwert:nein
.gitlab_email_from_mailbox
-- Mailbox-Wert des "Von"-Headers in einer ausgehenden E-Mail.gitlab_email_from_display_name
-- Anzeigename-Wert des "Von"-Headers in einer ausgehenden E-Mail.gitlab_email_reply_to_mailbox
-- Mailbox-Wert des "Antwort-an"-Headers in einer ausgehenden E-Mail.gitlab_email_smtp_server_host
-- Name des SMTP-Servers.gitlab_email_smtp_server_port
-- Port des SMTP-Servers.gitlab_email_smtp_transport_security
-- Sicherheitsmechanismus der Transportschicht. Werte:tls
(SMTPS),starttls
.gitlab_email_smtp_verify_server_cert
-- Zertifikat des SMTP-Servers überprüfen, wenntls
oderstarttls
als Sicherheitsmechanismus gewählt ist. Standardwert:ja
.gitlab_email_smtp_ca_cert
-- lokaler Pfad zum CA-Zertifikat zur Überprüfung des SMTP-Serverzertifikats.gitlab_email_smtp_user_auth_method
-- Authentifizierungsmethode für den SMTP-Benutzer. Werte:plain
,login
,cram_md5
.gitlab_email_smtp_user_name
-- SMTP-Benutzername.gitlab_email_smtp_user_password
-- SMTP-Benutzerpasswort.
Anwendungsserver (Puma)
Variablenreferenz:
gitlab_workers
-- Anzahl der Puma Worker.gitlab_min_threads
-- minimale Anzahl von Puma-Threads.gitlab_max_threads
-- maximale Anzahl von Puma-Threads.
Monitoring
Variablenreferenz:
gitlab_monitoring_whitelist
-- eine Liste von Adressen/Subnetzen der Monitoring-Endpunkte, die zulässig sind, um Gesundheitsprüfungen durchzuführen.
Backup
Siehe GitLab-Dokumentation für Details.
Automatisierte Backups
gitlab_backup_cron_enable
-- Cron-Job aktivieren, der regelmäßige Backups durchführt. Standardwert:nein
.gitlab_backup_cron_minute
-- ein "Minute"-Feld der Cron-Befehlszeile. Pflichtvariable. Siehecrontab(5)
.gitlab_backup_cron_hour
-- ein "Stunde"-Feld der Cron-Befehlszeile. Pflichtvariable. Siehecrontab(5)
.gitlab_backup_cron_day_of_month
-- ein "Tag des Monats"-Feld der Cron-Befehlszeile. Standardwert:*
.gitlab_backup_cron_month
-- ein "Monat"-Feld der Cron-Befehlszeile. Standardwert:*
.gitlab_backup_cron_day_of_week
-- ein "Tag der Woche"-Feld der Cron-Befehlszeile. Standardwert:*
.gitlab_backup_cron_docker_cmd
-- Befehl, den der Backup-Cron-Job verwendet, um die Docker-Engine aufzurufen. Standard:docker
.gitlab_backup_cron_docker_compose_cmd
-- Befehl, den der Backup-Cron-Job verwendet, um Docker Compose aufzurufen. Standard:docker compose
.
Backups in S3-kompatiblen Speicher hochladen
gitlab_backup_upload_enable
-- Aktivieren des Hochladens von Backups in den Remote-Speicher. Standardwert:nein
.gitlab_backup_upload_s3_region
-- AWS Region.gitlab_backup_upload_s3_bucket
-- S3 Bucket zum Speichern von Backup-Objekten. Pflichtvariable.gitlab_backup_upload_s3_access_key_id
-- Zugriffsschlüssel-ID. Pflichtvariable.gitlab_backup_upload_s3_secret_access_key
-- geheimer Zugriffsschlüssel. Pflichtvariable.gitlab_backup_upload_s3_endpoint
-- HTTP-API-Endpunkt für S3-kompatiblen Speicher.gitlab_backup_upload_s3_path_style_enable
-- den path-style-Methode für den Zugriff auf einen Bucket verwenden (siehe Methoden für den Zugriff auf einen Bucket).
Lebensdauer von lokalen Backup-Dateien begrenzen
gitlab_backup_keep_time
-- setzt den Wert vongitlab_rails['backup_keep_time']
.
Abhängigkeiten
Wenn die Rolle yabusygin.docker zur Installation von Docker und anderen Anforderungen verwendet wird, wird empfohlen, User Namespace Remapping zu aktivieren (siehe das Beispiel unten).
Beispiel-Playbook
Standardsetup (Docker und andere Anforderungen sind bereits installiert):
- name: GitLab einrichten
hosts: gitlab
tasks:
- name: GitLab einrichten
ansible.builtin.import_role:
name: yabusygin.gitlab
Angepasst mit der Rolle yabusygin.docker:
---
- name: Angepasstes Docker und GitLab einrichten
hosts: gitlab
tasks:
- name: Docker einrichten
ansible.builtin.import_role:
name: yabusygin.docker
vars:
userns-remap: default
log-driver: json-file
log-opts:
max-size: 10m
max-file: "3"
- name: GitLab einrichten
ansible.builtin.import_role:
name: yabusygin.gitlab
vars:
gitlab_image: gitlab/gitlab-ee:latest
gitlab_restart_policy: always
gitlab_hostname: gitlab.example.com
gitlab_web_port: 3443
gitlab_registry_port: 5001
gitlab_ssh_port: 2222
gitlab_https_enable: ja
gitlab_https_key: https/gitlab.key.pem
gitlab_https_cert: https/gitlab.crt.pem
gitlab_workers: 2
gitlab_min_threads: 4
gitlab_max_threads: 4
gitlab_monitoring_whitelist:
- 192.168.10.39
- 10.0.1.0/24
gitlab_email_enable: ja
gitlab_email_from_mailbox: [email protected]
gitlab_email_from_display_name: GitLab
gitlab_email_reply_to_mailbox: [email protected]
gitlab_email_smtp_server_host: smtp.example.com
gitlab_email_smtp_server_port: 587
gitlab_email_smtp_transport_security: starttls
gitlab_email_smtp_user_auth_method: login
gitlab_email_smtp_user_name: gitlab
gitlab_email_smtp_user_password: Pa$$w0rD
gitlab_backup_cron_enable: ja
gitlab_backup_cron_minute: 0
gitlab_backup_cron_hour: 2
gitlab_backup_cron_docker_cmd: /usr/bin/docker
gitlab_backup_cron_docker_compose_cmd: /usr/local/bin/docker-compose
gitlab_backup_upload_enable: ja
gitlab_backup_upload_type: s3
gitlab_backup_upload_s3_endpoint: https://ams3.digitaloceanspaces.com
gitlab_backup_upload_s3_region: ams3
gitlab_backup_upload_s3_bucket: my.s3.bucket
gitlab_backup_upload_s3_access_key_id: AKIAKIAKI
gitlab_backup_upload_s3_secret_access_key: secret123
gitlab_backup_keep_time: 604800
Lizenz
MIT
Autoreninformation
Alexey Busygin <yaabusygin@gmail.com>