gitlab安装升级(大版本跨度9.4.5----13.2.1)

gitlab安装升级(大版本跨度9.4.5----13.2.1)

 gitlab基础介绍

复制代码

1、 repository: 代码库,可以是硬盘或NFS文件系统
2、 NGINX: web 入口
3、 数据库:包含信息Repository 中的数据(元数据,issue,合并请求merge request等)可以登陆的web用户信息
4、 Redis 缓存 ,负责分发信息
5、 sidekq: 后台任务,主要负责发送电子邮件,任务来自与redis
6、 unicorn (gitlab rails):gitlab自身的web,包含了gitlab主进程,负责处理快速/一般任务,与redis一起工作,内容有
    A 通过检查存储在redis中的用户来检查权限
    B 为sidekiq 制作任务
    C 从仓库(warehouse) 取东西或在哪里移动东西

7、 gitlab-shell:用于SSH交互,而不是http,gitlab-shell 通过redis与sidekiq 进行通信,并直接通过TCP访问unicorn

8、 gitaly: 后台服务,专门负责访问磁盘以高效处理git,并处理缓存耗时操作,所有的git操作都通过gitaly 进行处理

9、 gitlab-workshorse: 反向代理服务器,可以处理与redis无关的请求,磁盘上的CSS,JS 文件等),处理git push/pull 请求,处理redis的链接(修改有redis发送的响应或发送给redis请求,管理redis的长期web socket链接)

10、 mail_room: 处理邮件请求,恢复gitlab发送的邮件时,gitlab会调用此服务.

复制代码

复制代码
大体原理:
gitlab 使用nginx将前端请求代理到UNicorn web 服务器,默认情况下,unicorn 与前端之间的通信是通过unix domain 套接字进行的,但也支持通过TCP请求转发,web访问前端/home/git/gitlab/pubilc绕过unicorn 服务来提供静态页面,上传和预编译资源,gitlab使用Unicorn web 提供网页和gitlab api,使用sidekiq作为作业队列, 反过来,它使用redis 作为作业信息,元数据和作业的非持久化数据后端。

gitlab应用程序使用mysql或postgresql 作为持久化数据库,保存用户,权限,issue其他元数据等。

通过http/https提供repository时,gitlab使用gitlab API 来解释授权和访问以及提供git对象。

gitlab-shell 通过ssh提供repository,他管理/home/git/,ssh/authorized_keys 内的SSH密钥,不应该手动编辑,gitlab-shell通过gitaly访问bare repository 已提供git对象并与redis 进行通信以向sidekiq提交作业以供gitlab处理,gitlab-shell 查询gitlab API一确定授权和访问。
复制代码

 

一、gitlab安装(安装方式:下载rpm包)

1、先去官网下载安装包(https://packages.gitlab.com),但是鉴于下载速度实在太慢了,比较推荐去清华源下载,地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/,我的安装环境是centos7.2,选择的版本是gitlab-ce-9.4.5-ce.0.el7.x86_64.rpm。

2、安装gitlab

  # rpm -Uvh gitlab-ce-9.4.5-ce.0.el7.x86_64.rpm

3、编辑配置文件 /etc/gitlab/gitlab.rb

# grep '^[a-z]' /etc/gitlab/gitlab.rb

  external_url 'http://172.16.68.154:10068'    #gitlab监听地址和端口,默认监听端口号为80
  unicorn['port'] = 28080                      #组件unicorn监听的端口号,默认为8080
  prometheus['enable'] = false                 #关闭prometheus监控,比较耗内存

 4、初始化gitlab  

# gitlab-ctl reconfigure

5、启动gitlab

# gitlab-ctl start

6、查看gitlab版本号 

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

7、查看gitlab各组件的启动情况

# gitlab-ctl status

8、gitlab默认安装目录

/opt/gitlab/ ## 主目录
/etc/gitlab/ ## 放置配置文件
/var/opt/gitlab/ ## 各个组件
/var/log/gitlab/ ## 放置日志文件

9、输入访问地址http://172.16.68.154:10068,第一次登陆会转跳到重置密码的界面,设置完成即可用root用户登陆。

 

 

 

二、忘记root用户密码,重置密码。

#  gitlab-rails console production
irb(main):001:0> u=User.where(id:1).first
irb(main):003:0> u.password=12345678
irb(main):004:0> u.password_confirmation=12345678
irb(main):005:0> u.save!
irb(main):006:0> quit
三、备份与恢复
1、备份
# gitlab-rake  gitlab:backup:create

2、恢复

(1)先停止服务

#  gitlab-ctl  stop  unicorn
#  gitlab-ctl  stop  sidekiq
#  gitlab-ctl  stop  nginx

(2) 恢复数据

# gitlab-rake gitlab:backup:restore BACKUP=1596428908_2020_08_03_9.4.5 

四、升级

1、升级之前先做好备份
# gitlab-rake  gitlab:backup:create

备份好的数据在没改备份路径的情况下,默认的目录是:/var/opt/gitlab/backups

 2、参考https://docs.gitlab.com/ee/policy/maintenance.html#upgrade-recommendations给出的升级跨度版本,一个版本一个版本的升级,千万不可跨大版本升级。

 (1)升级前先停掉服务

# gitlab-ctl stop unicorn  sidekiq  nginx

 (2)我要从9.4.5升级到13.2.1,需要升级的版本号依次是9.4.5-->9.5.10-->10.8.7-->11.11.8-->12.0.12-->12.10.6-->13.0.0-->13.2.1

每升级一个版本都要重启gitlab登陆页面看看,有没有问题,确定无误之后方可进行升级下一个版本。

# rpm -Uvh gitlab-ce-9.5.10-ce.0.el7.x86_64.rpm
# gitlab-ctl reconfigure
# gitlab-ctl restart

 

 

 
 
posted @ 2021-04-09 16:51  30岁再次出发  阅读(1565)  评论(0编辑  收藏  举报