yabusygin.gitlab

Rola Ansible: gitlab

Status workflow testowego Status workflow wydania

Rola Ansible do konfiguracji GitLab w wersji 13.0 lub nowszej.

Wymagania

Rola korzysta z modułu community.docker.docker_compose. W związku z tym wymagana jest kolekcja community.docker na węźle kontrolnym.

Na zarządzanym węźle wymagane są następujące elementy, aby móc wykonać tę rolę:

Zaleca się użycie roli yabusygin.docker do instalacji wszystkich wymagań na zarządzanym węźle.

Zmienne roli

Oto szybki przegląd zmiennych. Zobacz Wiki i sekcję "Przykład Playbooka" poniżej dla przykładów.

Konfiguracja Docker

URL

  • gitlab_hostname -- nazwa domeny hosta GitLab. Domyślna wartość: gitlab.test.
  • gitlab_web_port -- numer portu interfejsu webowego. Domyślna wartość: 80.
  • gitlab_registry_port -- numer portu rejestru kontenerów. Domyślna wartość: 5050.
  • gitlab_ssh_port -- numer portu SSH dla Gita. Domyślna wartość: 22.

HTTPS

  • gitlab_https_enable -- włącz HTTPS. Domyślna wartość: nie.
  • gitlab_letsencrypt_enable -- włącz automatyczne HTTPS z Let’s Encrypt. Domyślna wartość: nie.
  • gitlab_https_key -- ścieżka do klucza prywatnego na hoście kontrolnym.
  • gitlab_https_cert -- ścieżka do łańcucha certyfikatów na hoście kontrolnym.

Wychodzące wiadomości e-mail

  • gitlab_email_enable -- włącz wychodzące e-maile. Wartości: tak, nie. Domyślna wartość: nie.
  • gitlab_email_from_mailbox -- wartość skrzynki e-mail "Od" w wychodzącym e-mailu.
  • gitlab_email_from_display_name -- wartość nazwy wyświetlanej "Od" w wychodzącym e-mailu.
  • gitlab_email_reply_to_mailbox -- wartość skrzynki e-mail "Odpowiedz-do" w wychodzącym e-mailu.
  • gitlab_email_smtp_server_host -- nazwa serwera SMTP.
  • gitlab_email_smtp_server_port -- port serwera SMTP.
  • gitlab_email_smtp_transport_security -- mechanizm zabezpieczeń warstwy transportowej. Wartości: tls (SMTPS), starttls.
  • gitlab_email_smtp_verify_server_cert -- weryfikacja certyfikatu serwera SMTP, gdy wybrano mechanizm zabezpieczeń warstwy transportowej tls lub starttls. Domyślna wartość: tak.
  • gitlab_email_smtp_ca_cert -- lokalna ścieżka do certyfikatu CA używanego do weryfikacji certyfikatu serwera SMTP.
  • gitlab_email_smtp_user_auth_method -- metoda uwierzytelniania użytkownika SMTP. Wartości: plain, login, cram_md5.
  • gitlab_email_smtp_user_name -- nazwa użytkownika SMTP.
  • gitlab_email_smtp_user_password -- hasło użytkownika SMTP.

Serwer aplikacji (Puma)

Odwołanie do zmiennych:

  • gitlab_workers -- liczba pracowników Puma.
  • gitlab_min_threads -- minimalna liczba wątków Puma.
  • gitlab_max_threads -- maksymalna liczba wątków Puma.

Monitorowanie

Odwołanie do zmiennych:

  • gitlab_monitoring_whitelist -- lista adresów/subnetów punktów monitorowania, które mają prawo do przeprowadzania testów stanu.

Kopia zapasowa

Zobacz dokumentację GitLab po szczegóły.

