yabusygin.gitlab
Rola Ansible: gitlab
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ę:
- Docker Engine
- Docker Compose
- Wymagania modułu community.docker.docker_compose
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
gitlab_image
-- Obraz kontenera Docker do użycia. Domyślna wartość:gitlab/gitlab-ce:latest
.gitlab_restart_policy
-- polityka ponownego uruchamiania kontenera Docker. Wartości:zawsze
,na-błąd
,chyba-zatrzymany
. Kontener Docker nie uruchamia się ponownie w żadnym przypadku domyślnie.
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 transportowejtls
lubstarttls
. 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. Zobaczcrontab(5)
.gitlab_backup_cron_hour
-- pole "godzina" w linii poleceń cron. Wymagana zmienna. Zobaczcrontab(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>
ansible-galaxy install yabusygin.gitlab