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.

CI

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.

Installer
ansible-galaxy install geerlingguy.gitlab
Licence
mit
Téléchargements
527.5k
Propriétaire
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns