geerlingguy.gitlab
Rôle Ansible : GitLab
Obsolète : En septembre 2023, j'ai rendu ce rôle obsolète car je ne maintiens plus d'instances GitLab et j'utilise Gitea à la place pour mon travail personnel. Veuillez envisager de forker ce rôle ou d'utiliser le rôle GitLab de quelqu'un d'autre.
Installe GitLab, une interface Ruby pour Git, sur n'importe quel système Linux RedHat/CentOS ou Debian/Ubuntu.
Les informations par défaut du compte administrateur de GitLab sont ci-dessous ; assurez-vous de vous connecter immédiatement après l'installation et de changer ces identifiants !
root
5iveL!fe
Exigences
Aucune.
Variables de rôle
Les variables disponibles sont listées ci-dessous avec leurs valeurs par défaut (voir defaults/main.yml
) :
gitlab_domain: gitlab
gitlab_external_url: "https://{{ gitlab_domain }}/"
Le domaine et l'URL à partir desquels l'instance GitLab sera accessible. Cela est défini comme le paramètre de configuration external_url
dans gitlab.rb
. Si vous souhaitez exécuter GitLab sur un port différent (autre que 80/443), vous pouvez spécifier le port ici (par exemple https://gitlab:8443/
pour le port 8443).
gitlab_git_data_dir: "/var/opt/gitlab/git-data"
Le gitlab_git_data_dir
est l'emplacement où tous les dépôts Git seront stockés. Vous pouvez utiliser un disque partagé ou tout chemin sur le système.
gitlab_backup_path: "/var/opt/gitlab/backups"
Le gitlab_backup_path
est l'emplacement où les sauvegardes de GitLab seront stockées.
gitlab_edition: "gitlab-ce"
L'édition de GitLab à installer. En général, soit gitlab-ce
(Édition Communautaire) ou gitlab-ee
(Édition Entreprise).
gitlab_version: ''
Si vous souhaitez installer une version spécifique, définissez la version ici (par exemple, 11.4.0-ce.0
pour Debian/Ubuntu, ou 11.4.0-ce.0.el7
pour RedHat/CentOS).
gitlab_config_template: "gitlab.rb.j2"
Le modèle gitlab.rb.j2
fourni avec ce rôle est conçu pour être très générique et répondre à divers cas d'utilisation. Toutefois, de nombreuses personnes préfèrent avoir une version beaucoup plus personnalisée, vous pouvez donc remplacer le modèle par défaut de ce rôle par le vôtre en ajoutant les personnalisations nécessaires. Pour ce faire :
- Créez un répertoire
templates
au même niveau que votre playbook. - Créez un fichier
templates\mygitlab.rb.j2
(choisissez simplement un nom différent du modèle par défaut). - Définissez la variable comme suit :
gitlab_config_template: mygitlab.rb.j2
(avec le nom de votre modèle personnalisé).
Configuration 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"
Configuration SSL de GitLab ; indique à GitLab de rediriger les requêtes http normales vers https, ainsi que le chemin vers le certificat et la clé (les valeurs par défaut fonctionneront pour la création automatique d'un certificat auto-signé, si elles sont définies sur true
dans la variable ci-dessous).
# Configuration du certificat auto-signé SSL.
gitlab_create_self_signed_cert: true
gitlab_self_signed_cert_subj: "/C=US/ST=Missouri/L=Saint Louis/O=IT/CN={{ gitlab_domain }}"
Indique si un certificat auto-signé doit être créé pour servir GitLab sur une connexion sécurisée. Définissez gitlab_self_signed_cert_subj
selon votre localité et votre organisation.
Configuration 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
Configuration LetsEncrypt de GitLab ; indique si GitLab doit demander et utiliser un certificat de LetsEncrypt, si gitlab_letsencrypt_enable
est défini sur true
. Plusieurs adresses e-mail de contact peuvent être configurées sous gitlab_letsencrypt_contact_emails
sous forme de liste.
# Configuration 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"
Configuration LDAP de GitLab ; si gitlab_ldap_enabled
est true
, le reste de la configuration indiquera à GitLab comment se connecter à un serveur LDAP pour une authentification centralisée.
gitlab_dependencies:
- openssh-server
- postfix
- curl
- openssl
- tzdata
Dépendances requises par GitLab pour certaines fonctionnalités, comme le support des fuseaux horaires ou l'e-mail. Vous pouvez modifier cette liste dans votre propre playbook si, par exemple, vous souhaitez installer exim
au lieu de postfix
.
gitlab_time_zone: "UTC"
Fuseau horaire de GitLab.
gitlab_backup_keep_time: "604800"
Durée de conservation des sauvegardes locales (utile si vous ne souhaitez pas que les sauvegardes saturent votre disque !).
gitlab_download_validate_certs: true
Contrôle si les certificats doivent être validés lors du téléchargement du script d'installation du dépôt GitLab.
# Configuration de l'e-mail.
gitlab_email_enabled: false
gitlab_email_from: "[email protected]"
gitlab_email_display_name: "Gitlab"
gitlab_email_reply_to: "[email protected]"
Configuration de l'e-mail du système GitLab. Désactivée par défaut ; définissez gitlab_email_enabled
sur true
pour l'activer et assurez-vous de saisir des valeurs valides pour "de" et "répondre à".
# Configuration SMTP
gitlab_smtp_enable: false
gitlab_smtp_address: "smtp.server"
gitlab_smtp_port: "465"
gitlab_smtp_user_name: "utilisateur smtp"
gitlab_smtp_password: "mot de passe smtp"
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"
Configuration SMTP de GitLab ; si gitlab_smtp_enable
est true
, le reste de la configuration indiquera à GitLab comment envoyer des e-mails en utilisant un serveur SMTP.
gitlab_nginx_listen_port: 8080
Si vous exécutez GitLab derrière un proxy inverse, vous voudrez peut-être remplacer le port d'écoute par un autre.
gitlab_nginx_listen_https: false
Si vous exécutez GitLab derrière un proxy inverse, vous souhaiterez peut-être terminer le SSL sur un autre serveur proxy ou un équilibreur de charge.
gitlab_nginx_ssl_verify_client: ""
gitlab_nginx_ssl_client_certificate: ""
Si vous souhaitez activer l'authentification par client SSL à deux voies, définissez gitlab_nginx_ssl_verify_client
et ajoutez un chemin vers le certificat client dans gitlab_nginx_ssl_client_certificate
.
gitlab_default_theme: 2
GitLab comprend plusieurs thèmes, et vous pouvez définir le thème par défaut pour tous les utilisateurs avec cette variable. Voir les thèmes GitLab inclus pour choisir un thème par défaut.
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 a de nombreux autres paramètres (voir la documentation officielle), et vous pouvez les ajouter avec cette variable spéciale gitlab_extra_settings
avec le paramètre concerné et les mots-clés key
et value
.
Dépendances
Aucune.
Exemple de Playbook
- hosts: servers
vars_files:
- vars/main.yml
roles:
- { role: geerlingguy.gitlab }
À l'intérieur de vars/main.yml
:
gitlab_external_url: "https://gitlab.example.com/"
Licence
MIT / BSD
Informations sur l'Auteur
Ce rôle a été créé en 2014 par Jeff Geerling, auteur de Ansible for DevOps.
GitLab Git web interface
ansible-galaxy install geerlingguy.gitlab