Как изменить URL-адрес работающей установки GitLab?

Я настроил, и мы запускаем установку GitLab v6.0.1 по умолчанию (мы тоже собираемся обновить). Это была «производственная» установка, в точности следовавшая этому руководству:

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

Теперь, как нам безопасно изменить URL-адрес работающей установки?

Очевидно, наш URL-адрес очень длинный, и мы придумали новый URL-адрес. Я отредактировал несколько файлов конфигурации и в отчете «Проверка статуса приложения» все в порядке. Я перезагрузил сервер, чтобы убедиться, что все по-прежнему работает.

Я могу получить доступ к Nginx нормально, через наш оригинальный SSL. Я могу просматривать сайт GitLab, создавать репозиторий и т. Д. Я могу отлично выполнить форк и зафиксировать.

Кажется, все в порядке; но, поскольку это не родная среда для меня, я хотел дважды проверить, что я сделал все, чтобы переименовать сайт GitLab.

Файлы, которые я редактировал:

/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

person eduncan911    schedule 18.10.2013    source источник
comment
Пользователи, устанавливающие омнибус: Процесс отличается.   -  person Jonathon Reinhart    schedule 18.01.2015


Ответы (5)


Вы все сделали правильно!

Вы также можете изменить конфигурацию электронной почты в зависимости от того, является ли сервер электронной почты тем же самым сервером. Конфигурация электронной почты находится в gitlab.yml для письма, отправленные GitLab, а также адрес электронной почты администратора.

person Razer    schedule 19.10.2013
comment
Мне было интересно об этом, потому что я установил, что электронное письмо «От» (и другое электронное письмо) будет отправлено с псевдонима электронной почты нашей глобальной группы разработчиков, который находится в другом домене. Например: [email protected]. Причина в том, чтобы позволить разработчикам нажимать «Ответить», чтобы оставлять комментарии к запросам на вытягивание или другим общим электронным письмам. - person eduncan911; 19.10.2013
comment
Вернулся, чтобы отметить это как ответ, поскольку GitLab работает нормально с тех пор, как я внес эти изменения выше. - person eduncan911; 15.01.2014

GitLab Омнибус

Для установки Омнибуса все немного иначе.

Правильное место при установке Омнибуса:

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

Наконец, вам нужно выполнить sudo gitlab-ctl reconfigure и sudo gitlab-ctl restart, чтобы изменения вступили в силу.


Я вносил изменения не в те места, и они были просто поражены.

неправильные пути:

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

Обратите внимание на те предупреждения, которые гласят:

# 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`.
person Jonathon Reinhart    schedule 17.01.2015
comment
У меня есть GitLab Omnibus на внутреннем сервере, но доступный из Интернета по другому URL-адресу. Параметр external_url в /etc/gitlab/gitlab.rb был правильным местом для установки URL-адреса, чтобы URL-адреса Git / HTTP проекта были правильными. - person Matthew Clark; 17.03.2015
comment
Кроме того, после этого изменения и после запуска gitlab-ctl reconfigure вам необходимо перезагрузить сервер, чтобы произошла реконфигурация nginx. - person Dejv; 29.04.2015
comment
Вы правы, это единственное и лучшее место для изменения этих настроек. Остальное генерируется. - person danger89; 07.07.2015
comment
@Dejv перезагружать не нужно. Перезапуска службы nginx должно быть достаточно. - person Jonathon Reinhart; 07.07.2015
comment
Спасибо @JonathonReinhart за эту работу, но сначала не забудьте сделать sudo gitlab-ctl stop unicorn и sudo gitlab-ctl stop sidekiq - person Cyberguille; 13.02.2017
comment
@Cyberguille Не обязательно. - person Jonathon Reinhart; 14.02.2017
comment
редактируя указанный файл, а затем обо всем позаботятся sudo gitlab-ctl reconfigure и sudo gitlab-ctl restart. больше ничего не требуется. - person Fr0zenFyr; 24.05.2018

На самом деле это НЕ совсем правильно. Я зашел на эту страницу, пытаясь ответить на этот вопрос сам, поскольку мы переводим производственный сервер GitLab с http:// на https://, и большая часть вещей работает, как описано выше, но когда вы входите в https://server, и все выглядит нормально ... за исключением случаев, когда вы просматриваете проект или репозиторий, и он отображает инструкции SSH и HTTP ... Он говорит «http», а инструкции, которые он отображает, также говорят «http».

