GitLab搭建、备份、迁移

guiyun affiliate

1.Gitlab搭建

安装依赖环境

sudo yum install -y curl policycoreutils-python openssh-server

安装邮件服务

sudo yum install -y postfix

设置postfix服务开机启动

sudo systemctl enable postfix

启动postfix服务

sudo systemctl start postfix

添加gitlab软件包存储库

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

安装gitlab

sudo yum install -y gitlab-ce

重新配置gitlab

sudo gitlab-ctl reconfigure

配置firewall,开放对应服务

sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload #重载防火墙以生效配置

2.Gitlab备份

编写一个简单的脚本,我这边是叫gitlab-backup

#!/bin/bash
#
cd /var/opt/gitlab/backups  #进入gitlab备份目录
echo "cd /var/opt/gitlab/backups"

echo "create a gitlab-backup file"
gitlab-rake gitlab:backup:create #创建一个git完整备份文件
echo "complete"

查看一下crond进程状态是否启动

[root@localhost ~]# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-08-21 12:59:10 CST; 2 months 22 days ago
 Main PID: 3154 (crond)
   CGroup: /system.slice/crond.service
           └─3154 /usr/sbin/crond -n

Aug 21 12:59:10 localhost.localdomain systemd[1]: Started Command Scheduler.
Aug 21 12:59:10 localhost.localdomain crond[3154]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 57% if used.)
Aug 21 12:59:10 localhost.localdomain crond[3154]: (CRON) INFO (running with inotify support)

使用crond创建定时任务去调用脚本执行命令完成定时备份

[root@localhost ~]# crontab 
0 22 * * 6 bash /var/spool/cron/gitlab-backup.sh > /dev/null                       
[root@localhost ~]# crontab -l
0 22 * * 6 bash /var/spool/cron/gitlab-backup.sh > /dev/null

3.Gitlab迁移

迁移如同备份与恢复的步骤一样,
只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可(如果你没修改过默认备份目录的话)
但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同.
比如新服务器安装的是10.2.2版本的Gitlab, 那么迁移之前, 最好将老服务器的Gitlab
升级为10.2.2在进行备份

迁移较简单的方法就是scp,可以理解为ssh管道下的cp命令。把当前一个文件copy到远程服务器上。
比如下面示例,-r是递归,将本地a目录及其下属所有子文件或目录复制到远程主机的root目录下

scp -r /home/a root@192.168.0.8:/home/root

然后会提示输入192.168.0.8root的密码,接着就开始复制传输了。

数据恢复

cd /var/opt/gitlab/backups 
chmod 777 XXXXXX_gitlab_backup.tar   
gitlab-rake gitlab:backup:restore BACKUP=XXXXXX_gitlab_backup.tar


guiyun affiliate

作者头像
南宫俊逸创始人

君子好学,自强不息~

上一篇:HTML家政服务公司网站模板
下一篇:如何制作多系统启动盘

相关推荐

4

发表评论