GitLab备份管理及邮件配置

释放双眼,带上耳机,听听看~!

备份管理

修改gitlab.rb

在gitlab服务上的gitlab.rb配置文件中加入以下两行代码

[root@abcops_node2 abcops-project]# vim /etc/gitlab/gitlab.rb
#备份路径,建议为专业存储或者带有冗余功能的磁盘
gitlab_rails['backup_path'] = "/data/gitlab/backups"

#备份时间,默认为604800秒,时长为7天,7天过后会重新备份,然后删除上次备份
gitlab_rails['backup_keep_time'] = 604800

创建备份目录

[root@abcops_node2 abcops-project]# mkdir /data/gitlab/backups -p
[root@abcops_node2 abcops-project]# id git 
uid=996(git) gid=992(git) groups=992(git)
[root@abcops_node2 abcops-project]# chown -Rf git.git /data/gitlab/backups/

重置配置文件

[root@abcops_node2 abcops-project]# gitlab-ctl reconfigure
[root@abcops_node2 abcops-project]# gitlab-ctl restart

备份代码

1.加入crontab

#crontab中的命令为gitlab专用备份命令工具
[root@abcops_node2 abcops-project]# crontab -l
#GitLab Code Backup
30 00 * * * /usr/bin/gitlab-rake gitlab:backup:create

2.测试备份

[root@abcops_node2 abcops-project]# /usr/bin/gitlab-rake gitlab:backup:create

查看备份文件

[root@abcops_node2 abcops-project]# ls /data/gitlab/backups/
1563076060_2019_07_14_12.0.3_gitlab_backup.tar

备份文件前面的1563076060是时间戳,2019_07_14是时间
时间戳可以转换为备份时间的

[root@abcops_node2 abcops-project]# date -d @1563076060
Sun Jul 14 11:47:40 CST 2019

恢复

我们备份过后,如要尝试恢复,先把gitlab服务器中的项目代码删除掉,然后尝试恢复

删除项目代码

需要以root身份登录

然后它让你输入项目名称来确认删除

好了,已经删除,现在尝试恢复

恢复代码

1.停止数据写入服务

[root@abcops_node2 abcops-project]# gitlab-ctl stop unicorn
ok: down: unicorn: 1s, normally up
[root@abcops_node2 abcops-project]# gitlab-ctl stop sidekiq
ok: down: sidekiq: 0s, normally up

#恢复后面跟备份文件的时间戳
[root@abcops_node2 abcops-project]# gitlab-rake gitlab:backup:restore BACKUP=1563076060_2019_07_14_12.0.3
Unpacking backup ... done

2.启动数据写入服务

[root@abcops_node2 abcops-project]# gitlab-ctl start unicorn
ok: run: unicorn: (pid 1193) 1s
[root@abcops_node2 abcops-project]# gitlab-ctl start sidekiq
ok: run: sidekiq: (pid 1224) 0s

再次登录gitlab服务器页面,发现项目已经被恢复回来了

邮件配置

配置好邮件以后,后期如果在GitLab界面操作的某些通知,例如合并代码等操作会发送到用户的邮箱当中

#在gitlai.rb中加入以下代码
vim /etc/gitlab/gitlab.rb
gitlab_rails['time_zone'] = 'Asia/Shanghai'                     #时区
gitlab_rails['gitlab_email_enabled'] = true                     #是否打开mail
gitlab_rails['gitlab_email_from'] = 'abcops@abcops.com'         #发件人邮箱
gitlab_rails['gitlab_email_display_name'] = 'gitlab'            #邮箱名称
gitlab_rails['smtp_enable'] = true                              #是否打开smtp服务
gitlab_rails['smtp_address'] = "smtp.abcops.com"                #smtp邮箱服务器地址
gitlab_rails['smtp_port'] = 25                                  #smtp邮箱服务端口
gitlab_rails['smtp_user_name'] = "abcops"                       #邮箱账号
gitlab_rails['smtp_password'] = "abcops"                        #邮箱密码
gitlab_rails['smtp_domain'] = "abcops.com"                      #邮箱服务器域名
gitlab_rails['smtp_authentication'] = "login"                   #认证方式

GitLab及Jenkins整合将在下篇文章中出现,请持续关注

人已赞赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