將 Gitlab 和 Gitolite 伺服器移到另一台機器

將 Gitlab 和 Gitolite 伺服器移到另一台機器

現在,我的 ubuntu 伺服器上運行著 gitlab 和 gitolite。然而,這台伺服器太慢了,我的公司希望將伺服器移到另一台機器上。有沒有辦法將 gitlab 和 gitolite 伺服器(整個檔案、使用者和設定)移到另一台機器?

再次安裝並建立所有使用者和儲存庫將是我最後的選擇。先感謝您。

答案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 設置,其餘按照官方指南進行,我還給自己做了一些註釋:

自動(無密碼)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 匯出/匯入)。

相關內容