是用docker架設的
版本為8.13.1-ce.0
HTTP Port為80
HTTPS Port為443
SSH Port為22,後來改成2111
現在我要移植到新的Server,並且希望連線資訊為以下:
HTTP Port為非80
HTTPS Port:不管
SSH Port為非22
並且clone的網址後面會正常顯示port號
最後是使用官方推薦的方式備份並還原成功的。
在這張圖的最後一段,我是不敢嘗試,所以最好能保持這個原則。
那接下來簡略紀錄一下備份的流程:
- 從舊的gitlab產生備份檔,並且傳到新的Server
- 在新的Server安裝8.13.1-ce.0版本的gitlab,我這裡是用原始的方式安裝,沒用docker
- 於新Server啟動gitlab
- 於新Server的gitlab的gitlab.rb檔案將port改成你要的port,SSH port也是在這改
- 使用gitlab-ctl reconfigure指令重新配置
- 去瀏覽你的新gitlab網頁,看看是不是能看到正常的頁面,記得用你改的port去連,不用設定密碼創建帳號,因為等等會把備份檔還原
- 於gitlab.rb確認它抓取備份檔的路徑,我這裡manage_backup_path有打開並設為true,backup_path也打開並設為"/var/opt/gitlab/backups",其實只拿掉註解而已,因為它預設就是那樣了
- 使用gitlab-ctl reconfigure指令重新配置,並且再去瀏覽一次gitlab網頁,只是確保它還可以動
- 將備份檔複製到/var/opt/gitlab/backups,最後把權限全部打開(chmod 777),以方便等等它執行
- 依照官方說明停止unicorn與sidekiq,並用gitlab-ctl status確認。
- 我的備份檔檔名為這樣:1521280612_gitlab_backup.tar
- 執行還原指令:$ sudo gitlab-rake gitlab:backup:restore BACKUP=1521280612
- 你沒看錯,只放1521280612,後面的_gitlab_backup、tar都不用放,不用雞婆,否則他會跟你說找不到,它很像是認前面這串數字,正常的話他會開始跑一下,做一些把資料匯入的動作,中間會問你是否繼續,回yes
- 重啟:$ sudo gitlab-ctl restart
- 瀏覽你的gitlab,你應該可以用你舊的帳密登入,並且可以在http和ssh clone的網址的部分看到正確的port
- 記得把新gitlab的備份檔權限還原,第9步是設為777了麻!
- 為何不用docker?
- 承上,為什麼要改內部port?
因為clone的網址的port是看docker的內部port,不是看外部的!所以如果我外面連進去是用5656,可以連!但我進去專案裡面看,clone的網址沒有port,因為它預設走80!這樣每次clone都要自己加5656,很不方便!
沒有留言:
張貼留言