GitLab 迁移与升级

方法一:

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内容是否还有

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容