web-dev-qa-db-fra.com

Comment changer l'URL d'une installation GitLab en fonctionnement?

J'ai installé et nous exécutons une installation par défaut de GitLab v6.0.1 (nous sommes sur le point de mettre à jour également). C'était une configuration "Production", suivant ce guide à la lettre:

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

Comment pouvons-nous modifier en toute sécurité l'URL d'une installation en fonctionnement?

Apparemment, notre URL est très longue et nous en avons créé une nouvelle. J'ai modifié plusieurs fichiers de configuration et le rapport "Vérifications de l'état de l'application" indique que tout est OK. J'ai redémarré le serveur pour m'assurer que les choses fonctionnent toujours.

Je peux très bien accéder à Nginx, via notre protocole SSL original. Je peux naviguer sur le site GitLab, créer un référentiel, etc. Je peux créer et commettre correctement.

Tout semble aller pour le mieux. mais, comme ce n’est pas un environnement natif pour moi, je voulais vérifier que j’ai tout fait pour renommer un site GitLab.

Les fichiers que j'ai édité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"
  ^- yes, we are on SSL and that is working, even on a new URL

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

Vous avez tout fait correctement!

Vous pouvez également modifier la configuration de messagerie, selon que le serveur de messagerie est également le même serveur. La configuration de l'email est dans gitlab.yml pour les mails envoyés par GitLab ainsi que l'admin-email.

29
Razer

GitLab Omnibus

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

L'emplacement 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 aux mauvais endroits et ils étaient époustouflé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 aux avertissements qui se lisent:

# 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`.
151
Jonathon Reinhart

En fait, ce n'est pas tout à fait correct. Je suis arrivé à cette page, en essayant de répondre moi-même à cette question, car nous sommes en train de faire passer le serveur de production GitLab de http:// à https:// et la plupart ça fonctionne comme décrit ci-dessus, mais vous vous connectez à https://server et tout se passe bien ... sauf lorsque vous accédez à un projet ou à un référentiel, et qu'il affiche les instructions SSH et HTTP ... Il indique "http" et les instructions affichées indiquent également "http ".

J'ai trouvé d'autres choses à éditer:

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

      # Also edit these:
      port: 443
      https: true
...

et

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

    # Also edit these:
    listen 443 ssl;
    ssl_certificate     /etc/ssl/certs/somecert.crt;
    ssl_certificate_key /etc/ssl/private/somekey.key;

...
7
Edward Ned Harvey

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

Jonathon Reinhart a déjà répondu avec le bit clé, éditer /etc/gitlab/gitlab.rb , modifier le external_url puis exécutez Sudo gitlab-ctl reconfigure; Sudo gitlab-ctl restart

Cependant, je devais aller un peu plus loin et la documentation que j'ai liée ci-dessus l'expliquait. Donc, ce que j'ai fini avec ressemble à:

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"
}

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

Sudo gitlab-ctl reconfigure
Sudo gitlab-ctl restart

De plus, lorsque vous basculez le paquet omnibus sur https, le nginx fourni ne servira que sur le port 443. Étant donné que toutes mes données sont accessibles via un proxy inverse, cette partie était potentiellement importante.

Au fur et à mesure que je traversais cela, j'ai bousillé quelque chose et il était utile de trouver les journaux de Nginx, cela m'a conduit là:

Sudo gitlab-ctl tail nginx
1
James T Snell