Come si modifica l’URL di un’installazione GitLab funzionante?

Ho installato e stiamo eseguendo un’installazione predefinita di GitLab v6.0.1 (stiamo per effettuare l’aggiornamento). Era una configurazione di “Produzione”, seguendo precisamente questa guida alla lettera:

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

Ora, come possiamo cambiare in modo sicuro l’URL di un’installazione funzionante?

Apparentemente il nostro URL è molto lungo e abbiamo creato un nuovo URL. Ho modificato un certo numero di file di configurazione e il “Controllo dello stato dell’applicazione” riporta che tutto è OK. Ho riavviato il server per assicurarmi che le cose funzionino ancora.

Posso accedere a Nginx bene, sopra il nostro SSL originale. Posso sfogliare il sito GitLab, creare un repository, ecc. Posso biforcare e commettere bene.

Tutto sembra essere OK; ma, poiché questo non è un ambiente nativo per me, volevo ricontrollare che ho fatto di tutto per rinominare un sito GitLab.

I file che ho modificato sono:

/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 

Hai fatto tutto correttamente!

È anche ansible modificare la configurazione della posta elettronica, a seconda che il server di posta elettronica sia anche lo stesso server. La configurazione dell’email è in gitlab.yml per le mail inviate da GitLab e anche l’admin-email.

GitLab Omnibus

Per un’installazione Omnibus, è un po ‘diverso.

La posizione corretta in un’installazione Omnibus è:

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

Infine, dovrai eseguire sudo gitlab-ctl reconfigure e sudo gitlab-ctl restart modo da applicare le modifiche.


Stavo facendo dei cambiamenti nei posti sbagliati e loro venivano spazzati via.

I percorsi errati sono:

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

Presta attenzione a quegli avvertimenti che leggono:

 # 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`. 

In realtà, questo NON è completamente corretto. Sono arrivato a questa pagina, cercando di rispondere a questa domanda da solo, mentre stiamo passando da GitLab server di produzione da http:// a https:// e la maggior parte delle cose funziona come descritto sopra, ma quando accedi a https://server e tutto sembra a posto … tranne quando si visita un progetto o un repository e vengono visualizzate le istruzioni SSH e HTTP … Si dice “http” e le istruzioni visualizzate indicano anche “http”.

Ho trovato ancora alcune cose da modificare:

 /home/git/gitlab/config/gitlab.yml production: &base gitlab: host: git.domain.com # Also edit these: port: 443 https: true ... 

e

 /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; ... 

Ci sono note dettagliate su questo che mi hanno aiutato completamente, si trova qui .

Jonathon Reinhart ha già risposto con il bit della chiave, per modificare /etc/gitlab/gitlab.rb , modificare il external_url e quindi eseguire sudo gitlab-ctl reconfigure; sudo gitlab-ctl restart sudo gitlab-ctl reconfigure; sudo gitlab-ctl restart

Tuttavia, avevo bisogno di andare un po ‘oltre e i documenti che ho linkato sopra lo hanno spiegato. Quindi quello che ho finito con sembra:

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

Sopra, ho esplicitamente dichiarato dove sono le mie prelibatezze SSL su questo server. E questo è ovviamente seguito da

 sudo gitlab-ctl reconfigure sudo gitlab-ctl restart 

Inoltre, quando si passa il pacchetto omnibus a https, il nginx in bundle funzionerà solo sulla porta 443. Poiché tutto il mio materiale viene raggiunto tramite proxy inverso, questa parte è potenzialmente significativa.

Mentre lo analizzavo, ho rovinato qualcosa ed è stato utile trovare i log di nginx, questo mi ha portato lì:

 sudo gitlab-ctl tail nginx