前言
目前的gitlab仓库在私人的服务器上,而且服务器的磁盘马上打满,所以需要进行一次迁移
一、迁移
1、新建服务器
我们创建一台4C8G的ubuntu节点,初始化配置,准备安装
2、查看gitlab版本
11.1.4 一个非常旧的版本了,我们在进行迁移时,必须要保持版本一致!
3、备份gitlab
进入到原gitlab上
gitlab-rake gitlab:backup:create
会生成一个tar包:
cd /var/opt/gitlab/backups/
1691154832_2023_08_04_11.1.4_gitlab_backup.tar
4、在新节点上部署gitlab
(1)、安装依赖
apt update
apt install ca-certificates curl openssh-server postfix
(2)、下载依赖包
wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/bionic/gitlab-ce_11.1.4-ce.0_amd64.deb/download.deb
mv download.deb gitlab-ce_11.1.4-ce.0_amd64.deb
(3)、安装Gitlab
dpkg -i gitlab-ce_11.1.4-ce.0_amd64.deb
(4)、复制配置文件
cd /etc/gitlab
mv gitlab.rb gitlab.rb.back
#进入到原来的gitlab里面
cd /etc/gitlab
scp gitlab.rb 1.1.1.1:/etc/gitlab
scp gitlab-secrets.json 1.1.1.1:/etc/gitlab
#备注:1.1.1.1为新机器的IP
(5)、上传证书
#将证书上传到服务器上
解压证书
unzip gitlab.csshavas.cn_nginx.zip
mkdir /etc/gitlab/ssl
mv gitlab.csshavas.cn_bundle.pem /etc/gitlab/ssl/ceshi.sllyn.com.pem
mv gitlab.csshavas.cn.key /etc/gitlab/ssl/ceshi.sllyn.com.key
(6)、修改配置文件
external_url 'https://gitlab.csshavas.cn'
nginx['enable'] = true
#nginx['listen_port'] = 80
#nginx['redirect_http_to_https_port'] = 443
nginx['client_max_body_size'] = '1024m'
nginx['ssl_certificate'] = "/etc/gitlab/ssl/ceshi.sllyn.com.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/ceshi.sllyn.com.key"
备注:需要注释掉以上几项内容,将80端口关闭,只开启443端口
(7)、重载配置文件
gitlab-ctl reconfigure
#等待服务启动完成
(8)、导入备份到数据
cp /root/gitlab/1691154832_2023_08_04_11.1.4_gitlab_backup.tar /var/opt/gitlab/backups/
chmod 777 1691154832_2023_08_04_11.1.4_gitlab_backup.tar
#开始导入数据
gitlab-rake gitlab:backup:restore BACKUP=1691154832_2023_08_04_11.1.4
#等待数据导入完成,重新登录gitlab:https://gitlab.csshavas.cn简单查看数据是否完整
#查看用户/查看提交版本/查看分支等等
(9)、迁移完成
如果以上访问与检查没有什么问题, 迁移完成
二、升级Gitlab
1、说明
由于现在11.1.4版本太低,需要对现在的服务进行升级,升级到过程需要一步一步来,不能直接升到最高版本
2、升级版本
11.1.4
11.5.0
11.11.8
12.0.12
12.10.14
13.0.12
对于我们现在的版本,进行逐步升级
3、下载安装包,并进行升级
dpkg -i gitlab-ce_11.5.0-ce.0_amd64.deb
dpkg -i gitlab-ce_11.11.8-ce.0_amd64.deb
dpkg -i gitlab-ce_12.0.12-ce.0_amd64.deb
dpkg -i gitlab-ce_12.10.14-ce.0_amd64.deb
dpkg -i gitlab-ce_13.0.12-ce.0_amd64.deb
#备注:每次升级完一个版本,进行gitlab-ctl reconfigure重新加载配置文件,然后访问gitlab保障每一步都是正常的,如果出现问题,例如访问502,查看/var/log/gitlab下的日志,进行排查
4、检查升级后的版本
暂时升级到13.0.12,使用一段时间后在进行升级,目标到15版本,最新为16
5、定时备份
gitlab作为互联网公司最终要的数据,我们需要进行定时备份
备份脚本:
vim /opt/script/gitlab-backup.sh
#!/bin/bash
#backup gitlab
/opt/gitlab/bin/gitlab-rake gitlab:backup:create
#clean backup
find /var/opt/gitlab/backups/ -n '*.tar' -mtime +10 | xargs rm -rf
配置定时任务:
crontab -e
1 1 * * * /usr/bin/bash /opt/script/gitlab-backup.sh
#备注:每天凌晨1点1分开始备份,并保存10天到备份文件
[完成]
HTML 2436 字数 93 段落