方法一:
1,备份老版本gitlab数据并迁移新版本gitlab服务器
停gitlab服务直接备份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,还原数据到新版本gitlab服务
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
不停循环更换image版本,每次升级后都要备份 然后用新的备份进行下一次还原
登陆容器
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数据并迁移新版本gitlab服务器
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,还原数据到新版本gitlab服务
登陆容器
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注册
进入容器
gitlab-runner registers 根据不项目要求去选择引擎和标签,一般引擎选择docker或者k8s,选择docker 最后一个选alpine:latest
修改config.toml中的custom_build_dir可用
简单验证
1.检查之前项目是否都还在
2.拉代码,推代码
3.ci-cd是否还能正常执行
4.以前文档和wiki内容是否还有