Pour des raisons de sécurité des données, l'entreprise a déployé un dépôt GitLab sur le réseau interne. Cela accélère les opérations de développement, mais un développeur a récemment oublié son mot de passe. Plutôt que de le modifier manuellement via l'interface administrateur, il est plus efficace d'activer la fonctionnalité intégrée de récupération par e-mail pour éviter des interventions répétées.
Étapes de configurasion
Premièrement, avant toute modification, il est recommandé de sauvegarder le fichier de configuration existant :
cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.backup
Ensuite, éditez le fichier /etc/gitlab/gitlab.rb pour configurer l'envoi d'e-mails. Dans cet exemple, nous utilisons un service SMTP 163. Les paramètres clés à ajuster sont les suivants :
external_url 'http://10.0.10.78'
gitlab_rails['time_zone'] = 'Europe/Paris'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'utilisateur@exemple.com'
gitlab_rails['gitlab_email_display_name'] = 'GitLab Communautaire'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exemple.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "utilisateur@exemple.com"
gitlab_rails['smtp_password'] = "motdepasse_securise"
gitlab_rails['smtp_domain'] = "exemple.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
user['git_user_email'] = "utilisateur@exemple.com"
Après avoir enregistré les modifications, appliquez la nouvelle configuration en exécutant :
gitlab-ctl reconfigure
Cette commande régénère les fichiers de configuration dérivés dans le répertoire /var/opt/gitlab/gitlab-rails/etc/ sans affecter les données du dépôt. Si vous modifiez directement le fichier smtp_settings.rb dans ce répertoire, un redémarrage du service suffit :
gitlab-ctl restart
Une fois la configuraton appliquée, les utilisateurs pourront sélectionner l'option « Mot de passe oublié » sur la page de connexion et recevoir un e-mail de réinitialisation. Si l'adresse e-mail est également inconnue, aucune récupération n'est possible via cette méthode.
Adaptation pour les environnements restrictifs
Dans certains environnements cloud, comme les instances ECS sur Alibaba Cloud, le port SMTP 25 peut être bloqué. Pour contourner cette limitation, modifiez les paramètres pour utiliser le port 465 avec TLS :
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_tls'] = true
Exécitez ensuite gitlab-ctl reconfigure pour activer les changements.