MENU

完全卸载GitLab并重装

May 6, 2021 • Read: 665 • 默认分类

1、停止gitlab

gitlab-ctl stop

2、卸载gitlab(注意这里写的是gitlab-ce)

rpm -e gitlab-ce

3、查看gitlab进程

ps aux | grep gitlab

在这里插入图片描述
4、杀掉第一个进程(就是带有好多…的进程)

杀掉后,在ps aux | grep gitlab确认一遍,还有没有gitlab的进程。若还存在,可以把它的主要组件的进程也杀一边。

run: alertmanager: (pid 100019) 13376s; run: log: (pid 82025) 86211s
run: gitaly: (pid 100032) 13376s; run: log: (pid 82041) 86211s
run: gitlab-monitor: (pid 100047) 13375s; run: log: (pid 82047) 86211s
run: gitlab-workhorse: (pid 100054) 13375s; run: log: (pid 82031) 86211s
run: logrotate: (pid 121160) 2574s; run: log: (pid 82039) 86211s
run: nginx: (pid 100070) 13374s; run: log: (pid 82037) 86211s
run: node-exporter: (pid 100077) 13374s; run: log: (pid 82027) 86211s
run: postgres-exporter: (pid 100082) 13373s; run: log: (pid 82023) 86211s
run: postgresql: (pid 100097) 13372s; run: log: (pid 82035) 86211s
run: prometheus: (pid 100100) 13372s; run: log: (pid 82021) 86211s
run: redis: (pid 100114) 13372s; run: log: (pid 82033) 86211s
run: redis-exporter: (pid 100118) 13371s; run: log: (pid 82043) 86211s
run: sidekiq: (pid 100124) 13370s; run: log: (pid 82029) 86211s
run: unicorn: (pid 100136) 13369s; run: log: (pid 82045) 86211s

日志的进程不用管。

5、删除所有包含gitlab文件

find / -name gitlab | xargs rm -rf

当然若你没有全杀权限。那么可以可以把这三个目录给干掉也可以:

rm -rf  /opt/gitlab
rm -rf  /etc/gitlab
rm -rf  /var/log/gitlab

6、重新安装制定版本命令

sudo yum install gitlab-ce-x.x.x #安装指定版本

sudo yum install gitlab-ce-11.4.8

7、修改配置网址和重定向仓库目录

sudo vim /etc/gitlab/gitlab.rb

gitlab-ctl reconfigure命令的时候,卡死在下面的情况的处理。

Recipe: gitlab::gitlab-rails
  * execute[clear the gitlab-rails cache] action run

卡死不动了, 狂敲回车都没反应。

解决方案:

1.按住CTRL+C强制结束;

2.运行:sudo systemctl restart gitlab-runsvdir;

3.再次执行:sudo gitlab-ctl reconfigure

8、刷新配置后需要重启。

若用命令sudo gitlab-ctl status查看服务状态是停止就执行启动命令:

sudo gitlab-ctl start

若用命令sudo gitlab-ctl status查看服务状态是运行状态就执行重启命令sudo gitlab-ctl restart;也可以先停止sudo gitlab-ctl stop,再启动sudo gitlab-ctl start

9、导出与备份

通过导出当日备份的方法保留备份文件,然后新建虚拟机把新的备份文件拷贝过去解决。

导出命令:

gitlab-rake gitlab:backup:create

执行后如下:


备份好的文件在

/var/opt/gitlab/backups

文件名字类似于

1556242886_2019_04_26_gitlab_backup.tar

Gitlab迁移
1.复制老服务器上面的备份文件到新服务器
2.确保新Gitlab服务器和老Gitlab服务器版本相同
查看gitlab版本号

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION   

执行的结果如下

用Winscp或者scp命令拷贝备份文件到新gitlab的/var/opt/gitlab/backups目录,如果你改了,这里要写成你修改过的目录,具体不再赘述。

更改权限为777 避免因权限不构造成的错误(可能有)

  chmod 777 1502357536_2017_08_10_9.4.3_gitlab_backup.tar

    #停止相关进程

    gitlab-ctl stop unicorn

    gitlab-ctl stop sidekiq

执行结果如下


恢复备份文件的命令

#gitlab-rake gitlab:backup:restore BACKUP=1556242886_2019_04_26 #不要照抄,改成你的文件名

我的文件名是1556242886_2019_04_26_gitlab_backup.tar 如果你的文件名是其他的,需要更改。

5.31新增
注意:有时会报目录找不到,这时你可以

gitlab-ctl reconfigure

敲完之后会有一段时间的等待

然后提示你正在解压压缩包,完成后会遇到一个提示,大意是如果你点是就开始恢复了,里面已经存在的数据可能会丢失之类的,是否要继续?这里选yes

这里选择Yes,他问你是否要重新构建Authorized文件,你将要丢失一些文件。
Put GitLab hooks in repositories dirs [DONE]
done
Restoring uploads …
done
Restoring builds …
done
Restoring artifacts …
done
Restoring pages …
done
Restoring lfs objects …
done
This will rebuild an authorized_keys file.
You will lose any data stored in authorized_keys file.
Do you want to continue (yes/no)?

执行命令从备份文件中恢复Gitlab
最后,启动Gitlab
完事~

sudo gitlab-ctl start

- - - The END - - -
  • 文章作者:谭先生
  • 版权所有:文章转载时,注明出处即可!
  • 本站部分资源收集于网络,纯个人收藏,无商业用途,如有侵权请及时告知!
  • Last Modified: August 4, 2021
    Archives QR Code Tip
    QR Code for this page
    Tipping QR Code
    阅读:665