升级思路: 在新服务器上安装老服务器的相同gitlab版本,然后在新服务器上迭代gitlab,
- 进入旧版服务器查看当前版本-11.11.8
- 备份老版本gitlab数据
gitlab-rake gitlab:backup:create #手动备份
生成如下文件
3. 新服务器上安装11.11.8版本
docker pull gitlab/gitlab-ce:11.11.8-ce.0 #安装对应版本
- 运行docker gitlab
### 创建配置文件目录
mkdir -p /home/gitlab/config 创建config目录
mkdir -p /home/gitlab/logs 创建logs目录
mkdir -p /home/gitlab/data 创建data目录
mkdir -p /home/gitlab/gitlab_backups
### 启动gitlab
docker run -d \
--hostname 10.10.10.246 \
--publish 7001:443 --publish 7777:80 --publish 7003:22 --name gitlab_11.11.8 \
--volume /home/gitlab/config:/etc/gitlab \
--volume /home/gitlab/logs:/var/log/gitlab \
--volume /home/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:11.11.8-ce.0
####
--name: 设置当前容器名称 便于区分
- 设置gitlab的配置文件
#### 进入gitlab_11.11.8 容器
docker exec -it gitlab_11.11.8 /bin/bash
### 设置gitlab配置文件并保存
vim /etc/gitlab/gitlab.rb
vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
### 如果打开路径不对 可以通过查找 替换成查找后的路径即可
find / -name gitlab.yml
find / -name gitlab.rb
6. 配置完成后通过 10.10.10.246在网页上访问 能打开就可以,不需要进入
7. 还原备份准备工作,我第一次没有找到还原的路径,一直报错(都是经验)后来在服务器上直接备份 然后查找新服务器的备份路径,将老服务器的备份文件 拷到对应目录下 还原即可!!! 如果看不懂 建议多读两遍
docker exec -it gitlab_11.11.8 /bin/bash #进入gitlab容器
gitlab-rake gitlab:backup:create #在新服务器中手动备份!
find / -name 新备份文件名
cp 老服务器备份路径 新服务器备份路径(find找到的 如下如/var/lib...)
8. 还原备份
gitlab-rake gitlab:backup:restore BACKUP=1645105774_2022_02_17_11.11.8 --trace
#1645105774_2022_02_17_11.11.8 为老服务器备份文件名称
-
打开web页面访问 这个时候用原来的账号密码就可以登录了
-
升级准备工作, 将老版本的gitlab升级成最新的,需要按照如下的升级路径进行
升级路径https://docs.gitlab.com/ee/update/#upgrade-paths
-
下载没有版本的镜像文件
docker pull gitlab/gitlab-ce:XXX-ce.0
升级路径:
11.11.8 ->
12.0.12 -> gitlab_12.0.12
12.1.17 -> gitlab_12.1.17
12.10.14 -> gitlab_12.10.14
13.0.14 -> gitlab_13.0.14
13.1.11 -> gitlab_13.1.11
13.8.8 -> gitlab_13.8.8
13.12.15 -> gitlab_13.12.15
14.0.11 -> gitlab_14.0.11
14.1.8 -> gitlab_14.1.8
14.2.6 -> gitlab_14.2.6
#依次下载 下载哪个版本 XXX为版本号
- 将下载好的下一个版本灌入数据 <清洗数据> 比如从11.11.8 >> 12.0.12
docker run -d \
--hostname 10.10.10.246 \
--publish 7001:443 --publish 7777:80 --publish 7003:22 --name gitlab_12.0.12 \
--volume /home/gitlab/config:/etc/gitlab \
--volume /home/gitlab/logs:/var/log/gitlab \
--volume /home/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:12.0.12-ce.0
# 当前命令和11.11.8gitlab运行的命令差异仅在于两处
--name 容器的名称
gitlab/gitlab-ce:12.0.12-ce.0 镜像的名称
--volume 参数里面用到的数据仍然是11.11.8的数据
也就是用高版本的镜像兼容低版本的数据
##### 下面依次进行升级
这里我遇到的坑
最好每个大版本升级后再执行一次备份,并把备份移出原有备份文件夹<每一个字都是血泪 🤣>
移出是因为下个版本升级会将版本文件覆盖 别问我是怎么知道的
- 升级结束 如下图:
- 你以为完了嘛?本地SSH更新了吗?
新版本服务器已迁移(原账号密码登录) 但需要更新ssh,步骤如下
1. 清空旧密钥
```
C:\Users\用户\用户名\.ssh 文件夹内文件全部清空
```
2. git bash生成新的密钥 [123替换成自己的邮箱]
```
ssh-keygen -t rsa -C "123456789@qq.com" #生成密钥
cat ~/.ssh/id_rsa.pub # 复制密钥
```
3. 往服务器绑定密钥
```
登录246服务器 >> 头像 >> 用户设置 >> SSH密钥 >> 添加SSH密钥
```
4. 本地项目指向新服务器地址
```
git remote -v # 查看当前服务器指向地址
git remote set-url origin "新服务器ssh路径" # 更改为新的服务器地址
```
- 如果你还有遇到坑 欢迎提问 祝你好运😎