geerlingguy.gitlab
Rola Ansible: GitLab
Wycofane: W wrześniu 2023 roku wycofałem tę rolę, ponieważ już nie utrzymuję żadnych instancji GitLab i używam Gitea do mojej pracy osobistej. Proszę rozważyć stworzenie własnej wersji tej roli lub skorzystanie z roli GitLab stworzonej przez kogoś innego.
Instaluje GitLab, interfejs oparty na Ruby do Gita, na systemie Linux RedHat/CentOS lub Debian/Ubuntu.
Dane logowania do domyślnego konta administratora GitLab są poniżej; upewnij się, że zalogujesz się natychmiast po instalacji i zmienisz te dane!
root
5iveL!fe
Wymagania
Brak.
Zmienne Roli
Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (zobacz defaults/main.yml
):
gitlab_domain: gitlab
gitlab_external_url: "https://{{ gitlab_domain }}/"
Domena i URL, pod którymi instancja GitLab będzie dostępna. Ustawione jako external_url
w pliku konfiguracyjnym gitlab.rb
. Jeśli chcesz uruchomić GitLab na innym porcie (oprócz 80/443), możesz to tutaj określić (np. https://gitlab:8443/
dla portu 8443).
gitlab_git_data_dir: "/var/opt/gitlab/git-data"
gitlab_git_data_dir
to lokalizacja, w której będą przechowywane wszystkie repozytoria Git. Możesz użyć wspólnego dysku lub dowolnej ścieżki na systemie.
gitlab_backup_path: "/var/opt/gitlab/backups"
gitlab_backup_path
to lokalizacja, w której będą przechowywane kopie zapasowe GitLab.
gitlab_edition: "gitlab-ce"
Edycja GitLab do zainstalowania. Zwykle to gitlab-ce
(Edycja Społecznościowa) lub gitlab-ee
(Edycja Enterprise).
gitlab_version: ''
Jeśli chcesz zainstalować określoną wersję, ustaw wersję tutaj (np. 11.4.0-ce.0
dla Debian/Ubuntu, lub 11.4.0-ce.0.el7
dla RedHat/CentOS).
gitlab_config_template: "gitlab.rb.j2"
Szablon gitlab.rb.j2
, który jest dostarczany z tą rolą, ma być bardzo ogólny i służyć różnym przypadkom użycia. Jeśli chcesz mieć bardziej spersonalizowaną wersję, możesz zastąpić domyślny szablon tej roli własnym, dodając dodatkowe modyfikacje, które potrzebujesz. Aby to zrobić:
- Utwórz katalog
templates
na tym samym poziomie co twój playbook. - Utwórz plik
templates/mygitlab.rb.j2
(możesz wybrać inną nazwę niż domyślny szablon). - Ustaw zmienną jak:
gitlab_config_template: mygitlab.rb.j2
(z nazwą twojego niestandardowego szablonu).
Konfiguracja SSL.
gitlab_redirect_http_to_https: true
gitlab_ssl_certificate: "/etc/gitlab/ssl/{{ gitlab_domain }}.crt"
gitlab_ssl_certificate_key: "/etc/gitlab/ssl/{{ gitlab_domain }}.key"
Konfiguracja SSL GitLab; informuje GitLab, aby przekierowywał zwykłe zapytania http do https, oraz podaje ścieżkę do certyfikatu i klucza (domyślne wartości będą działać dla automatycznego tworzenia certyfikatu samopodpisanego, jeśli ustawione na true
w poniższej zmiennej).
# Konfiguracja samopodpisanego certyfikatu SSL.
gitlab_create_self_signed_cert: true
gitlab_self_signed_cert_subj: "/C=US/ST=Missouri/L=Saint Louis/O=IT/CN={{ gitlab_domain }}"
Czy utworzyć certyfikat samopodpisany do obsługi GitLab przez bezpieczne połączenie. Ustaw gitlab_self_signed_cert_subj
zgodnie z lokalizacją i organizacją.
Konfiguracja LetsEncrypt.
gitlab_letsencrypt_enable: false
gitlab_letsencrypt_contact_emails: ["[email protected]"]
gitlab_letsencrypt_auto_renew_hour: 1
gitlab_letsencrypt_auto_renew_minute: 30
gitlab_letsencrypt_auto_renew_day_of_month: "*/7"
gitlab_letsencrypt_auto_renew: true
Konfiguracja LetsEncrypt GitLab; informuje GitLab, czy złożyć wniosek o certyfikat od LetsEncrypt, jeśli gitlab_letsencrypt_enable
jest ustawione na true
. Można skonfigurować wiele adresów e-mail kontaktowych w gitlab_letsencrypt_contact_emails
jako listę.
# Konfiguracja LDAP.
gitlab_ldap_enabled: false
gitlab_ldap_host: "example.com"
gitlab_ldap_port: "389"
gitlab_ldap_uid: "sAMAccountName"
gitlab_ldap_method: "plain"
gitlab_ldap_bind_dn: "CN=Username,CN=Users,DC=example,DC=com"
gitlab_ldap_password: "password"
gitlab_ldap_base: "DC=example,DC=com"
Konfiguracja LDAP GitLab; jeśli gitlab_ldap_enabled
jest true
, reszta konfiguracji wskaże GitLab, jak połączyć się z serwerem LDAP w celu centralnej autoryzacji.
gitlab_dependencies:
- openssh-server
- postfix
- curl
- openssl
- tzdata
Zależności wymagane przez GitLab dla niektórej funkcjonalności, jak wsparcie strefy czasowej czy e-mail. Możesz zmienić tę listę w swoim playbooku, jeśli np. chcesz zainstalować exim
zamiast postfix
.
gitlab_time_zone: "UTC"
Strefa czasowa GitLab.
gitlab_backup_keep_time: "604800"
Jak długo przechowywać lokalne kopie zapasowe (przydatne, jeśli nie chcesz, aby kopie zapasowe zapełniały dysk!).
gitlab_download_validate_certs: true
Kontroluje, czy certyfikaty mają być weryfikowane podczas pobierania skryptu instalacyjnego repozytorium GitLab.
# Konfiguracja e-mail.
gitlab_email_enabled: false
gitlab_email_from: "[email protected]"
gitlab_email_display_name: "Gitlab"
gitlab_email_reply_to: "[email protected]"
Konfiguracja systemowej poczty GitLab. Domyślnie wyłączona; ustaw gitlab_email_enabled
na true
, aby ją włączyć, a także upewnij się, że wprowadziłeś poprawne wartości from
i reply-to
.
# Konfiguracja SMTP
gitlab_smtp_enable: false
gitlab_smtp_address: "smtp.server"
gitlab_smtp_port: "465"
gitlab_smtp_user_name: "smtp user"
gitlab_smtp_password: "smtp password"
gitlab_smtp_domain: "example.com"
gitlab_smtp_authentication: "login"
gitlab_smtp_enable_starttls_auto: true
gitlab_smtp_tls: false
gitlab_smtp_openssl_verify_mode: "none"
gitlab_smtp_ca_path: "/etc/ssl/certs"
gitlab_smtp_ca_file: "/etc/ssl/certs/ca-certificates.crt"
Konfiguracja SMTP GitLab; jeśli gitlab_smtp_enable
jest true
, reszta konfiguracji wskaże GitLab, jak wysyłać e-maile za pomocą serwera smtp.
gitlab_nginx_listen_port: 8080
Jeśli uruchamiasz GitLab za proxy odwrotnym, możesz chcieć zmienić port, na którym nasłuchuje.
gitlab_nginx_listen_https: false
Jeśli uruchamiasz GitLab za proxy odwrotnym, chcesz, aby SSL zostało zakończone na innym serwerze proxy lub load balancerze.
gitlab_nginx_ssl_verify_client: ""
gitlab_nginx_ssl_client_certificate: ""
Jeśli chcesz włączyć uwierzytelnianie klienta SSL w obu kierunkach, ustaw gitlab_nginx_ssl_verify_client
i dodaj ścieżkę do certyfikatu klienta w gitlab_nginx_ssl_client_certificate
.
gitlab_default_theme: 2
GitLab zawiera szereg motywów, a tą zmienną możesz ustawić domyślny dla wszystkich użytkowników. Zobacz wbudowane motywy GitLab, aby wybrać domyślny.
gitlab_extra_settings:
- gitlab_rails:
- key: "trusted_proxies"
value: "['foo', 'bar']"
- key: "env"
type: "plain"
value: |
{
"http_proxy" => "https://my_http_proxy.company.com:3128",
"https_proxy" => "https://my_http_proxy.company.com:3128",
"no_proxy" => "localhost, 127.0.0.1, company.com"
}
- unicorn:
- key: "worker_processes"
value: 5
- key: "pidfile"
value: "/opt/gitlab/var/unicorn/unicorn.pid"
GitLab ma wiele innych ustawień (zobacz oficjalną dokumentację), a możesz je dodać za pomocą specjalnej zmiennej gitlab_extra_settings
z odpowiednimi ustawieniami oraz słowami kluczowymi key
i value
.
Zależności
Brak.
Przykładowy Playbook
- hosts: servers
vars_files:
- vars/main.yml
roles:
- { role: geerlingguy.gitlab }
W pliku vars/main.yml
:
gitlab_external_url: "https://gitlab.example.com/"
Licencja
MIT / BSD
Informacje o autorze
Ta rola została stworzona w 2014 roku przez Jeffa Geerlinga, autora Ansible dla DevOps.
ansible-galaxy install geerlingguy.gitlab