Я нашел еще кое-что, что нужно отредактировать:

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

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

а также

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

...
person Edward Ned Harvey    schedule 15.01.2014
comment
Спасибо, Эдвард, за ваш комментарий (вы опубликовали ответ на этот вопрос, хотя на самом деле это комментарий к другому ответу @Razer выше). Вы можете изменить свой ответ (комментарий), чтобы указать, какая у вас версия для других. Но мы успешно использовали GitLab только с этими изменениями с тех пор, как я опубликовал этот вопрос. мы можем просматривать репозитории и проекты в рамках всей команды - полностью через SSL исключительно в нашей корпоративной сети. - person eduncan911; 15.01.2014
comment
Я знаю, но другой ответ отмечен как принятый. Поэтому я намеренно не хотел это комментировать, потому что это не привлекает внимания. Публикация другого ответа немного более выражена. Я использую последнюю версию gitlab-shell 1.8.0 и стабильную версию gitlab 6.4. Мы также можем работать полностью по https и ssh. Но мы должны помнить о замене http на https каждый раз, когда мы копируем и вставляем инструкции или URL-адрес из веб-интерфейса в клиент git. - person Edward Ned Harvey; 16.01.2014
comment
Мне кажется, что вы пропустили URL-адрес в одном из файлов конфигурации. Мы используем только HTTPS и намеренно отключили HTTP до перехода в мой исходный вопрос / описание здесь. Таким образом, использование его исключительно как HTTPS позволило нам незаметно двигаться в соответствии с опубликованными инструкциями. Но если вы используете среду http / https со смешанным режимом, скорее всего, вам нужно отредактировать несколько дополнительных строк. - person eduncan911; 16.01.2014
comment
Спасибо за комментарий, но (а) я дважды проверил, внес ли изменения, упомянутые в приведенном выше ответе. (б) Я установил следующую процедуру и повторно выполнил эту процедуру, чтобы убедиться, что я изменил каждое место, где находится URL. (c) Мы не только изменили http на https, мы также изменили имя хоста. Изменение имени хоста сработало, что означает, что модификации файла конфигурации были успешными. (г) Я скептически отношусь к вашей установке. Можете ли вы перейти к проекту в своем gitlab, а вверху, где он показывает URL-адрес SSH и HTTP, переключаться между ssh и http и посмотреть, имеет ли отображаемый URL-адрес http или https? - person Edward Ned Harvey; 16.01.2014
comment
Этот ответ сейчас неоднозначен. Вы утверждаете: На самом деле, это НЕ совсем правильно. но что это? Вы имеете в виду что-то в вопросе? Один из других ответов? - person Jonathon Reinhart; 20.10.2016

Не забудьте очистить кеш после обновления параметра external_url в /etc/gitlab/gitlab.rb, иначе существующие URL-адреса клонов проекта по-прежнему будут отображать ваше старое имя хоста.

Простой трехэтапный процесс изменения имени хоста выглядит следующим образом

  • обновить параметр external_url в /etc/gitlab/gitlab.rb
  • sudo gitlab-ctl reconfigure
  • sudo gitlab-ctl restart
  • sudo gitlab-rake cache:clear

Ссылка:

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

person user728650    schedule 14.01.2021

Есть подробные примечания по этому поводу, которые полностью мне помогли, находится здесь.

Джонатон Рейнхарт уже ответил ключевым битом, чтобы отредактировать /etc/gitlab/gitlab.rb, изменить external_url и затем запустить sudo gitlab-ctl reconfigure; sudo gitlab-ctl restart

Однако мне нужно было пойти немного дальше, и документы, на которые я ссылался выше, объяснили это. Итак, что у меня получилось, выглядит так:

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

Выше я явно указал, где на этом сервере находятся мои SSL-подарки. И, конечно же, за этим следует

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

Кроме того, когда вы переключаете пакет omnibus на https, связанный nginx будет обслуживать только порт 443. Поскольку все мои данные доступны через обратный прокси-сервер, эта часть была потенциально важной.

Когда я прошел через это, я кое-что напортачил, и было полезно найти фактические журналы nginx, это привело меня туда:

sudo gitlab-ctl tail nginx
person James T Snell    schedule 02.10.2016