我们如何更改可正常运行的GitLab安装的URL?


89

我已经设置好了,我们正在运行默认安装的GitLab v6.0.1(我们也将要升级)。这是“生产”设置,严格按照该指南进行操作:

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

现在,我们如何安全地更改有效安装的URL?

显然,我们的URL很长,我们已经提出了一个新的URL。我已经编辑了许多配置文件,并且“应用程序状态检查”报告一切正常。我已重新启动服务器以确保一切正常。

我可以通过我们原来的SSL访问Nginx。我可以浏览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

9
Omnibus安装用户:过程不同
乔纳森·莱因哈特

Answers:


29

您做的一切正确!

您还可以更改电子邮件配置,具体取决于电子邮件服务器是否也是同一服务器。电子邮件配置位于gitlab.yml中,用于GitLab发送的邮件以及admin-email。


我对此很疑惑,因为我将发件人电子邮件(和其他电子邮件)设置为从不同域中的全局开发人员组电子邮件别名发送。像:devs@domain-2.com。原因是允许开发人员点击“回复”以对“拉取”请求或其他常规电子邮件发表评论。
eduncan911

2
自从我在上面进行了这些更改以来,GitLab一直运行良好,请回来将此标记为答案。
eduncan911

159

亚搏体育app Omnibus

对于Omnibus安装,则有所不同。

Omnibus安装中的正确位置是:

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

最后,您将需要执行sudo gitlab-ctl reconfiguresudo 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`.

我在内部服务器上有GitLab Omnibus,但可以从Internet通过不同的URL访问。中的external_url选项/etc/gitlab/gitlab.rb是设置URL的正确位置,以便项目Git / HTTP URL是正确的。
马修·克拉克

同样,在进行此更改之后,在运行gitlab-ctl重新配置后,您必须重新引导服务器才能进行nginx重新配置。
Dejv

没错,这是更改这些设置的唯一也是最佳位置。剩下的就生成了。
危险89年

4
@Dejv,您不必重新启动。重启nginx服务就足够了。
乔纳森·莱因哈特

由于@JonathonReinhart这个工作对我来说,但首先不要忘了做sudo gitlab-ctl stop unicornsudo gitlab-ctl stop sidekiq
Cyber​​guille

7

实际上,这并不完全正确。我到达此页面,试图亲自回答这个问题,因为我们正在将生产中的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;

...

谢谢您Edward的评论(当您实际上是上面@Razer对另一个答案的评论时,您发布了对此问题的答案)。您可能需要编辑答案(注释),以说明您使用的其他版本。但是,自从我发布此问题以来,我们仅在这些更改上就成功使用了GitLab。我们可以浏览整个团队中的仓库和项目-完全通过我们公司网络中的SSL完全浏览。
eduncan911

2
我知道,但是另一个答案被标记为接受的答案。因此,我故意不想对此发表评论,因为这没有引起注意。发布另一个答案更加明显。我在最新的gitlab-shell 1.8.0和gitlab 6.4稳定版上。我们也可以完全通过https和ssh进行工作。但是,每次将Web界面中的说明或URL复制并粘贴到git客户端时,我们都必须记住用https替换http。
爱德华·内德·哈维

在我看来,您错过了其中一个配置文件中的URL。在我原始问题/说明中的“移动”之前,我们仅使用HTTPS并故意禁用了HTTP。因此,将其专门用作HTTPS可以使我们按照发布的说明进行移动。但是,如果您正在运行混合模式的http / https环境,则很可能需要编辑几行。
eduncan911

感谢您的评论,但是(a)我再次检查了做出上述答案中引用的更改。(b)我安装了以下步骤,然后重新执行该步骤,以确保更改了URL的每个位置。(c)我们不仅将http更改为https,还更改了主机名。主机名更改成功,这意味着配置文件修改成功。(d)我对您的设置表示怀疑。您能否浏览到gitlab中的项目,并且在其顶部显示SSH和HTTP URL,在ssh和http之间切换以及查看显示的URL是否具有“ http”或“ https”?
爱德华·内德·哈维

1
现在这个答案是模棱两可的。您声明“实际上,这并不完全正确。” 但是什么是“这”?您是指问题中的某些内容吗?其他答案之一?
乔纳森·莱因哈特

1

关于此的详细说明对我完全有帮助,位于此处

乔纳森·莱因哈特(Jonathon Reinhart)已经回答了这个问题,请编辑/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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.