gitlab数据备份及恢复

发布时间 2023-10-08 09:35:43作者: 小糊涂90


#准备10.0.0.150 centos8主机安装gitlab
官网:https://packages.gitlab.com/gitlab/gitlab-ce/

[root@gitlab ~]#wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/8/gitlab-ce-15.3.2-ce.0.el8.x86_64.rpm/download.rpm

#Requires:
/bin/sh
openssh-server
perl
policycoreutils-python-utils

[root@gitlab ~]#yum install -y openssh-server perl policycoreutils-python-utils
[root@gitlab ~]#rpm -ivh download.rpm

#修改配置文件
[root@gitlab ~]#grep "^[^#]" /etc/gitlab/gitlab.rb
external_url 'http://10.0.0.150'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "1538885062@qq.com"
gitlab_rails['smtp_password'] = "wwfvawpshfch"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '1538885062@qq.com'
user['git_user_email'] = "1538885062@qq.com"

#执行配置及启动服务,每此修改配置文件都需要执行此操作
[root@gitlab ~]#gitlab-ctl reconfigure

#验证邮箱
[root@gitlab ~]#gitlab-rails console
--------------------------------------------------------------------------------
Ruby: ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-linux]
GitLab: 15.3.2 (e5a7085d434) FOSS
GitLab Shell: 14.10.0
PostgreSQL: 13.6
------------------------------------------------------------[ booted in 15.02s ]
Loading production environment (Rails 6.1.6.1)
irb(main):001:0> Notify.test_email('1538885062@qq.com','test','hello is gitlab').deliver_n
ow
Delivered mail 6311c5dc2b611_969246645377a@gitlab.tan.com.mail (1141.9ms)
=> #<Mail::Message:334240, Multipart: false, Headers: <Date: Fri, 02 Sep 2022 16:59:08 +0800>, <From: GitLab <1538885062@qq.com>>, <Reply-To: GitLab <noreply@10.0.0.150>>, <To: 1538885062@qq.com>, <Message-ID: <6311c5dc2b611_969246645377a@gitlab.tan.com.mail>>, <Subject: test>, <Mime-Version: 1.0>, <Content-Type: text/html; charset=UTF-8>, <Content-Transfer-Encoding: 7bit>, <Auto-Submitted: auto-generated>, <X-Auto-Response-Suppress: All>>
#邮箱查看,接受邮件成功。

#默认登录用户root,密码查看:
[root@gitlab ~]#cat /etc/gitlab/initial_root_password

#不使用prometheus建议关掉,消耗大量内存。
[root@gitlab ~]#free -m
total used free shared buff/cache available
Mem: 7933 4294 149 121 3489 3220
Swap: 2047 11 2036
[root@gitlab ~]#vim /etc/gitlab/gitlab.rb
prometheus['enable'] = false
[root@gitlab ~]#gitlab-ctl reconfigure
[root@gitlab ~]#free -m
total used free shared buff/cache available
Mem: 7933 2901 1590 98 3442 4635
Swap: 2047 11 2036


###gitlab数据备份与恢复
1.查看组件状态
[root@gitlab ~]#gitlab-ctl status
run: alertmanager: (pid 38169) 1307s; run: log: (pid 38022) 1331s
run: gitaly: (pid 38196) 1305s; run: log: (pid 37306) 1434s
run: gitlab-exporter: (pid 38145) 1309s; run: log: (pid 37818) 1351s
run: gitlab-kas: (pid 38113) 1311s; run: log: (pid 37575) 1422s
run: gitlab-workhorse: (pid 38124) 1311s; run: log: (pid 37720) 1368s
run: logrotate: (pid 37223) 1448s; run: log: (pid 37255) 1445s
run: nginx: (pid 37748) 1364s; run: log: (pid 37759) 1363s
run: node-exporter: (pid 38135) 1310s; run: log: (pid 37807) 1355s
run: postgres-exporter: (pid 38183) 1306s; run: log: (pid 38060) 1325s
run: postgresql: (pid 37436) 1429s; run: log: (pid 37536) 1427s
run: prometheus: (pid 38154) 1308s; run: log: (pid 37904) 1337s
run: puma: (pid 37653) 1382s; run: log: (pid 37660) 1381s
run: redis: (pid 37268) 1441s; run: log: (pid 37276) 1440s
run: redis-exporter: (pid 38147) 1309s; run: log: (pid 37835) 1345s
run: sidekiq: (pid 39364) 726s; run: log: (pid 37678) 1375s

2.备份
先创建一个project,如何执行备份操作
[root@gitlab ~]#/opt/gitlab/bin/gitlab-rake gitlab:backup:create

[root@gitlab ~]#ll /var/opt/gitlab/backups/1662111184_2022_09_02_15.3.2_gitlab_backup.tar -rw------- 1 git git 409600 Sep 2 17:33 /var/opt/gitlab/backups/1662111184_2022_09_02_15.3.2_gitlab_backup.tar

3.在创建一个project,执行恢复操作
[root@gitlab ~]#gitlab-ctl stop puma
[root@gitlab ~]#gitlab-ctl stop sidekiq
ok: down: sidekiq: 0s, normally up


[root@gitlab ~]#gitlab-rake gitlab:backup:restore BACKUP=1662111184_2022_09_02_15.3.2
#输入两次yes

[root@gitlab ~]#gitlab-ctl restart
ok: run: alertmanager: (pid 44752) 0s
ok: run: gitaly: (pid 44763) 0s
ok: run: gitlab-exporter: (pid 44778) 0s
ok: run: gitlab-kas: (pid 44780) 1s
ok: run: gitlab-workhorse: (pid 44792) 0s
ok: run: logrotate: (pid 44804) 1s
ok: run: nginx: (pid 44810) 0s
ok: run: node-exporter: (pid 44823) 1s
ok: run: postgres-exporter: (pid 44830) 0s
ok: run: postgresql: (pid 44916) 0s
ok: run: prometheus: (pid 44925) 1s
ok: run: puma: (pid 44937) 0s
ok: run: redis: (pid 44942) 1s
ok: run: redis-exporter: (pid 44948) 0s
ok: run: sidekiq: (pid 44955) 1s

#登录web界面查看,备份后新建的project没有了,恢复成功。