安装新的 GitLab
先安装基本的依赖包
- sudo yum install -y curl policycoreutils-python openssh-server
- sudo systemctl enable sshd
- sudo systemctl start sshd
- sudo firewall-cmd --permanent --add-service=http
- sudo systemctl reload firewalld
- sudo yum install postfix
- sudo systemctl enable postfix
- sudo systemctl start postfix
获取 GitLab yum 源
- curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
- ##### 开始安装
安装前先设置 hosts 解析, 这样就能通过域名方式访问 GitLab, 同时后续迁移时也不需要改动 GitLab 使用的数据的访问 url
如果非公网域名, 内部的域名, 如果没有 dns 解析, 则客户端访问时, 同样需要设置本机的 hosts 记录
这里以域名 Git.afcat.com.cn 为例, 我在 hosts 文件中增加一行解析记录
- VIM /etc/hosts
- 10.24.40.134 Git.afcat.com.cn
- ##### 使用 yum 安装
- bash sudo EXTERNAL_URL="https://git.afcat.com.cn" yum install -y GitLab-ce
安装完就能访问了 https://git.afcat.com.cn, 打开页面后, 会让你设置 root 用户的密码. 该 root 是页面的登陆账号的 root, 不是服务器系统的 root 账号
迁移到新的 GitLab
迁移要保证两台 GitLab 版本完全一致, 否则原来服务器的备份数据无法导入到新的 GitLab 服务器上.
先查看原来的 GitLab 版本号
GitLab-rake GitLab:env:info
假设原来的版本号为: 8.8.5
那么在新机器上安装命令 GitLab 版本时需要带上版本号
sudo EXTERNAL_URL="https://git.afcat.com.cn" yum install -y GitLab-ce-8.8.5 --nogpgcheck
以下操作在原来的 GitLab 服务器上操作
创建备份文件
GitLab-rake GitLab:backup:create STRATEGY=copy
备份结果
记住下面这个文件名, 还原时用的上
1531878574_gitlab_backup.tar
默认备份位置
/var/opt/GitLab/backups
目录
如果需要修改默认备份位置, 可编辑
/etc/GitLab/GitLab.rb
配置文件
VIM /etc/GitLab/GitLab.rb
找到 gitlab_rails['backup_path'] 配置
- # 设置备份路径
- gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
- # 设置备份过期时间
- gitlab_rails['backup_keep_time'] = 604800
改完配置必须执行下面的命令, 使配置生效
GitLab-ctl reconfigure
打包配置文件
- /etc/GitLab/GitLab.rb # 配置文件须备份
- /etc/GitLab/GitLab-secrets.JSON # 该文件用于代码解密用, 可以不备份, 但会出现 500 错误, 下面会有对应 500 错误的解决方案
- /var/opt/GitLab/nginx/conf # nginx 配置文件
- /etc/postfix/main.cfpostfix # 邮件配置备份
还原备份 / 如果是迁移, 则在新服务器执行
停止服务
- GitLab-ctl stop Unicorn
- GitLab-ctl stop sidekiq
执行还原备份文件
1531878574 为 1531878574_gitlab_backup.tar 文件的_gitlab_backup.tar 前面字符
GitLab-rake GitLab:backup:restore BACKUP=1531878574
启动服务
GitLab-ctl start
GitLab 升级
升级只能从小版本升到画最新的小版本, 不能直接跨大版本升级, 只有升级到最新的小版本, 才能升级到下一个大版本, 不能跳跃的最新的大版本升级
如: 当前的版本为 8.8.5, 当前的最新版本为 11.3.4, 当前该小版本的最新版本为 8.13.4, 下一个大版本为 9.5.10, 下一个大版本为 10.8.7
升级顺序: 先安装 8.13.4, 然后安装 9.5.10, 再安装 10.8.7, 最后安装 11.3.4
每次安装完后记得访问一下页面, 如果不正常, 就需要执行下面的命令, 使配置生效
GitLab-ctl reconfigure
具体的升级命令
- sudo EXTERNAL_URL="https://git.afcat.com.cn" yum install -y GitLab-ce-8.13.4 --nogpgcheck
- sudo EXTERNAL_URL="https://git.afcat.com.cn" yum install -y GitLab-ce-8.17.7 --nogpgcheck
- sudo EXTERNAL_URL="https://git.afcat.com.cn" yum install -y GitLab-ce-9.5.10 --nogpgcheck
- sudo EXTERNAL_URL="https://git.afcat.com.cn" yum install -y GitLab-ce-10.8.7 --nogpgcheck
- sudo EXTERNAL_URL="https://git.afcat.com.cn" yum install -y GitLab-ce-11.3.4 --nogpgcheck
遇到 500 错误
- GitLab-Rails runner "Project.where.not(import_url:nil).each{|p|p.import_data.destroy if p.import_data}"
- [ERROR] Error executing action run on resource 'ruby_block[directory resource: /var/opt/GitLab/Git-data/repositories]
- chmod -R 2770 /var/opt/GitLab/Git-data
来源: https://www.cnblogs.com/zengchunyun/p/10958090.html