geerlingguy.gitlab
Ansible Rolle: GitLab
Veraltet: Im September 2023 habe ich diese Rolle eingestellt, da ich keine GitLab-Instanzen mehr verwalte und stattdessen Gitea für meine persönliche Arbeit verwende. Bitte überlegen Sie, diese Rolle zu forken oder die Rolle eines anderen Benutzers zu verwenden.
Installiert GitLab, ein Ruby-basiertes Frontend für Git, auf jedem RedHat/CentOS- oder Debian/Ubuntu-Linux-System.
Die Standardadministrator-Kontodaten von GitLab sind unten aufgeführt; melden Sie sich sofort nach der Installation an und ändern Sie diese Anmeldedaten!
root
5iveL!fe
Anforderungen
Keine.
Rollenvariablen
Verfügbare Variablen sind unten aufgeführt, zusammen mit Standardwerten (siehe defaults/main.yml
):
gitlab_domain: gitlab
gitlab_external_url: "https://{{ gitlab_domain }}/"
Die Domain und URL, unter der die GitLab-Instanz erreichbar sein wird. Dies wird als external_url
-Konfigurationseinstellung in gitlab.rb
festgelegt. Wenn Sie GitLab auf einem anderen Port (neben 80/443) ausführen möchten, können Sie den Port hier angeben (z. B. https://gitlab:8443/
für Port 8443).
gitlab_git_data_dir: "/var/opt/gitlab/git-data"
gitlab_git_data_dir
ist der Speicherort, an dem alle Git-Repositorys gespeichert werden. Sie können ein freigegebenes Laufwerk oder einen beliebigen Pfad auf dem System verwenden.
gitlab_backup_path: "/var/opt/gitlab/backups"
gitlab_backup_path
ist der Speicherort, an dem die GitLab-Backups gespeichert werden.
gitlab_edition: "gitlab-ce"
Die Ausgabe von GitLab, die installiert werden soll. In der Regel entweder gitlab-ce
(Community Edition) oder gitlab-ee
(Enterprise Edition).
gitlab_version: ''
Wenn Sie eine bestimmte Version installieren möchten, geben Sie die Version hier an (z. B. 11.4.0-ce.0
für Debian/Ubuntu oder 11.4.0-ce.0.el7
für RedHat/CentOS).
gitlab_config_template: "gitlab.rb.j2"
Die gitlab.rb.j2
-Vorlage, die mit dieser Rolle geliefert wird, ist sehr allgemein gehalten und bedient eine Vielzahl von Anwendungsfällen. Viele Menschen möchten jedoch eine individuellere Version, daher können Sie die Standardvorlage dieser Rolle durch Ihre eigene ersetzen und alle zusätzlichen Anpassungen hinzufügen, die Sie benötigen. Um dies zu tun:
- Erstellen Sie ein Verzeichnis
templates
auf derselben Ebene wie Ihr Playbook. - Erstellen Sie eine Datei
templates\mygitlab.rb.j2
(wählen Sie einfach einen anderen Namen als die Standardvorlage). - Setzen Sie die Variable wie:
gitlab_config_template: mygitlab.rb.j2
(mit dem Namen Ihrer benutzerdefinierten Vorlage).
SSL-Konfiguration.
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"
GitLab SSL-Konfiguration; weist GitLab an, normale HTTP-Anfragen auf HTTPS umzuleiten, und gibt den Pfad zum Zertifikat und Schlüssel an (die Standardwerte funktionieren für die automatische Erstellung eines selbstsignierten Zertifikats, wenn auf true
in der unten stehenden Variable gesetzt).
# SSL Selbstsigniertes Zertifikat Konfiguration.
gitlab_create_self_signed_cert: true
gitlab_self_signed_cert_subj: "/C=DE/ST=Baden-Württemberg/L=Stuttgart/O=IT/CN={{ gitlab_domain }}"
Ob ein selbstsigniertes Zertifikat erstellt werden soll, um GitLab über eine sichere Verbindung bereitzustellen. Setzen Sie gitlab_self_signed_cert_subj
entsprechend Ihrem Standort und Ihrer Organisation.
LetsEncrypt-Konfiguration.
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
GitLab LetsEncrypt-Konfiguration; weist GitLab an, ob ein Zertifikat von LetsEncrypt angefordert und verwendet werden soll, wenn gitlab_letsencrypt_enable
auf true
gesetzt ist. Mehrere Kontakt-E-Mails können unter gitlab_letsencrypt_contact_emails
als Liste konfiguriert werden.
# LDAP-Konfiguration.
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=Benutzername,CN=Benutzer,DC=example,DC=com"
gitlab_ldap_password: "passwort"
gitlab_ldap_base: "DC=example,DC=com"
GitLab LDAP-Konfiguration; wenn gitlab_ldap_enabled
auf true
gesetzt ist, wird GitLab mit den restlichen Konfigurationen verbunden, um sich mit einem LDAP-Server für die zentrale Authentifizierung zu verbinden.
gitlab_dependencies:
- openssh-server
- postfix
- curl
- openssl
- tzdata
Abhängigkeiten, die von GitLab für bestimmte Funktionen erforderlich sind, wie Zeitzonenunterstützung oder E-Mail. Sie können diese Liste in Ihrem eigenen Playbook ändern, wenn Sie beispielsweise exim
anstelle von postfix
installieren möchten.
gitlab_time_zone: "UTC"
Zeitzone von GitLab.
gitlab_backup_keep_time: "604800"
Wie lange lokale Backups aufbewahrt werden sollen (nützlich, wenn Sie nicht möchten, dass Backups Ihren Speicherplatz füllen!).
gitlab_download_validate_certs: true
Steuert, ob Zertifikate beim Herunterladen des Installationsskripts aus dem GitLab-Repository validiert werden sollen.
# E-Mail-Konfiguration.
gitlab_email_enabled: false
gitlab_email_from: "[email protected]"
gitlab_email_display_name: "GitLab"
gitlab_email_reply_to: "[email protected]"
E-Mail-Systemkonfiguration von GitLab. Standardmäßig deaktiviert; setzen Sie gitlab_email_enabled
auf true
, um es zu aktivieren, und geben Sie validierte Absender-/Antwortwerte ein.
# SMTP-Konfiguration
gitlab_smtp_enable: false
gitlab_smtp_address: "smtp.server"
gitlab_smtp_port: "465"
gitlab_smtp_user_name: "smtp benutzer"
gitlab_smtp_password: "smtp passwort"
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"
SMTP-Konfiguration von GitLab; wenn gitlab_smtp_enable
auf true
gesetzt ist, wird GitLab mit den restlichen Konfigurationen verbunden, um E-Mails über einen SMTP-Server zu senden.
gitlab_nginx_listen_port: 8080
Wenn Sie GitLab hinter einem Reverse Proxy ausführen, möchten Sie möglicherweise den Listenport auf einen anderen Wert ändern.
gitlab_nginx_listen_https: false
Wenn Sie GitLab hinter einem Reverse Proxy ausführen, möchten Sie möglicherweise SSL an einem anderen Proxy-Server oder Lastenausgleichsterminal beenden.
gitlab_nginx_ssl_verify_client: ""
gitlab_nginx_ssl_client_certificate: ""
Wenn Sie die zwei-Wege-SSL-Client-Authentifizierung aktivieren möchten, setzen Sie gitlab_nginx_ssl_verify_client
und fügen Sie einen Pfad zum Client-Zertifikat in gitlab_nginx_ssl_client_certificate
hinzu.
gitlab_default_theme: 2
GitLab enthält eine Reihe von Themen, und Sie können das Standardthema für alle Benutzer mit dieser Variablen festlegen. Siehe die enthaltenen GitLab-Themen, um ein Standardthema auszuwählen.
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 bietet viele weitere Einstellungen (siehe offizielle Dokumentation), und Sie können sie mit dieser speziellen Variablen gitlab_extra_settings
hinzufügen, indem Sie die entsprechenden Einstellungen sowie die Schlüssel- und Wertepaare angeben.
Abhängigkeiten
Keine.
Beispiel-Playbook
- hosts: servers
vars_files:
- vars/main.yml
roles:
- { role: geerlingguy.gitlab }
In vars/main.yml
:
gitlab_external_url: "https://gitlab.example.com/"
Lizenz
MIT / BSD
Autor-Information
Diese Rolle wurde 2014 von Jeff Geerling erstellt, Autor von Ansible für DevOps.
ansible-galaxy install geerlingguy.gitlab