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

  • gitlab的備份和恢復

(1)建立備份目錄,並受權java

[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/

(2)修改gitlab配置node

[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

(3)備份linux

[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)

(4)查看備份目錄nginx

[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爲時間戳,備份的時候用的着

(5)恢復備份git

刪除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

此時便可恢復原來的項目redis

郵件配置:
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'xiaoming@126.com'
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"
相關文章
相關標籤/搜索