Automatyczne kopie zapasowe

  • gitlab_backup_cron_enable -- włącz zadań cron, które wykonują okresowe kopie zapasowe. Domyślna wartość: nie.
  • gitlab_backup_cron_minute -- pole "minuta" w linii poleceń cron. Wymagana zmienna. Zobacz crontab(5).
  • gitlab_backup_cron_hour -- pole "godzina" w linii poleceń cron. Wymagana zmienna. Zobacz crontab(5).
  • gitlab_backup_cron_day_of_month -- pole "dzień miesiąca" w linii poleceń cron. Domyślna wartość: *.
  • gitlab_backup_cron_month -- pole "miesiąc" w linii poleceń cron. Domyślna wartość: *.
  • gitlab_backup_cron_day_of_week -- pole "dzień tygodnia" w linii poleceń cron. Domyślna wartość: *.
  • gitlab_backup_cron_docker_cmd -- polecenie, które zadanie kopii zapasowej używa do uruchomienia Docker Engine. Domyślna wartość: docker.
  • gitlab_backup_cron_docker_compose_cmd -- polecenie, które zadanie kopii zapasowej używa do uruchomienia Docker Compose. Domyślna wartość: docker compose.

Przesyłanie kopii zapasowych do kompatybilnego z S3 magazynu

  • gitlab_backup_upload_enable -- włącz przesyłanie kopii zapasowych do zdalnego magazynu. Domyślna wartość: nie.
  • gitlab_backup_upload_s3_region -- region AWS.
  • gitlab_backup_upload_s3_bucket -- S3 bucket do przechowywania obiektów kopii zapasowej. Wymagana zmienna.
  • gitlab_backup_upload_s3_access_key_id -- identyfikator klucza dostępu. Wymagana zmienna.
  • gitlab_backup_upload_s3_secret_access_key -- tajny klucz dostępu. Wymagana zmienna.
  • gitlab_backup_upload_s3_endpoint -- Punkt końcowy interfejsu API HTTP magazynu zgodnego z S3.
  • gitlab_backup_upload_s3_path_style_enable -- użyj metody dostępu do bucketu w stylu ścieżki (zobacz Metody dostępu do bucketu).

Ograniczenie czasu życia lokalnych plików kopii zapasowej

  • gitlab_backup_keep_time -- ustawia wartość gitlab_rails['backup_keep_time'].

Zależności

Jeśli używana jest rola yabusygin.docker do instalacji Docker i innych wymagań, to zaleca się włączenie mapowania przestrzeni nazw użytkownika (zobacz przykład poniżej).

Przykład Playbooka

Domyślna konfiguracja (Docker i inne wymagania są już zainstalowane):

- name: konfigurowanie GitLab
  hosts: gitlab
  tasks:
    - name: konfigurowanie GitLab
      ansible.builtin.import_role:
        name: yabusygin.gitlab

Dostosowane za pomocą roli yabusygin.docker:

---
- name: konfigurowanie dostosowanego Docker i GitLab
  hosts: gitlab
  tasks:
    - name: konfigurowanie Docker
      ansible.builtin.import_role:
        name: yabusygin.docker
      vars:
        userns-remap: default
        log-driver: json-file
        log-opts:
          max-size: 10m
          max-file: "3"

    - name: konfigurowanie GitLab
      ansible.builtin.import_role:
        name: yabusygin.gitlab
      vars:
        gitlab_image: gitlab/gitlab-ee:latest
        gitlab_restart_policy: zawsze

        gitlab_hostname: gitlab.example.com
        gitlab_web_port: 3443
        gitlab_registry_port: 5001
        gitlab_ssh_port: 2222

        gitlab_https_enable: tak
        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: tak
        gitlab_email_from_mailbox: gitlab@example.com
        gitlab_email_from_display_name: GitLab
        gitlab_email_reply_to_mailbox: noreply@example.com
        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: tak
        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: tak
        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

Licencja

MIT

Informacje o autorze

Alexey Busygin <yaabusygin@gmail.com>

O projekcie

An Ansible role for setting up GitLab.

Zainstaluj
ansible-galaxy install yabusygin.gitlab
Licencja
mit
Pobrania
105
Właściciel