Gitlab+Jenkins學習之路(四)之gitlab備份和恢復

<code>[root@linux-node1 ~]# mkdir /data/backups/gitlab -p
[root@linux-node1 ~]# chown -R git.git /data/
[root@linux-node1 ~]# ll /data/ -d
drwxr-xr-x 3 git git 20 Dec 20 16:21 /data//<code>

(2)修改gitlab配置

<code>[root@linux-node1 ~]# vim /etc/gitlab/gitlab.rb 
gitlab_rails['backup_path'] = "/data/backups/gitlab" #備份路徑
gitlab_rails['backup_keep_time'] = 604800 #備份7天

[root@linux-node1 ~]# gitlab-ctl reconfigure
[root@linux-node1 ~]# gitlab-ctl restart
ok: run: gitaly: (pid 41722) 0s
ok: run: gitlab-monitor: (pid 41735) 1s
ok: run: gitlab-workhorse: (pid 41738) 0s
ok: run: logrotate: (pid 41748) 0s
ok: run: nginx: (pid 41755) 0s
ok: run: node-exporter: (pid 41757) 0s
ok: run: postgres-exporter: (pid 41765) 0s
ok: run: postgresql: (pid 41792) 0s
ok: run: prometheus: (pid 41795) 0s
ok: run: redis: (pid 41807) 0s
ok: run: redis-exporter: (pid 41812) 1s
ok: run: sidekiq: (pid 41822) 0s
ok: run: unicorn: (pid 41831) 0s/<code>

(3)備份

<code>[root@linux-node1 ~]# gitlab-rake gitlab:backup:create
Dumping database ...
Dumping PostgreSQL database gitlabhq_production ... [DONE]
done
Dumping repositories ...
* java/app1 ... [DONE]
* java/app1.wiki ... [SKIPPED]
done
Dumping uploads ...
done
Dumping builds ...
done
Dumping artifacts ...
done
Dumping pages ...
done
Dumping lfs objects ...
done
Dumping container registry images ...
[DISABLED]
Creating backup archive: 1513759548_2017_12_20_10.2.4_gitlab_backup.tar ... done
Uploading backup archive to remote storage ... skipped
Deleting tmp directories ... done
done
done
done
done
done
done
done
Deleting old backups ... done. (0 removed)/<code>

(4)查看備份目錄

<code>[root@linux-node1 ~]# ll /data/backups/gitlab/
total 72
-rw------- 1 git git 71680 Dec 20 16:45 1513759548_2017_12_20_10.2.4_gitlab_backup.tar
#1513759548_2017_12_20_10.2.4為時間戳,備份的時候用的著/<code>

(5)恢復備份

<code>刪除gitlab中的app1的項目,再恢復
停止數據寫入服務:
[root@linux-node1 ~]# gitlab-ctl stop unicorn
[root@linux-node1 ~]# gitlab-ctl stop sidekiq

恢復數據:
[root@linux-node1 ~]# gitlab-rake gitlab:backup:restore BACKUP=1513759548_2017_12_20_10.2.4
[root@linux-node1 ~]# gitlab-ctl restart
ok: run: gitaly: (pid 45486) 0s
ok: run: gitlab-monitor: (pid 45502) 0s
ok: run: gitlab-workhorse: (pid 45507) 1s
ok: run: logrotate: (pid 45525) 0s
ok: run: nginx: (pid 45531) 1s
ok: run: node-exporter: (pid 45536) 0s
ok: run: postgres-exporter: (pid 45540) 1s
ok: run: postgresql: (pid 45547) 0s
ok: run: prometheus: (pid 45555) 1s
ok: run: redis: (pid 45562) 0s
ok: run: redis-exporter: (pid 45568) 1s
ok: run: sidekiq: (pid 45572) 0s
ok: run: unicorn: (pid 45614) 0s/<code>
Gitlab+Jenkins學習之路(四)之gitlab備份和恢復

此時即可恢復原來的項目

<code>郵件配置:
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '[email protected]'
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.126.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "xiaoming"
gitlab_rails['smtp_password'] = "your password"
gitlab_rails['smtp_domain'] = "126.com"
gitlab_rails['smtp_authentication'] = "login"/<code>


分享到:


相關文章: