yabusygin.gitlab

Ansible Rolle: gitlab

Test-Workflow-Status Release-Workflow-Status

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:

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, wenn tls oder starttls 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. Siehe crontab(5).
  • gitlab_backup_cron_hour -- ein "Stunde"-Feld der Cron-Befehlszeile. Pflichtvariable. Siehe crontab(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 von gitlab_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>

Über das Projekt

An Ansible role for setting up GitLab.

Installieren
ansible-galaxy install yabusygin.gitlab
GitHub Repository
Lizenz
mit
Downloads
105
Besitzer