关于Bitnami GitLab 8.9.6迁移至最新GitLab CE omnibus的技术咨询
我之前帮团队处理过类似的Bitnami GitLab迁移升级需求,结合官方最佳实践,给你整理一套可行的方案——因为你的版本跨度极大(8.9.6到最新版),且Bitnami停止了CentOS安装器支持,直接升级走不通,所以我们采用**「备份旧数据 + 部署全新Omnibus环境 + 导入数据自动升级」**的路径:
一、先做好旧环境的完整备份
这一步绝对不能省,避免迁移过程中数据丢失:
- 备份Git仓库数据:Bitnami GitLab的仓库默认存在
/opt/bitnami/gitlab/data/repositories,用tar打包:tar -czf gitlab_repos_backup.tar.gz /opt/bitnami/gitlab/data/repositories - 备份外部数据库:根据你用的数据库类型执行备份命令:
- PostgreSQL:
pg_dump -U gitlab gitlabhq_production > gitlab_db_backup.sql - MySQL/MariaDB:
mysqldump -u gitlab -p gitlabhq_production > gitlab_db_backup.sql
- PostgreSQL:
- 备份关键配置文件:把Bitnami的GitLab配置目录打包,方便后续提取核心配置:
tar -czf gitlab_config_backup.tar.gz /opt/bitnami/gitlab/config
二、部署全新的GitLab CE Omnibus环境
- 按照对应系统的官方方式安装最新版Omnibus(比如CentOS用yum、Ubuntu用apt),安装完成后先启动一次确认基础服务正常,然后停止服务:
gitlab-ctl stop - 暂时不要执行
gitlab-ctl reconfigure,等我们导入数据后再配置。
三、迁移数据到新环境
1. 迁移仓库数据
- 把旧环境的
gitlab_repos_backup.tar.gz传到新服务器,解压到Omnibus的仓库默认路径:tar -xzf gitlab_repos_backup.tar.gz -C /var/opt/gitlab/git-data/ - 修正权限,确保GitLab运行用户
git能访问:chown -R git:git /var/opt/gitlab/git-data/repositories
2. 导入数据库
- 先在新环境创建对应的数据库和用户(以PostgreSQL为例):
gitlab-psql -c "CREATE USER gitlab WITH PASSWORD '你的数据库密码';" gitlab-psql -c "CREATE DATABASE gitlabhq_production OWNER gitlab;" - 导入旧数据库备份:
psql -U gitlab gitlabhq_production < gitlab_db_backup.sql
3. 配置新环境的GitLab
- 编辑Omnibus的主配置文件
/etc/gitlab/gitlab.rb,从旧配置备份中提取核心参数(比如外部数据库连接、域名、SMTP设置),填入对应的配置项,示例:external_url 'https://你的GitLab域名.com' # 数据库配置(根据你实际用的数据库修改) gitlab_rails['db_adapter'] = 'postgresql' gitlab_rails['db_host'] = '你的外部数据库地址' gitlab_rails['db_port'] = 5432 gitlab_rails['db_username'] = 'gitlab' gitlab_rails['db_password'] = '你的数据库密码' gitlab_rails['db_database'] = 'gitlabhq_production' # 其他配置比如SMTP、LDAP等,从旧配置中对应迁移 - 执行配置生效:
gitlab-ctl reconfigure
四、执行自动升级并验证
- 启动GitLab服务:
gitlab-ctl start - 观察升级日志,GitLab会自动处理从8.9.6到最新版的所有数据库schema迁移:
耐心等待迁移完成,这个过程可能会比较久(因为版本跨度大),别中途中断服务。tail -f /var/log/gitlab/gitlab-rails/production.log - 功能验证:
- 登录GitLab后台,检查用户、项目、仓库是否完整显示
- 测试提交代码、创建Issue、合并请求等核心功能,确保一切正常
- 检查CI/CD配置(如果有的话)是否能正常运行
关键注意事项
- 数据库版本兼容性:最新版GitLab对数据库版本有要求(比如PostgreSQL需要12+),如果你的旧外部数据库版本过低,需要先单独升级数据库,再导入备份
- 资源充足性:迁移过程会消耗大量CPU和内存,确保新服务器有足够的资源,避免迁移失败
- 备份验证:迁移前一定要检查备份文件的完整性,比如解压仓库备份看看文件是否齐全,数据库备份可以在本地测试导入
内容的提问来源于stack exchange,提问作者maestromani
相关产品推荐
相关产品推荐

