
現在,我的 ubuntu 伺服器上運行著 gitlab 和 gitolite。然而,這台伺服器太慢了,我的公司希望將伺服器移到另一台機器上。有沒有辦法將 gitlab 和 gitolite 伺服器(整個檔案、使用者和設定)移到另一台機器?
再次安裝並建立所有使用者和儲存庫將是我最後的選擇。先感謝您。
答案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
自動(無密碼)rsync/scp 流程需要 SSH 私鑰/公鑰,如果您不明白,請閱讀http://troy.jdmz.net/rsync/index.html
您需要設定的只是原始機器工作後的一些 cron 作業:這是在線的鏡子也。 (您不需要重新啟動任何網頁伺服器/機器)
鏡像機上的 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
移動 gitolite 似乎很容易:
- 您需要確保它引用的公鑰仍然在
~/.ssh/authorized_keys
新家中(所以您主要需要複製該文件) - 您需要移動
repositories
,.gitolite
和.gitolite.rc
文件(檢查最後一個文件中的路徑)
「使用者」僅在 gitolite 檔案和 gitlab 資料庫中聲明。
應該重新安裝 GitLab(因為它正在使用所有 gem,這些 gem 可能在基於第一次安裝的固定路徑上使用),並且其資料庫更新/替換為 Ubuntu 伺服器中的資料庫(透過檔案副本或透過SQL 匯出/匯入)。