gitlab安装/备份/恢复
2023-12-26 22:03:35
最近公司gitlab服务器因为误删文件导致系统起不来,幸好之前有做备份脚本,得以恢复
gitlab恢复和安装的必须是同一个版本,否则不能恢复
技术博客 http://idea.coderyj.com/
1.恢复要准备资料
*.gitlab_backup.tar 是备份文件,前面的 12.0.9是版本号,要想恢复必须下载这个版本 下载链接 https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=12.0.9&filter=all&dist=
gitlab.rb 是配置文件,包括端口ip等等, gitlab-secrets.json 是数据库加密的秘钥,恢复数据库就靠它了
下载的时候记得要下载匹配你系统的版本
2.安装gitlab,将下载好的 .deb文件拷贝到服务器上开始安装
sudo dpkg -i gitlab-ce_12.0.9-ce.0_amd64.deb
漫长等待 中间会询问 输入 yes就OK了
3.设置配置文件 vim /etc/gitlab/gitlab.rb
# 改成你服务器的外网地址 ip:port
external_url 'http://gitlab.example.com'
4.重载配置 gitlab-ctl reconfigure
5.启动 gitlab-ctl start
6.登录网址去重置密码,或者写代码
sudo gitlab-rails console -e production
user = User.where(id: 1).first
user.password = 'qwer1234'
user.password_confirmation = 'qwer1234'
user.save!
exit
7.拷贝文件
- 将配置文件和数据库秘钥拷贝到
/etc/gitlab
目录
cp -r gitlab.rb /etc/gitlab/
cp -r gitlab-secrets.json /etc/gitlab/
- 将备份文件拷贝到
/var/opt/gitlab/backups/
cp -r 1703008988_2023_12_20_12.0.9_gitlab_backup.tar /var/opt/gitlab/backups/
8.停止gitlab
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
9.开始恢复 cd /var/opt/gitlab/backups/
# 只能到版本号这里,不然就找不到恢复文件了
gitlab-rake gitlab:backup:restore BACKUP=1703008988_2023_12_20_12.0.9
恢复的过程中会询问 直接输入 yes就OK了
10.漫长的等待之后你发现恢复好了, 直接访问你的文件就回来了
11.gitlab备份
# 手动备份
gitlab-rake gitlab:backup:create
- 备份之后会存在
/var/opt/gitlab/backups/
目录, 配置文件和数据库文件在/etc/gitlab
不会自动备份,需要手动来备份
gitlab.rb
是配置文件,包括端口ip等等,gitlab-secrets.json
是数据库加密的秘钥,恢复数据库就靠它了
12.编写脚本每天备份一次
#! /bin/sh
### BEGIN INIT INFO
# Provides: gitlab_back.sh
# Required-start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the gitlab_back.sh daemon
# Description: starts gitlab_back.sh using start-stop-daemon
### END INIT INFO
# 遇到错误就退出
#gitlab_version 12.0.9
set -e
dir=/opt/gitlab/bin
cd $dir
# 自动备份sql文件
path=/var/opt/gitlab/backups
time2=$(date "+%Y%m%d%H%M%S")
#如果文件夹不存在,创建文件夹
if [ ! -d $path ]; then
mkdir -p $path
fi
gitlab-rake gitlab:backup:create CRON=1
#删除30天之前的文件
find $path -name "*_gitlab_backup.tar" -mtime +30 -exec rm {} \;
- 设置定时任务
crontab -e
0 1 1 * * /opt/back/gitlab_back.sh
文章来源:https://blog.csdn.net/simplyou/article/details/135230101
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!