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 transportowejtlslubstarttls. 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: [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: 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