web-dev-qa-db-ja.com

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

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

すべてのユーザーとリポジトリを再度インストールして作成することが、私の最後の選択です。前もって感謝します。

4
Sam Mie

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

あなたがする必要があるのは:

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

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

bundle exec rake gitlab:app:status Rails_ENV=production

いくつかの詳細な手順:

私はubuntu12.04 gitolite apt-get installを使用してmimeのセットアップを行い、公式ガイドで休憩しました。また、いくつかのメモを作成しました。

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

セットアップする必要があるのは、元のマシンが動作した後のいくつかのcronジョブです。これもonlineミラーです。 (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
6
c2h2

ジトライトの移動は簡単なようです。

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

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

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

1
VonC