yabusygin.gitlab
Rôle Ansible : gitlab
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 :
- Docker Engine
- Docker Compose
- Exigences du module community.docker.docker_compose
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
gitlab_image
-- Image du conteneur Docker à utiliser. Valeur par défaut :gitlab/gitlab-ce:latest
.gitlab_restart_policy
-- Politique de redémarrage du conteneur Docker. Valeurs :always
,on-failure
,unless-stopped
. Docker ne redémarre pas un conteneur par défaut dans n'importe quelle circonstance.
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 transporttls
oustarttls
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. Voircrontab(5)
.gitlab_backup_cron_hour
-- un champ "heure" de la ligne de commande cron. Variable obligatoire. Voircrontab(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 degitlab_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>