Gitlab的升级 从9.2.2升级到11.10.4

一、备份

有关备份和恢复的操作,详见我的另一篇博客:Gitlab的备份与恢复
在开始升级之前,一定要做好备份工作,并记录好版本号。
1、查看当前Gitlab的版本号

[root@gitlab ~]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
9.2.2

2、备份当前的Gitlab

gitlab-rake gitlab:backup:create

在/var/opt/gitlab/backups下会生成一个备份文件如:1557218709_2019_05_07_9.2.2_gitlab_backup.tar,其中1557218709即为此次备份都版本号。

二、升级

注意:Gitlab的升级不能跨越大版本号,因此只能升级到当前大版本号到最高版本,方可升级到下一个大版本号。
由于我现在的版本号是9.2.2,我要升级到现在最新版本的11.10.4,需要做的升级步骤如下:
9.2.2—>9.5.9—>10.8.7—>11.10.4
1、准备好相关的rpm包

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-9.5.9-ce.0.el7.x86_64.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.8.7-ce.0.el7.x86_64.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.10.4-ce.0.el7.x86_64.rpm

2、依次执行下面指令逐步升级,在每一步安装成功后如果发现界面500,这是因为redis等程序还没完全启动,等一会儿访问就ok了。(一定保证数据可以正常访问方可执行下一步升级指令)

yum localinstall -y gitlab-ce-9.5.9-ce.0.el7.x86_64.rpm
yum localinstall -y gitlab-ce-10.8.7-ce.0.el7.x86_64.rpm
yum localinstall -y gitlab-ce-11.10.4-ce.0.el7.x86_64.rpm

完成之后再查看下当前的版本:

[root@gitlab ~]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
11.10.4

至此,Gitlab的升级就完成了,赶紧去体验下新版本吧!!

 

更改gitlab仓库存储位置

更改仓库存储位置
默认时GitLab的仓库存储位置在“/var/opt/gitlab/git-data/repositories”,在实际生产环境中显然我们不会存储在这个位置,一般都会划分一个独立的分区来存储仓库的数据,我这里规划把数据存放在“/data/git-data”目录下。

root@test1:~/tools# mkdir -pv /data/git-data 
mkdir: 已创建目录 "/data"
mkdir: 已创建目录 "/data/git-data"
root@test1:~# chown -R git.git /data/git-data  #修改创建目录的属主和属组为git用户 
root@test1:~/tools# cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak 
root@test1:~/tools# vim /etc/gitlab/gitlab.rb 
#启用git_data_dirs参数,并修改如下: 
git_data_dirs  路径 "/data/git-data"

git_data_dirs({
   "default" => {
     "path" => "/data/git-data",
     "failure_count_threshold" => 10,
     "failure_wait_time" => 30,
     "failure_reset_time" => 1800,
     "failure_timeout" => 30
    }
 })

#并修改external_url的值修改为规划的访问域名 
external_url 'http://test.gitlab.net'
root@test1:~/tools# gitlab-ctl reconfigure  #重新编译gitlab.rb文件,使用做的修改生效 
重新编辑后,GitLab在仓库目录会自动创建一个repositories文件,如下: 
root@test1:~# ls -ld /data/git-data/repositories/ 
drwxrws--- 2 git git 4096 1月  4 14:15 /data/git-data/repositories/

修改GITLAB默认端口

端口要用9090以后的最好,否则不生效
默认情况下:unicorn会占用8080端口,nginx会占用80端口。改完之后,就可以通过nginx[‘listen_port’] 在浏览器进行访问了。
内部8080端口也不再被占用了。
修改 /etc/gitlab/gitlab.rb 文件如下,然后执行重新配置,重启命令后完成。
gitlab-ctl reconfigure  //让配置生效,重新执行此命令时间也比较长
gitlab-ctl restart

在这里插入图片描述

 

解决GITLAB无法启动runsv no running

可以先尝试用  

systemctl start gitlab-runsvdir.service

如果冻结不动的话,就需要查看系统服务项了

systemctl -t target

如果系统正常的话,所有任务应该是loaded active active,如果存在inactive dead选型,意味着有些服务出错了。

复制代码

UNIT                   LOAD   ACTIVE SUB    DESCRIPTION
basic.target           loaded active active Basic System
cloud-config.target    loaded active active Cloud-config availability
cloud-init.target      loaded active active Cloud-init target
cryptsetup.target      loaded active active Encrypted Volumes
getty.target           loaded active active Login Prompts
graphical.target       loaded active active Graphical Interface
local-fs-pre.target    loaded active active Local File Systems (Pre)
local-fs.target        loaded active active Local File Systems
multi-user.target      loaded active active Multi-User System
network-online.target  loaded active active Network is Online
network-pre.target     loaded active active Network (Pre)
network.target         loaded active active Network
nss-user-lookup.target loaded active active User and Group Name Lookups
paths.target           loaded active active Paths
remote-fs-pre.target   loaded active active Remote File Systems (Pre)
remote-fs.target       loaded active active Remote File Systems
slices.target          loaded active active Slices
sockets.target         loaded active active Sockets
swap.target            loaded active active Swap
sysinit.target         loaded active active System Initialization
time-sync.target       loaded active active System Time Synchronized
timers.target          loaded active active Timers

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

22 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

复制代码

multi-user.target      loaded inactive dead   start Multi-User System

这时候使用

 systemctl list-jobs

如果存在某个任务是running,则是该任务堵塞了其他所有服务。 

复制代码

 1 graphical.target                     start waiting
107 plymouth-quit-wait.service           start running
  2 multi-user.target                    start waiting
169 ureadahead-stop.timer                start waiting
121 gitlab-runsvdir.service              start waiting
151 system-getty.slice                   start waiting
 31 setvtrgb.service                     start waiting
122 systemd-update-utmp-runlevel.service start waiting

复制代码

此时就可以利用 systemctl stop plymouth-quit-wait.service结束该任务。

然后重启gitlab即可。

卸载GitLab

  1. 停止gitlab
gitlab-ctl stop
  • 1
  1. 卸载,看一下自己的gitlab版本是ce还是ee
rpm -e gitlab-ce
  1. 杀死进程
ps -ef|grep gitlab //查看进程
  •  

在这里插入图片描述
杀死图中标记的进程

kill -9 2287
  1. 删除gitlab文件
find / -name *gitlab*|xargs rm -rf 
find / -name gitlab |xargs rm -rf
  1. 删除root下备份的文件,先查看一下
ls /root/gitlab*

若没有不需要删除,有则删除

这样就卸载了!

猜你喜欢

转载自blog.csdn.net/youligg/article/details/109320638