• 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
     
     
  • 相关阅读:
    对C#下函数,委托,事件的一点理解!
    Firefox XPI插件安装方法
    assert()函数用法总结
    Linux下rsync的用法
    windows XP下如何切换用户到Administrator
    预编译命令#pragma once与 #ifndef的区别
    DOS命令下获取远程主机MAC地址的三种方法
    net send命令详解
    Linux守护进程详解(init.d和xinetd)
    如何在真机上调试Android应用程序(图文详解)
  • 原文地址:https://www.cnblogs.com/lgj8/p/14637893.html
Copyright © 2020-2023  润新知