方法一:
1,備份老版本gitlab數(shù)據(jù)并遷移新版本gitlab服務(wù)器
停gitlab服務(wù)直接備份data和config目錄
#!/bin/bash
sudoscp?-rgitlab/configbetalpha@xxx.xxx.xxx.xxx:/xxx/gitlab_old/&&
sudo tar -zcvf /xxx/data.tar.gz /xxx/gitlab/data &&
scp?-r?/xxx/data.tar.gz?betalpha@xxx.xxx.xxx.xxx:/xxx/gitlab_old/
2,搭建同版本gitlab
docker run --detach --publish 3001:80 --publish 4022:22 --publish 3443:443 --name gitlab_old --restart always --volume /xxx/gitlab/config:/etc/gitlab?--volume /xxx/gitlab/logs:/var/log/gitlab?--volume /xxx/gitlab/data:/var/opt/gitlab?--volume /xxx/gitlab/backups:/var/opt/gitlab/backups?gitlab/gitlab-ce:11.7.5-ce.0
3,還原數(shù)據(jù)到新版本gitlab服務(wù)
1,docker?exec?-it [容器ID] chown git /var/opt/gitlab/.ssh/authorized_keys
2,dockerexec-it [容器ID] chmod?2770?/var/opt/gitlab/git-data/repositories
3,dockerexec-it [容器ID] gitlab-ctl?reconfigure
登陸容器??
update-permissions &&?chmod 2770 /var/opt/gitlab/git-data/repositories
docker restart gitlab_old
4,升級新版本gitlab 不支持跨版本升級要小版本一個一個迭代升級?
11.3.0-ce.0 ->? 11.3.4-ce.0? ? ->? ?11.11.8-ce.0? ?->? ?12.0.12-ce.0? ?->? ? 12.4.1-ce.0?
12.1.0 -> 12.10.14 -> 13.0.12 -> 13.1.0 -> 13.2.0 -> 13.3.1 -> 13.4.0
11.7.5?->?11.11.8?->?12.0.12?->?12.1.17?->?12.10.14?->?13.0.14?->?13.1.11->?13.8.8->13.12.10->14.0.7->14.1.3(升級到這就可以了官方也只支持到14.1.2,再往上升級可能會報錯)-->14.2.1 -->latest
不停循環(huán)更換image版本,每次升級后都要備份 然后用新的備份進(jìn)行下一次還原
登陸容器
gitlab-ctl stop??
gitlab-rake gitlab:backup:create
docker run --detach --publish 3001:80 --publish 4022:22 --publish 3443:443 --name gitlab_old --restart always --volume /xxx/gitlab/config:/etc/gitlab--volume /xxx/gitlab/logs:/var/log/gitlab--volume /xxx/gitlab/data:/var/opt/gitlab--volume /xxx/gitlab/backups:/var/opt/gitlab/backupsgitlab/gitlab-ce:xx.xx.xx-ce.0
5,升級后修改url登陸地址
方法二:
1,備份老版本gitlab數(shù)據(jù)并遷移新版本gitlab服務(wù)器
gitlab-rake gitlab:backup:create
2,搭建同版本gitlab
docker run --detach --publish 3001:80 --publish 4022:22 --publish 3443:443 --name gitlab_old --restart always --volume /xxx/gitlab/config:/etc/gitlab--volume /xxx/gitlab/logs:/var/log/gitlab--volume /xxx/gitlab/data:/var/opt/gitlab--volume /xxx/gitlab/backups:/var/opt/gitlab/backupsgitlab/gitlab-ce:11.7.5-ce.0
3,還原數(shù)據(jù)到新版本gitlab服務(wù)
登陸容器
gitlab-ctl stop unicorn? ?
gitlab-ctl stop sidekiq
chmod 777 /var/opt/gitlab/backups/1530156812_2018_06_28_10.8.4_gitlab_backup.tar
gitlab-rake gitlab:backup:restore BACKUP=1530156812_2018_06_28_10.8.4?
gitlab-ctl start? ?
4,升級新版本gitlab
gitlab-ctl stop??
gitlab-rake gitlab:backup:create
docker run --detach --publish 3001:80 --publish 4022:22 --publish 3443:443 --name gitlab_old --restart always --volume /xxx/gitlab/config:/etc/gitlab--volume /xxx/gitlab/logs:/var/log/gitlab--volume /xxx/gitlab/data:/var/opt/gitlab--volume /xxx/gitlab/backups:/var/opt/gitlab/backupsgitlab/gitlab-ce:xx.xx.xx-ce.0
?gitlab-runner搭建
docker run --detach --publish 10080:80 --publish 10022:22?--name?gitlab-runner?--restart always --volume?/var/run/docker.sock:/var/run/docker.sock?--volume?/xxx/gitlab-runner/config:/etc/gitlab-runnergitlab/gitlab-runner:latest
?gitlab-runner注冊
進(jìn)入容器
gitlab-runner registers 根據(jù)不項目要求去選擇引擎和標(biāo)簽,一般引擎選擇docker或者k8s,選擇docker 最后一個選alpine:latest
修改config.toml中的custom_build_dir可用
簡單驗證
1.檢查之前項目是否都還在
2.拉代碼,推代碼
3.ci-cd是否還能正常執(zhí)行
4.以前文檔和wiki內(nèi)容是否還有