
現在、Ubuntu サーバーで gitlab と gitolite を実行しています。ただし、このサーバーは遅すぎるため、会社ではサーバーを別のマシンに移動したいと考えています。gitlab および gitolite サーバー (ファイル全体、ユーザー、設定) を別のマシンに移動する方法はありますか?
すべてのユーザーとリポジトリを再度インストールして作成するのが最後の選択肢になります。よろしくお願いします。
答え1
ローカル展開を高速化するために、私は 1 時間ごとの crontab ジョブでこれを常に実行しています。(これにより、元のサーバーの正確なコピーが作成され、読み取り専用ミラーとして機能します。個人的には、これをパペット マシンと呼んでいます)。
必要なのは以下のとおりです:
- mysql データのバックアップ/復元 (ツール: mysqldump / mysql < backup.sql.txt)
- すべての gitlab www を新しいマシンにコピーします (scp、rsync)
- すべての gitolite ディレクトリを新しいマシンにコピーします (rsync)
次のコマンドをいつでも実行して、Puppet が正常に実行されているかどうかをテストできます。
bundle exec rake gitlab:app:status RAILS_ENV=production
詳細な手順:
私は、ubuntu 12.04 gitolite apt-get install を使用して MIME セットアップを行い、残りは公式ガイドに従って行いました。また、いくつかメモも作成しました。
- リマインダー:https://github.com/c2h2/gitlabhq_install/blob/master/aio.sh
- 自動バックアップ スクリプト:https://github.com/c2h2/gitlabhq_install/blob/master/gitlab_backup.rb
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 エクスポート/インポートのいずれかを使用)。