稼働中の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インストールユーザー:プロセスは異なります。
Jonathon Reinhart、2015年

回答:


29

あなたはすべてを正しく行いました!

また、電子メールサーバーが同じサーバーであるかどうかに応じて、電子メール構成を変更することもできます。電子メールの設定はであるgitlab.yml GitLabによって送信されたメールも管理者-メール用。


別のドメインにあるグローバルデベロッパーグループのメールエイリアスから送信されるようにFromメール(およびその他のメール)を設定したので、これについて疑問に思いました。例:devs@domain-2.com。その理由は、開発者が[返信]をクリックして、プルリクエストやその他の一般的な電子メールにコメントできるようにするためです。
eduncan911 2013年

2
上記の変更を行って以来、GitLabは問題なく動作しているため、これを答えとしてマークして戻ってきました。
eduncan911 2014年

159

GitLab Omnibus

Omnibusインストールの場合は少し異なります。

Omnibusインストールの正しい場所は次のとおりです。

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

内部サーバーにGitLab Omnibusがありますが、インターネットから別のURLにアクセスできます。のexternal_urlオプション/etc/gitlab/gitlab.rbは、プロジェクトのGit / HTTP URLが正しくなるようにURLを設定するための正しい場所でした。
Matthew Clark

また、この変更後、gitlab-ctl reconfigureを実行した後、nginx再構成を実行するにはサーバーを再起動する必要があります。
Dejv 2015

そうです、これがこれらの設定を変更するための唯一の最良の場所です。残りは生成されます。
danger89

4
@Dejv再起動する必要はありません。nginxサービスを再起動するだけで十分です。
Jonathon Reinhart、2015

おかげで私のためにこの仕事を@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;

...

エドワードにコメントをありがとう(実際に上記の@Razerによる別の回答へのコメントである場合、この質問への回答を投稿しました)。自分の回答(コメント)を編集して、他のユーザーが現在使用しているバージョンを示すことができます。しかし、私はこの質問を投稿して以来、これらの変更のみでGitLabをうまく使用しています。チーム全体でリポジトリとプロジェクトを閲覧できます-完全にSSLを介して、社内ネットワークのみで閲覧できます。
eduncan911 2014年

2
わかっていますが、他の回答は承認済みの回答としてマークされています。だから、わからないのでわざとコメントしたくありませんでした。別の回答を投稿すると、もう少しはっきりします。私は最新のgitlab-shell 1.8.0とgitlab 6.4の安定版を使用しています。完全にhttpsとsshを介して作業することもできます。ただし、Webインターフェイスからgitクライアントに指示またはURLをコピーして貼り付けるたびに、httpをhttpsに置き換えることを忘れないでください。
エドワードネッドハーヴェイ

構成ファイルの1つでURLを見逃したようです。ここでは、元の質問/説明の「移動」の前に、HTTPSと意図的に無効にしたHTTPのみを使用しています。したがって、それをHTTPSとしてのみ使用することで、投稿された指示に従ってシームレスに移動することができました。ただし、混合モードのhttp / https環境を実行している場合は、編集が必要な行がいくつか追加されている可能性があります。
eduncan911 2014年

コメントをありがとうございますが、(a)上記の回答で参照されている変更を行ったことを再確認しました。(b)次の手順をインストールし、その手順に従って、URLのすべての場所を変更したことを確認しました。(c)httpをhttpsに変更しただけでなく、ホスト名も変更しました。ホスト名の変更は機能しました。これは、構成ファイルの変更が成功したことを意味します。(d)私はあなたのセットアップに懐疑的です。gitlabのプロジェクトを参照して、SSHとHTTPのURLが表示されている上部で、sshとhttpを切り替えて、表示されるURLに「http」または「https」があるかどうかを確認できますか?
エドワードネッドハーヴェイ

1
この答えはあいまいです。あなたは「実際には、これは完全に正しいわけではない」と述べています。「これ」って何?質問の中で何かを言及していますか?他の答えの1つ?
Jonathon Reinhart

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

また、オムニバスパッケージをhttpsに切り替えると、バンドルされたnginxはポート443でのみ機能します。私のすべてのものはリバースプロキシ経由で到達するため、この部分は潜在的に重要でした。

私がこれを経験したとき、私は何かを台無しにしました、そして実際のnginxログを見つけるのは役に立ちました、これはそこに私を導きました:

sudo gitlab-ctl tail nginx
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.