docker gitlab backup
说明:下面命令中带有<your container name>
字,是 gitlab 容器的名称,请按实际情况进行代替
在创建备份之前,你不需要停止任何东西
docker exec -t <your container name> gitlab-rake gitlab:backup:create
gitlab_backup.sh
content:
#! /bin/bash
case "$1" in
start)
docker exec -t <your container name> gitlab-rake gitlab:backup:create
;;
esac
嘗試腳本是否可以正常運行
gitlab_backup.sh start
將腳本放入到 /root下,並使用 sudo crontab -e
添加一下內容
0 2 * * * /root/gitlab_backup.sh start
重啟cron服務
sudo service cron reload
sudo service cron restart
进入gitlab容器:
#来自Gitlab docker外的Ubuntu主机
sudo docker exec -it <your container name> /bin/bash
查看gitlab 本地的备份路径
gitlab_rails['backup_path']
在 Gitlab 配置文件 gitlab.rb
是 注释的, 它的默认备份路径是在 /var/opt/gitlab/backups
.
# 来自Gitlab Docker
root@bcc3d4829e2c:/# cat /etc/gitlab/gitlab.rb | grep backup_path
# gitlab_rails['manage_backup_path'] = true
# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
创建一份备份
检测备份
# 来自Gitlab Docker
root@bcc3d4829e2c:/etc/gitlab# ls -lart /var/opt/gitlab/backups
total 2777464
drwxr-xr-x 20 root root 4096 May 24 02:10 ..
drwx------ 2 git root 4096 May 24 02:15 .
-rw-r--r-- 1 root root 2844108800 May 24 02:18 1563732042_2019_07_21_11.1.4_gitlab_backup.tar
备份配置文件和 密钥文件
在上面创建备份时,没有备份 配置文件和密钥文件,这是因为上面一步是使用 使用密钥文件加密Gitlab 数据,如果你将他们保存相同的地方,你将会破坏加密过程。
所以请备份 /etc/gitlab/gitlab.rb
和/etc/gitlab/gitlab-secrets.json
并且将他们保存在一个其它Gitlab 备份数据的安全的地方
还原 Gitlab
你只能通过Gitlab 备份还原 一样的Gitlab版本和类型。并且你需要一个运行中的Gitlab实例。
停止一些 Gitlab 服务
# 来自Gitlab Docker
gitlab-ctl reconfigure
gitlab-ctl start
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl status
ls -lart /var/opt/gitlab/backups
开始还原
备份文件一定可以在 定义在 Gitlab 配置文件/etc/gitlab/gitlab.rb
的gitlab_rails['backup_path']
的路径下找到
在 docker 外主机终端执行
#来自Gitlab docker外的Ubuntu主机
docker exec -it <your container name> gitlab-rake gitlab:backup:restore --trace
还原过程中会出现2次 Do you want to continue (yes/no)?
的询问操作,都输入yes
之后,按Enter
回车键确认操作。
我们当然添加
BACKUP
参数来指定备份文件如果有多个备份文件在备份目录下,BACKUP
参数的值是 备份文件的时间戳,比如:docker exec -it <your container name> gitlab-rake gitlab:backup:restore BACKUP=1563732042_2019_07_21_11.1.4 --trace
重启Gitlab并安全检查
使用gitlabctl restart
命令重启Gitlab服务
# 来自Gitlab Docker
gitlab-ctl restart
使用gitlab-rake gitlab:check SANITIZE=true
命令来发起Gitlab安全检查
# 来自Gitlab Docker
gitlab-rake gitlab:check SANITIZE=true
使用docker ps
来验证 Gitlab 容器健康
#来自Gitlab docker外的Ubuntu主机
sudo docker ps
重置root用戶密碼:
gitlab ce 官方文檔How to reset your root password
進入 docker 容器命令行內,執行
# Form Docker container /bin/bash
# 執行下面的命令啓動一個 Ruby on Rails console,等待 console加載完成
root@44b33d22e70f:/# gitlab-rails console production
-------------------------------------------------------------------------------------
GitLab: 11.1.4 (63daf37)
GitLab Shell: 7.1.4
postgresql: 9.6.8
-------------------------------------------------------------------------------------
Loading production environment (Rails 4.2.10)
irb(main):001:0> user = User.where(id: 1).first #這裏通過用戶id查詢用戶,也可以通過email或用戶名查詢
=> #<User id:1 @root>
irb(main):002:0> user.password="12345678" #設置密碼
=> "12345678"
irb(main):003:0> user.password_confirmation="12345678" #確認密碼
=> "12345678"
irb(main):004:0> user.save! # 保存修改
Enqueued ActionMailer::DeliveryJob (Job ID: 38850b0d-7690-47b7-b5c9-9cf975bae8fd) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", gid://gitlab/User/1
=> true
irb(main):005:0> quit #退出 Ruby on Rails console
參考
- docker部署的GitLab代码自动备份
- Backup and restore Omnibus GitLab configuration
- Backup and restore Gitlab in docker 需要参考这个来写自己的尝试笔记
- gitlab修改root密码
docker gitlab backup的更多相关文章
- docker gitlab迁移 备份 部署 搭建以及各种问题
当前环境 服务器A 服务器B ubuntu docker gitlab(版本一致) docker安装gitlab 由于考虑到gitlab 包含了⾃身的nginx.数据库.端⼝占⽤等等因数,这⾥使⽤的是 ...
- docker gitlab
Alternatively, you can manually launch the gitlab container and the supporting postgresql and redis ...
- docker+gitlab+gitlab-runner部署
环境 服务端:centos7 客户端:window 在centos7上部署docker+gitlab+gitlab-runner,win10利用ssh连接,开发人员只需提交代码,就可以进行项目文件上传 ...
- docker+gitlab的安装和迁移
docker+gitlab的安装 docker search gitlab docker pull docker.io/gitlab/gitlab-ce docker run --name=: -- ...
- 六、Docker+Gitlab
原文:六.Docker+Gitlab (1)下载镜像: docker pull gitlab/gitlab-ce (2)运行镜像: GITLAB_HOME=`pwd`/data/gitlab dock ...
- Docker Gitlab CI 部署 Spring Boot 项目
目前在学习这一块的内容,但是可能每个人环境都不同,导致找不到一篇博客能够完全操作下来没有错误的,所以自己也写一下,记录一下整个搭建的过程. Docker 的安装这里就不赘述了,基本上几行命令都可以了, ...
- Docker+GitLab+Jenkins+kubernetes实现DevOps 持续化集成和持续化部署概念图
Docker+GitLab+Jenkins+kubernetes实现DevOps 持续化集成和持续化部署概念图 转载自:原创 IT综合 作者:百联达 时间:2017-05-09 15:48:08 41 ...
- docker gitlab,redmine,etc development enviroments
sameersbn-gitlab is better more than officals sameersbn/redmine https://hub.docker.com/r/sameersbn/r ...
- docker gitlab安装
mkdir -p /data/docker/volumes/gitlab chmod 777 /data/docker/volumes/gitlab cd /data/docker/volumes/g ...
随机推荐
- Octave的安装
本文是参考吴恩达老师的深度学习视频而做的笔记 深度学习 引言 挑战:AI真正的挑战在于解决那些对人类来说很容易执行,但很难形式化描述的问题,比如识别人们所说的话/图像中的脸/分辨苹果和梨. 解决方案: ...
- BZOJ-3495 前缀优化建图2-SAT
题意:有n个城镇被分成了k个郡,有m条连接城镇的无向边.要求给每个郡选择一个城镇作为首都,满足每条边至少有一个端点是首都. 解法:以前没学过,参考https://blog.csdn.net/linkf ...
- docker linux基本操作
容器运行起来之后一些基本的工具还是要安装好: 这个工具的安装方式和linux是一样的,因为容器本身就是一个微linux系统 先安装 apt, 1 / apt-get update 安装了apt之后 可 ...
- mongoose 常用数据库操作 删除
删除 Model.remove(conditions, [callback]) try.js var User = require("./user.js"); function d ...
- 数组循环移动 空间复杂度O(1)
---恢复内容开始--- 题目大意: 输入元素个数,输入数组,输入右移步数,输出结果: 基本思路: 可以把数组(从下标为0开始存储)看成两部分,分别是[0,n-step-1],[n-step,n-1] ...
- Java高并发网络编程(二)BIO
一.阻塞 服务器端 public class BIOServer { public static void main(String[] args) throws Exception { ServerS ...
- Shiro学习(23)多项目集中权限管理
在做一些企业内部项目时或一些互联网后台时:可能会涉及到集中权限管理,统一进行多项目的权限管理:另外也需要统一的会话管理,即实现单点身份认证和授权控制. 学习本章之前,请务必先学习<第十章 会话管 ...
- Sqli labs系列-less-2 详细篇
就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...
- centos7 安装telent和telnet-server
安装centos7 无telnet命令 先检查CentOS7.0是否已经安装以下两个安装包:telnet-server.xinetd.命令如下: rpm -q telnet-server rpm -q ...
- Zabbix 历史数据存储到 Elasticsearch
Zabbix 历史数据存储到 Elasticsearch Zabbix 3.4.6 版本开始支持历史数据存储到 Elasticsearch, 早就想测试这个功能,最近有个需求需保存 zabbix 的历 ...