101 votes

Comment changer l'URL d'une installation GitLab fonctionnelle ?

J'ai mis en place et nous utilisons actuellement une installation par défaut de GitLab v6.0.1 (nous sommes sur le point de faire une mise à jour également). C'était une configuration "Production", en suivant ce guide précisément à la lettre :

https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md

Maintenant, comment pouvons-nous changer en toute sécurité l'URL d'une installation en cours d'utilisation ?

Apparemment, notre URL est très longue et nous avons trouvé une nouvelle URL. J'ai modifié un certain nombre de fichiers de configuration et le rapport des "Vérifications de l'état de l'application" indique que tout est OK. J'ai redémarré le serveur pour m'assurer que tout fonctionne toujours.

Je peux accéder à Nginx sans problème, via notre SSL d'origine. Je peux naviguer sur le site GitLab, créer un dépôt, etc. Je peux faire un fork et commit sans problème.

Tout semble OK ; mais, comme ce n'est pas un environnement natif pour moi, je voulais vérifier une dernière fois que j'ai bien fait tout ce qu'il faut pour renommer un site GitLab.

Les fichiers que j'ai modifiés sont :

/etc/hosts
  127.0.0.1  localhost
  10.0.0.10  wake.domain.com    wake
  10.0.0.10  git.domain.com     git

/home/git/gitlab/config/gitlab.yml
  production: &base
    gitlab:
      host: git.domain.com

/home/git/gitlab-shell/config.yml
  gitlab_url: "https://git.domain.com"
  ^- oui, nous utilisons SSL et cela fonctionne, même avec une nouvelle URL

/etc/nginx/sites-available/gitlab
  server {
    server_name git.domain.com

169voto

Jonathon Reinhart Points 40535

GitLab Omnibus

Pour une installation Omnibus, c'est un peu différent.

L'endroit correct dans une installation Omnibus est :

/etc/gitlab/gitlab.rb
    external_url 'http://gitlab.example.com'

Enfin, vous devrez exécuter sudo gitlab-ctl reconfigure et sudo gitlab-ctl restart pour que les modifications s'appliquent.


Je faisais des changements au mauvais endroit et ils étaient supprimés.

Les chemins incorrects sont :

/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
/var/opt/gitlab/.gitconfig
/var/opt/gitlab/nginx/conf/gitlab-http.conf

Faites attention à ces avertissements qui disent :

#This file is managed by gitlab-ctl. Manual changes will be
# erased! To change the contents below, edit /etc/gitlab/gitlab.rb
# and run `sudo gitlab-ctl reconfigure`.

29voto

Razer Points 1674

Vous avez tout fait correctement!

Vous pouvez également modifier la configuration de messagerie, en fonction de savoir si le serveur de messagerie est également le même serveur. La configuration de messagerie se trouve dans gitlab.yml pour les mails envoyés par GitLab et aussi l'admin-email.

13voto

user728650 Points 41

N'oubliez pas de vider le cache après avoir mis à jour le paramètre external_url dans /etc/gitlab/gitlab.rb, sinon les URL de clonage de vos projets existants afficheront toujours votre ancien nom d'hôte.

Un processus simple en 3 étapes pour changer le nom d'hôte est le suivant

  • mettre à jour le paramètre external_url dans /etc/gitlab/gitlab.rb
  • sudo gitlab-ctl reconfigure
  • sudo gitlab-ctl restart
  • sudo gitlab-rake cache:clear

Référence:

https://forum.gitlab.com/t/clone-url-wont-change/21692/6

8voto

Edward Ned Harvey Points 405

En fait, ce n'est PAS totalement correct. Je suis arrivé sur cette page en essayant de répondre à cette question moi-même, car nous sommes en train de passer le serveur de production GitLab de http:// à https:// et la plupart des choses fonctionnent comme décrit ci-dessus, mais lorsque vous vous connectez à https://serveur et que tout semble en ordre ... sauf lorsque vous naviguez vers un projet ou un dépôt, et qu'il affiche les instructions SSH et HTTP... Il dit "http" et les instructions affichées disent aussi "http".

J'ai trouvé d'autres choses à modifier cependant:

/home/git/gitlab/config/gitlab.yml
  production: &base
    gitlab:
      host: git.domain.com

      # Modifier également ces éléments:
      port: 443
      https: true
...

et

/etc/nginx/sites-available/gitlab
  server {
    server_name git.domain.com;

    # Modifier également ces éléments:
    listen 443 ssl;
    ssl_certificate     /etc/ssl/certs/somecert.crt;
    ssl_certificate_key /etc/ssl/private/somekey.key;

...

1voto

Doc Points 261

Il y a des notes détaillées à ce sujet qui m'ont aidé complètement, situé ici.

Jonathon Reinhart a déjà répondu avec l'essentiel, pour modifier /etc/gitlab/gitlab.rb, modifier l' external_url puis exécuter sudo gitlab-ctl reconfigure; sudo gitlab-ctl restart

Cependant, j'ai dû aller un peu plus loin et les documents que j'ai liés ci-dessus l'expliquaient. Donc ce à quoi je suis arrivé ressemble à ceci:

external_url 'https://gitlab.toilethumor.com'
nginx['ssl_certificate'] = "/www/ssl/star_toilethumor.com-chained.crt"
nginx['ssl_certificate_key'] = "/www/ssl/star_toilethumor.com.key"
nginx['proxy_set_headers'] = {
 "X-Forwarded-Proto" => "http",
 "CUSTOM_HEADER" => "VALUE"
}

Au-dessus, j'ai explicitement déclaré où se trouvent mes réglages SSL sur ce serveur. Et bien sûr, cela est suivi par

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

Aussi, lorsque vous passez le package omnibus en https, le nginx groupé ne servira que sur le port 443. Comme tout mon contenu est accessible via un proxy inversé, cette partie était potentiellement significative.

En passant par cela, j'ai fait une erreur et il était utile de trouver les journaux nginx réels, cela m'a mené ici:

sudo gitlab-ctl tail nginx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X