centos安装gitlab并进行数据迁移

本文详细介绍如何将GitLab从旧服务器迁移至新服务器,包括版本确认、依赖安装、汉化包应用、数据备份与恢复步骤,以及设置自动备份脚本确保数据安全。

1.因业务需要,将原来服务器上的gitlab迁移到另一台服务器上。首先,确定原来的gitlab版本:145旧的服务器,146新服务器
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION ===>10.5.1
2.安装gitlab依赖:
yum install policycoreutils-python curl openssh-server ca-certificates postfix
3.下载gitlab:
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
找到对应版本下载
4.rpm -ivh gitlab-ce-10.5.1-ce.0.el7.x86_64.rpm
gitlab-ctl reconfigure 初始化gitlab
3
4
5.下载安装gitlab汉化包:
项目地址为:https://gitlab.com/xhang/gitlab
我的gitlab版本为10.5.1
git clone https://gitlab.com/xhang/gitlab.git -b v10.5.1-zh
想要其他版本的gitlab:
git clone https://gitlab.com/xhang/gitlab.git -b vX.X.X-zh即可
6
比较源包与汉化包并导出到/下
git diff v10.5.1 v10.5.1-zh >/v10.5.1-zh.diff
将v10.5.1-zh.diff作为补丁更新到gitlab中:
yum install patch -y
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 10.5.1-zh.diff
修改默认gitlab端口:
vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
vim /etc/gitlab/gitlab.rb :
external_url 'http://xxxxx.146'
重启gitlab: gitlab-ctl stop ==> gitlab-ctl start
5.145服务器创建gitlab备份:gitlab-rake gitlab:backup:create
1
6.进行145服务器gitlab备份路径将备份数据拷贝到146新服务器上
cd /var/opt/gitlab/backups
2
将备份数据放置到/var/opt/gitlab/backups
修改备份文件权限:chmod 777 1546916920_2019_01_08_10.5.1_gitlab_backup.tar
7.146新服务器恢复gitlab数据
停止gitlab数据服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
进入/var/opt/gitlab/backups
选择git备份文件号进行恢复
gitlab-rake gitlab:backup:restore BACKUP=1546916920_2019_01_08_10.5.1恢复数据
8
9
迁移完成
8.修改gitlab默认备份路径:
vim /etc/gitlab/gitlab.rb
找到gitlab_rails['backup_path'] = "/data/gitBackup" 取消注释并修改为自定义备份路径
gitlab-ctl reconfigure 重读配置并重启gitlab-ctl restart
9.每天自动备份gitlab,并只保留近7天备份
编辑备份脚本vim /var/opt/gitlab/gitbackup.sh
# !/bin/bash
gitlab-rake gitlab:backup:create CRON=1
将该脚本加入crontab中执行,每天凌晨1点备份 crontab -e:
0 1 * /var/opt/gitlab/gitbackup.sh &>/dev/null
vim /etc/gitlab/gitlab.rb
找到gitlab_rails['backup_keep_time'] = 604800取消注释,
gitlab-ctl reconfigure 重读配置并重启gitlab-ctl restart

### CentOS安装 GitLab 使用 Docker 与不使用 Docker 的差异 #### 1. 安装复杂度 当使用 Docker 来部署 GitLab 时,整个过程被简化为几个简单的命令[^2]。用户无需手动编译或配置复杂的依赖关系,只需拉取预构建的镜像即可完成安装。而不使用 Docker 的情况下,需要手动下载 GitLab 源码,逐一解决其运行所需的各项依赖项,这通常涉及多个软件包以及特定版本的要求[^3]。 #### 2. 资源隔离性 利用 Docker 技术,在容器内部署的应用程序会被完全隔离开来,这意味着即使主机操作系统发生变更或者存在其他服务冲突的情况下,GitLab 还是可以稳定运行于自己的环境中[^4]。相比之下,传统方式下直接在裸机上设置可能会因为不同应用间共享相同的操作系统层而引发潜在兼容性问题。 #### 3. 可移植性和一致性保障 借助 Dockerfile 和相关脚本定义好环境之后,无论在哪台支持 Docker 的机器上面执行相同的指令序列都能够重现一致的结果;而对于非容器化方案来说,则很难做到这一点,尤其是在跨平台迁移过程中更易出现问题[^1]. #### 4. 更新维护便利程度对比分析 对于基于容器的方法而言, 当有新版本发布时只需要简单地pull最新的image然后再重新启动新的container就可以实现无缝升级;然而如果是按照常规流程搭建起来的传统架构形式的话则可能涉及到更多繁琐的手动操作步骤如备份数据、停止现有进程、替换文件夹内容后再恢复数据库等等一系列动作才能顺利完成一次完整的迭代更新工作. ```bash sudo docker pull gitlab/gitlab-ce:latest sudo docker stop $(sudo docker ps -q --filter="name=gitlab") sudo docker rm $(sudo docker ps -a -q --filter="name=gitlab") sudo docker run --detach \ --hostname gitlab.example.com \ --publish 8061:8061 --publish 8060:8060 --publish 8062:8062 \ --name gitlab \ --restart always \ --volume $GITLAB_HOME/config:/etc/gitlab \ --volume $GITLAB_HOME/logs:/var/log/gitlab \ --volume $GITLAB_HOME/data:/var/opt/gitlab \ --shm-size 256m \ gitlab/gitlab-ce:latest ``` 上述代码展示了如何轻松地通过几条命令完成从旧版到新版GitLab实例的切换. #### 5. 性能开销考量因素说明 虽然采用虚拟化技术确实会带来一定额外负载成本(比如内存占用率提高),但对于大多数应用场景尤其是开发测试用途来讲这种影响完全可以忽略不计而且换来的是极大的灵活性优势.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值