yabusygin.gitlab

Rôle Ansible : gitlab

Statut du flux de travail de test Statut du flux de travail de publication

Un rôle Ansible pour mettre en place GitLab version 13.0 ou plus récent.

Exigences

Le rôle utilise le module community.docker.docker_compose. Par conséquent, la collection community.docker est requise sur un nœud de contrôle.

Les exigences suivantes sont nécessaires sur un nœud géré pour exécuter ce rôle :

Il est recommandé d'utiliser le rôle yabusygin.docker pour installer toutes les exigences sur le nœud géré.

Variables du Rôle

Voici un rapide aperçu des variables. Consultez la Wiki et la section "Exemple de Playbook" ci-dessous pour des exemples.

Configuration Docker

URL

  • gitlab_hostname -- nom de domaine de l'hôte GitLab. Valeur par défaut : gitlab.test.
  • gitlab_web_port -- numéro de port de l'interface web. Valeur par défaut : 80.
  • gitlab_registry_port -- numéro de port du registre de conteneurs. Valeur par défaut : 5050.
  • gitlab_ssh_port -- numéro de port SSH pour Git. Valeur par défaut : 22.

HTTPS

  • gitlab_https_enable -- activer HTTPS. Valeur par défaut : no.
  • gitlab_letsencrypt_enable -- activer HTTPS automatisé avec Let’s Encrypt. Valeur par défaut : no.
  • gitlab_https_key -- chemin vers la clé privée sur l'hôte de contrôle.
  • gitlab_https_cert -- chemin vers la chaîne de certificats sur l'hôte de contrôle.

Emails Sortants

  • gitlab_email_enable -- activer les emails sortants. Valeurs : yes, no. Valeur par défaut : no.
  • gitlab_email_from_mailbox -- valeur de la boîte aux lettres de l'en-tête "From" dans un email sortant.
  • gitlab_email_from_display_name -- valeur du nom d'affichage de l'en-tête "From" dans un email sortant.
  • gitlab_email_reply_to_mailbox -- valeur de la boîte aux lettres de l'en-tête "Reply-To" dans un email sortant.
  • gitlab_email_smtp_server_host -- nom du serveur SMTP.
  • gitlab_email_smtp_server_port -- port du serveur SMTP.
  • gitlab_email_smtp_transport_security -- mécanisme de sécurité de couche de transport. Valeurs : tls (SMTPS), starttls.
  • gitlab_email_smtp_verify_server_cert -- vérifier le certificat du serveur SMTP, lorsque le mécanisme de sécurité de couche de transport tls ou starttls est sélectionné. Valeur par défaut : yes.
  • gitlab_email_smtp_ca_cert -- chemin local vers le certificat CA utilisé pour vérifier le certificat du serveur SMTP.
  • gitlab_email_smtp_user_auth_method -- méthode d'authentification de l'utilisateur SMTP. Valeurs : plain, login, cram_md5.
  • gitlab_email_smtp_user_name -- nom d'utilisateur SMTP.
  • gitlab_email_smtp_user_password -- mot de passe de l'utilisateur SMTP.

Serveur d'application (Puma)

Références de variables :

  • gitlab_workers -- nombre de travailleurs Puma.
  • gitlab_min_threads -- nombre minimum de threads Puma.
  • gitlab_max_threads -- nombre maximum de threads Puma.

Surveillance

Références de variables :

  • gitlab_monitoring_whitelist -- une liste d'adresses/sous-réseaux des points de terminaison de surveillance autorisés à effectuer des vérifications de santé.

Sauvegarde

Voir la documentation de GitLab pour plus de détails.

Sauvegardes Automatisées

  • gitlab_backup_cron_enable -- activer la tâche cron qui effectue des sauvegardes périodiques. Valeur par défaut : no.
  • gitlab_backup_cron_minute -- un champ "minute" de la ligne de commande cron. Variable obligatoire. Voir crontab(5).
  • gitlab_backup_cron_hour -- un champ "heure" de la ligne de commande cron. Variable obligatoire. Voir crontab(5).
  • gitlab_backup_cron_day_of_month -- un champ "jour du mois" de la ligne de commande cron. Valeur par défaut : *.
  • gitlab_backup_cron_month -- un champ "mois" de la ligne de commande cron. Valeur par défaut : *.
  • gitlab_backup_cron_day_of_week -- un champ "jour de la semaine" de la ligne de commande cron. Valeur par défaut : *.
  • gitlab_backup_cron_docker_cmd -- commande que la tâche cron de sauvegarde utilise pour invoquer Docker Engine. Valeur par défaut : docker.
  • gitlab_backup_cron_docker_compose_cmd -- commande que la tâche cron de sauvegarde utilise pour invoquer Docker Compose. Valeur par défaut : docker compose.

Télécharger des Sauvegardes vers un Stockage Compatible S3

  • gitlab_backup_upload_enable -- activer le téléchargement des sauvegardes vers un stockage à distance. Valeur par défaut : no.
  • gitlab_backup_upload_s3_region -- région AWS.
  • gitlab_backup_upload_s3_bucket -- bucket S3 pour stocker les objets de sauvegarde. Variable obligatoire.
  • gitlab_backup_upload_s3_access_key_id -- ID de clé d'accès. Variable obligatoire.
  • gitlab_backup_upload_s3_secret_access_key -- clé d'accès secrète. Variable obligatoire.
  • gitlab_backup_upload_s3_endpoint -- point de terminaison de l'API HTTP de stockage compatible S3.
  • gitlab_backup_upload_s3_path_style_enable -- utiliser la méthode de style chemin pour accéder à un bucket (voir Méthodes pour accéder à un bucket).

Limiter la Durée de Vie des Fichiers de Sauvegarde Locaux

  • gitlab_backup_keep_time -- définit la valeur de gitlab_rails['backup_keep_time'].

Dépendances

Si le rôle yabusygin.docker est utilisé pour installer Docker et autres exigences, il est recommandé d'activer le [remappage des espaces de noms utilisateurs][UsernsRemap] (voir exemple ci-dessous).

Exemple de Playbook

Configuration par défaut (Docker et autres exigences déjà installés) :

- name: configurer GitLab
  hosts: gitlab
  tasks:
    - name: configurer GitLab
      ansible.builtin.import_role:
        name: yabusygin.gitlab

Personnalisé avec le rôle yabusygin.docker :

---
- name: configurer Docker et GitLab personnalisés
  hosts: gitlab
  tasks:
    - name: configurer 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: configurer GitLab
      ansible.builtin.import_role:
        name: yabusygin.gitlab
      vars:
        gitlab_image: gitlab/gitlab-ee:latest
        gitlab_restart_policy: always

        gitlab_hostname: gitlab.example.com
        gitlab_web_port: 3443
        gitlab_registry_port: 5001
        gitlab_ssh_port: 2222

        gitlab_https_enable: yes
        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: yes
        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: yes
        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: yes
        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

Licence

MIT

Informations sur l'Auteur

Alexey Busygin <yaabusygin@gmail.com>

À propos du projet

An Ansible role for setting up GitLab.

Installer
ansible-galaxy install yabusygin.gitlab
Licence
mit
Téléchargements
105
Propriétaire