Gitlab と Gitolite サーバーを別のマシンに移動する

Gitlab と Gitolite サーバーを別のマシンに移動する

現在、Ubuntu サーバーで gitlab と gitolite を実行しています。ただし、このサーバーは遅すぎるため、会社ではサーバーを別のマシンに移動したいと考えています。gitlab および gitolite サーバー (ファイル全体、ユーザー、設定) を別のマシンに移動する方法はありますか?

すべてのユーザーとリポジトリを再度インストールして作成するのが最後の選択肢になります。よろしくお願いします。

答え1

ローカル展開を高速化するために、私は 1 時間ごとの crontab ジョブでこれを常に実行しています。(これにより、元のサーバーの正確なコピーが作成され、読み取り専用ミラーとして機能します。個人的には、これをパペット マシンと呼んでいます)。

必要なのは以下のとおりです:

  1. mysql データのバックアップ/復元 (ツール: mysqldump / mysql < backup.sql.txt)
  2. すべての gitlab www を新しいマシンにコピーします (scp、rsync)
  3. すべての gitolite ディレクトリを新しいマシンにコピーします (rsync)

次のコマンドをいつでも実行して、Puppet が正常に実行されているかどうかをテストできます。

bundle exec rake gitlab:app:status RAILS_ENV=production

詳細な手順:

私は、ubuntu 12.04 gitolite apt-get install を使用して MIME セットアップを行い、残りは公式ガイドに従って行いました。また、いくつかメモも作成しました。

SSHの秘密鍵/公開鍵は、自動化された(パスワードなしの)rsync/scpプロセスに必要です。理解できない場合は、以下をお読みください。http://troy.jdmz.net/rsync/index.html

元のマシンが動作した後、必要なのはいくつかのcronジョブを設定することだけです。これはオンラインミラーも同様です。(Web サーバーやマシンを再起動する必要はありません)

ミラーマシン上のcrontab:

58 * * * * rsync -zav root@my_remote_server.com:/home/git /home
11 * * * * rsync -zav root@my_remote_server.com:/root/mysql_hourly_dump.txt /root
15 * * * * mysql -u root -p"secure password" gitlabhq_production < mysql_hourly_dump.txt
20 * * * * rsync -zav --delete my_remote_server.com:/www/ /www

サーバー上のcrontab:

7 * * * * mysqldump -p"secure password" gitlabhq_production -u root > /root/mysql_hourly_dump.txt

答え2

ジトライトの移動は簡単そうです:

  • 参照する公開鍵が~/.ssh/authorized_keys新しいホームにまだ残っていることを確認する必要があります(そのため、主にそのファイルをコピーする必要があります)
  • repositoriesそして、、.gitoliteおよびファイルを移動する必要があります.gitolite.rc(最後のファイルのパスを確認してください)

「ユーザー」は、gitolite ファイルと gitlab データベースでのみ宣言されます。

GitLab を再インストールし (使用しているすべての gem が最初のインストールに基づいて固定パスで使用されている可能性があるため)、データベースを Ubuntu サーバーのデータベースに更新/置換する必要があります (ファイルのコピーまたは SQL エクスポート/インポートのいずれかを使用)。

関連情報