hifis.gitlab
Rôle Ansible pour GitLab
:warning: Ce projet est archivé ! :warning:
Ce rôle a été transféré dans notre collection hifis.toolkit
:
- https://github.com/hifis-net/ansible-collection-toolkit
- https://galaxy.ansible.com/ui/repo/published/hifis/toolkit/
Un rôle pour installer et configurer le package officiel GitLab Omnibus.
Les plateformes supportées sont actuellement :
- CentOS 7
- AlmaLinux 8
- Debian 11 (Bullseye)
- Ubuntu 18.04 LTS (Bionic Beaver)
- Ubuntu 20.04 LTS (Focal Fossa)
- Ubuntu 22.04 LTS (Jemmy Jellyfish)
Exigences
Aucune.
Variables du rôle
Variables importantes du rôle
Édition de GitLab
L'édition de GitLab à installer. Veuillez utiliser soit gitlab-ce
pour l'édition communautaire, soit gitlab-ee
pour l'édition entreprise.
gitlab_edition: "gitlab-ee"
Version et Release de GitLab
Définissez une version spécifique de GitLab à installer. Veuillez vous assurer que vous spécifiez également la release souhaitée. Vous pouvez trouver les releases disponibles ici.
gitlab_version: "15.6.1"
# Release de GitLab pour RHEL/AlmaLinux 8
gitlab_release: "ce.0.el8"
# Release de GitLab pour Ubuntu
gitlab_release: "ce.0"
Veuillez noter : Si aucune version de GitLab n'est spécifiée, le rôle installera toujours le dernier package GitLab disponible.
URL de la clé GPG
URL de la clé GPG utilisée pour signer les packages.
gitlab_gpg_key_url: "https://packages.gitlab.com/gitlab/{{ gitlab_edition }}/gpgkey"
ID de la clé GPG
Identifiant de la clé GPG utilisée pour signer les packages.
gitlab_gpg_key_id: "F6403F6544A38863DAA0B6E03F01618A51312F3F"
URL du dépôt de packages
URL du dépôt de packages en fonction du système d'exploitation.
gitlab_repo_url: "https://packages.gitlab.com/gitlab/{{ gitlab_edition }}/ubuntu/"
URL du dépôt de packages sources
URL du dépôt des packages sources (CentOS et AlmaLinux uniquement).
gitlab_source_repo_url: "https://packages.gitlab.com/gitlab/{{ gitlab_edition }}/el/{{ ansible_facts.distribution_major_version }}/SRPMS"
Nom du package
Nom du package GitLab à installer.
gitlab_package_name: "{{ gitlab_edition + '=' + gitlab_version + '-' + gitlab_release if gitlab_version and gitlab_release else gitlab_edition }}"
Dépendances du package
Liste des packages dépendants requis par GitLab selon le système d'exploitation.
gitlab_dependencies:
- apt-transport-https
- curl
- gnupg
- openssh-server
- openssl
- tzdata
URL de votre instance GitLab
Donnez l'URL de votre instance GitLab :
gitlab_external_url: 'https://gitlab.example.com'
Fuseau horaire à utiliser par GitLab
Choisissez le fuseau horaire à utiliser par GitLab :
gitlab_time_zone: 'Europe/Berlin'
Durée de conservation des sauvegardes
Définissez la durée (en secondes) durant laquelle garder vos sauvegardes GitLab :
gitlab_backup_keep_time: '604800'
Variables optionnelles du rôle
Nom du modèle pour le fichier de configuration de GitLab
Spécifiez le nom du modèle pour le fichier de configuration de GitLab qui sera transformé en fichier de configuration de GitLab :
gitlab_configuration_file_template: 'gitlab.rb.j2'
Chemin vers le fichier de configuration de GitLab
Spécifiez le chemin du modèle pour le fichier de configuration de GitLab qui contient les configurations personnalisées de votre instance GitLab :
gitlab_configuration_file_path: '/etc/gitlab/gitlab.rb'
Thème de GitLab à utiliser par défaut
Choisissez le thème par défaut à utiliser pour les nouveaux utilisateurs de GitLab :
gitlab_default_theme: '2'
Chemin vers les sauvegardes de GitLab
Définissez le chemin des sauvegardes de GitLab :
gitlab_backup_path: '/var/opt/gitlab/backups'
Port sur lequel le serveur Web Nginx écoute
Définissez le port sur lequel le serveur web Nginx de GitLab écoute :
gitlab_nginx_listen_port: '80'
Le serveur web Nginx accepte-t-il les requêtes HTTPS ?
Choisissez si le serveur web Nginx de GitLab accepte les requêtes HTTPS :
gitlab_nginx_listen_https: 'false'
Le serveur web Nginx redirige-t-il les requêtes HTTP vers HTTPS ?
Choisissez si le serveur web Nginx de GitLab redirige les requêtes HTTP vers HTTPS :
gitlab_nginx_redirect_http_to_https: 'false'
Définir les flags de fonction GitLab
Définissez les flags de fonction GitLab pour activer ou désactiver des fonctionnalités supplémentaires. La variable est une liste de paires clé-valeur qui nécessite le nom
du flag de fonction et son état booléen enabled
. La valeur par défaut est une liste vide []
.
gitlab_feature_flags:
- name: "vscode_web_ide"
enabled: true
- name: "chatops"
enabled: true
- name: "webauthn"
enabled: false
Cas d'utilisation uniquement Mattermost
Ce rôle peut être utilisé pour exécuter Mattermost sans déployer GitLab. Dans ce scénario, des services comme sidekiq ou puma ne sont pas requis. Réglez sur true
pour empêcher le rôle de recharger ces services :
gitlab_mattermost_only_context: 'false'
Variables à définir si un Redis externe est utilisé
Activer l'utilisation d'une instance Redis externe
Réglez la bascule sur false
pour activer l'utilisation d'une instance Redis externe :
gitlab_use_internal_redis: 'false'
Mot de passe pour authentifier les services Redis dans le cluster
Il est recommandé d'activer l'authentification pour le maître Redis et les répliques Redis en fournissant le mot de passe respectif :
gitlab_redis_password: 'changeme'
Avertissement : Vous devez utiliser votre propre mot de passe privé et crypté ici.
Mot de passe pour authentifier les sentinelles Redis
Le support de l'authentification par mot de passe pour les sentinelles Redis a été introduit dans GitLab 16.1.
gitlab_redis_sentinel_password: 'changeme'
Avertissement : Vous devez utiliser votre propre mot de passe privé et crypté ici.
Nom de référence du cluster Redis
Choisissez un nom pour le cluster Redis pour référence :
gitlab_redis_cluster_name: 'redis-cluster'
Liste des adresses IP des serveurs Sentinel Redis
Ajoutez une liste des adresses IP des serveurs Sentinel Redis concernés :
gitlab_redis_sentinel_ips:
- '192.168.33.11'
- '192.168.33.12'
- '192.168.33.13'
Port d'écoute des serveurs Sentinel Redis
Choisissez le port sur lequel les serveurs Sentinel Redis écoutent :
gitlab_redis_sentinel_port: '26379'
Plage d'adresses IP autorisées pour surveiller les serveurs Sentinel Redis
Plage d'adresses IP GitLab autorisées à surveiller les serveurs Sentinel Redis :
gitlab_ip_range: '{{ ansible_facts.default_ipv4.address }}/24'
Variables à définir si un Gitaly externe est utilisé
Activer l'utilisation d'une instance Gitaly externe
Réglez la bascule sur false
pour activer l'utilisation d'une instance Gitaly externe :
gitlab_use_internal_gitaly: 'false'
Chemin vers le répertoire de données de GitLab
Spécifiez où placer le répertoire de données GitLab :
gitlab_git_data_dir: "/var/opt/gitlab/git-data"
Token d'authentification Gitaly
Un token d'authentification Gitaly doit être fourni :
gitlab_gitaly_token: 'changeme'
Avertissement : Vous devez utiliser votre propre mot de passe privé et crypté ici.
Token de shell GitLab
Un token de shell GitLab doit être fourni :
gitlab_secret_token: 'changeme'
Avertissement : Vous devez utiliser votre propre mot de passe privé et crypté ici.
Adresse IP de l'instance Gitaly
Spécifiez l'adresse IP de l'instance Gitaly :
gitlab_gitaly_instance_ip: '127.0.0.1'
Port de l'instance Gitaly
Spécifiez le port de l'instance Gitaly :
gitlab_gitaly_instance_port: '8075'
Variables à définir si une base de données PostgreSQL externe est utilisée
Activer l'utilisation d'une instance de base de données PostgreSQL externe
Réglez la bascule sur false
pour activer l'utilisation d'une instance de base de données PostgreSQL externe :
gitlab_use_internal_postgresql: 'false'
Adresse IP de l'instance de base de données PostgreSQL externe
Définissez l'adresse IP de l'instance de base de données PostgreSQL :
gitlab_postgresql_db_host: '127.0.0.1'
Mot de passe de l'instance de base de données PostgreSQL externe
Définissez le mot de passe de l'instance de base de données PostgreSQL :
gitlab_postgresql_db_password: 'changeme'
Avertissement : Vous devez utiliser votre propre mot de passe privé et crypté ici.
Configurer le registre GitLab
Activez le registre de conteneurs GitLab :
gitlab_registry_enable: "true"
Veuillez noter : Si vous ne faites pas fonctionner un répartiteur de charge devant GitLab et laissez Nginx gérer le chiffrement SSL, veuillez également configurer registry_nginx['ssl_certificate']
et registry_nginx['ssl_certificate_key']
via gitlab_additional_configurations
.
Configurations supplémentaires données sous forme de variables de rôle
Toutes les autres configurations qui ne font pas encore partie du fichier de configuration de GitLab peuvent être données par des variables Ansible.
Configurations via des variables Ruby de type dictionnaire
Les variables Ruby qui ne font pas partie du fichier de configuration de GitLab peuvent être spécifiées par des variables de rôle Ansible.
Exemple d'utilisation :
gitlab_additional_configurations:
- gitlab_rails:
- key: "time_zone"
value: "Europe/Berlin"
- nginx:
- key: "listen_port"
type: "plain"
value: "80"
- key: "listen_https"
type: "plain"
value: "false"
Configuration résultante :
gitlab_rails['time_zone'] = 'Europe/Berlin'
nginx['listen_port'] = 80
nginx['listen_https'] = false
Configurations via des appels de fonction Ruby
Les appels de fonction Ruby qui ne font pas partie du fichier de configuration de GitLab peuvent être fournis par des variables de rôle Ansible.
Exemple d'utilisation :
gitlab_ruby_configuration_calls:
- key: "pages_external_url"
value: "https://pages.example.com"
- key: "registry_external_url"
value: "https://registry.example.com"
- key: "mattermost_external_url"
value: "https://mattermost.example.com"
Configuration résultante :
registry_external_url "https://registry.example.com"
pages_external_url "https://pages.example.com"
mattermost_external_url "https://mattermost.example.com"
Dépendances
Aucune.
Licence
Informations sur l'auteur
Contributeurs
Nous tenons à remercier et à donner crédit aux contributeurs suivants de ce projet :
ansible-galaxy install hifis.gitlab