gitlab项目的备份与迁移
最近工作中需要用到gitlab项目的备份与迁移工作,因此做了一个简单的部署配置,这里小小记录一下。
一、gitlab的安装
1、安装准备
1、本人由于在centos7上部署gitlab,因此使用的gitlab的版本为 gitlab-ce-13.1.2-ce.0.el7.x86_64.rpm,这里提供清华的镜像网站 https://mirrors.tuna.tsinghua.edu.cn/ 。
这里我选择的是 gitlab-ce 社区版
2、进入后根据自身部署系统下载相应的安装包
3、因为我的centos版本为el7的版本,可在linux上使用 uname -a 命令查看:
4、进入el7文件夹后,可选择相应的版本下载,其它系统操作类似。
重点:因为本人之前使用的gitlab版本为 13.1.2 ,所以在需要恢复的服务器上也安装相同版本的gitlab,否则前者备份好的包无法在后者上进行恢复。
5、rpm 包的安装命令为: rpm -ivh gitlab-ce-13.1.2-ce.0.el7.x86_64.rpm
2、安装配置必要的依赖
1、安装防火墙
yum install firewalld systemd -y
2、开启防火墙
service firewalld start
3、安装SSH协议
yum install -y curl policycoreutils-python openssh-server
4、设置SSH服务开机自启动
systemctl enable sshd
5、启动SSH服务
systemctl start sshd
6、添加HTTP服务到firewalld
firewall-cmd --permanent --add-service=http
7、添加HTTPS服务到firewalld
firewall-cmd --permanent --add-service=https
8、重启防火墙
systemctl reload firewalld
9、安装Postfix以发送通知邮件
yum install postfix
10、将postfix服务设置成开机自启动
systemctl enable postfix
11、启动postfix
systemctl start postfix
二、gitlab的配置
在gitlab 安装完毕之后,会默认在 /etc 下创建一个 gitlab 目录,配置文件也放在这里,如上图 gitlab.rb 文件。
打开配置文件进行修改:
## 修改访问的的路径,端口可加可不加,不加时在浏览器访问不需要添加端口
external_url 'http://192.168.2.163'
## 备份路径,备份的包可放在自定义位置
gitlab_rails['backup_path'] = "/home/gitbackups"
## 备份文件的生命周期,我这里设置了15天
gitlab_rails['backup_keep_time'] = 1296000
2、配置完毕之后,需要刷新配置信息
gitlab-ctl reconfigure
配置刷新后,会在 /var/opt/gitlab 目录下创建许多必要插件。
3、启动gitlab
gitlab-ctl start
三、gitlab创建备份
1、创建备份文件,首先进行老服务器上的gitlab备份,使用下方命令
gitlab-rake gitlab:backup:create
备份之后我的备份包还在 gitlab_rails['backup_path'] = “/home/gitbackups” 下,因为我在配置文件中已自定义,若无修改,则默认备份到 /var/opt/gitlab/backups 目录下,
2、自动备份设置
在 /etc 下有一个 crontab 文件,可以设置自动执行某些命令,每一行代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,每个字段之间用空格分割,没用的段用*代替,格式如下:
m h dom mon dow user command
修改之后重启crond服务,systemctl restart crond, 此后定时会生效。
具体cron写法可看 http://www.cnblogs.com/kaituorensheng/p/4494321.html
四、gitlab备份恢复
1、将老服务器上的备份包拷贝一份到新服务器的 gitlab_rails['backup_path'] = “/home/gitbackups”下,你配置文件中写的什么位置,拷贝过来的包就放在什么位置,并在新服务器上给其设置 777 权限,避免恢复过程中某些插件权限不够的情况。
chmod 777 xxxxxx.tar
2、执行命令停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
3、备份恢复
gitlab-rake gitlab:backup:restore BACKUP=备份文件编号
例如:我的备份包为 1618941697_2021_04_21_13.1.2_gitlab_backup.tar,那么备份文件编号就为 1618941697_2021_04_21_13.1.2,选整个文件名称没用。
gitlab-rake gitlab:backup:restore BACKUP=1618941697_2021_04_21_13.1.2
在恢复过程中会遇到两个交互界面,都输入 yes,之后就会安装成功。
4、访问新gitlab界面
查看 /etc/gitlab/gitlab.rb 文件中 external_url,直接访问该地址就能进入到首页。
5、密码修改
若访问页面忘记了账号和密码,可查看以下链接修改。
http://www.eryajf.net/5315.html