• Centos 7 最小化Gitlab部署操作


    Gitlab的介绍

    • gitlab是一个版本控制的集群软件,集成了git、postgresql、Ruby、nginx、redis等重要应用工具;
    • gitlab分为ce和ee版本;CE是社区版,EE是企业版
    • gitlab支持http协议传输和ssh协议传输;从安全性方面考虑ssh协议要优于http协议。
    • gitlab通过对用户和组设定权限来决定用户的访问情况。
    • gitlab默认自带注册功能,第三方用户可以自行注册,该功能也可手动关闭。
    • gitlab是实现CI/CD的重要工具之一。

     

    工作原理

    Git是著名的linus大佬发明的一款开源软件,主要工作负责文件的上传及版本更替。其中版本更替包括版本的更新、版本的回溯、版本的分支;大大提高了技术人员的工作效率。

    Gitlab是基于Git、DB、Ruby、redis、http等软件与一体的集成系统;

    CI(Continuous integration):译成中文是持续集成的意思,字面意思理解是持续的将工作的代码集成到一块;

    CD(Continuous delivery):译成中文是持续交付的意思,字面意思理解是根据集成的代码进行自动的交付工作;交付工作包括:构建、测试、发布。

     

    Gitlab的安装

    1、关闭selinux

    sh-4.2# sed -i 's/enforcing/disabled/' /etc/selinux/config 
    sh-4.2# setenforce 0

     

    2、关闭防火墙

    sh-4.2# rpm -qa | grep "firewall" | xargs rpm -e --nodeps
    sh-4.2# rpm -qa | grep "iptables" | xargs rpm -e --nodeps

     

    3、挂载本地源

    sh-4.2# mount -t iso9660 -o loop /opt/CentOS-7-x86_64-Everything-1708.iso /media/
    sh-4.2# find /etc/yum.repos.d/ -ignore_readdir_race -type f -exec mv {} /etc/yum.repos.d/back/ ;
    sh-4.2# cat /etc/yum.repos.d/GuGe.repo 
    [GuGe]
    name=GuGe
    baseurl=file:///media
    gpgcheck=0
    enable=1
    
    sh-4.2# yum clean all
    sh-4.2# yum makecache all

     

    4、安装依赖插件

    sh-4.2# yum install openssh-server postfix
    sh-4.2# systemctl enable sshd
    sh-4.2# systemctl enable postfix
    sh-4.2# systemctl start sshd 
    sh-4.2# systemctl start postfix

     

    5、安装配置gitlab-ce

    gitlab下载地址(建议先下载到本地,官方推荐配置官方源,执行yum;我不推荐这样)
      https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ #个人建议用这个,毕竟是中国
      https://packages.gitlab.com

    sh-4.2# yum -y localinstall gitlab-ce-10.8.7-ce.0.el7.x86_64.rpm
    sh-4.2# grep -E -v '^$|^#' /etc/gitlab/gitlab.rb     #这是gitlab的配置文件,主要添加修改如下内容:
    external_url 'http://192.168.1.81'    
    git_data_dirs({
      "default" => {
        "path" => "/repo"
       }
    })
    
    sh-4.2# gitlab-ctl reconfigure

     

    Gitlab的备份

    sh-4.2# gitlab-rake gitlab:backup:create

    # 使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1551770636_2019_03_05_10.3.3_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1551770636_2019_03_05_10.3.3是备份创建的日期 

     

    Gitlab的恢复

    # 停止相关数据连接服务

    sh-4.2# gitlab-ctl stop unicorn
    sh-4.2# gitlab-ctl stop sidekiq

     

    # 从1551770636_2019_03_05_10.3.3编号备份中恢复;需注意:还原的时候此文件必须存放在sh-4.2# cd /var/opt/gitlab/backups/

    sh-4.2# gitlab-rake gitlab:backup:restore BACKUP=1551770636_2019_03_05_10.3.3

     

    Gitlab的升级

    gitlab的升级比较简单,这里仅列出遵循的原则,升级遵循以下原则:

    1. 不能直接直接夸两个版本以上升级,只能8升9,不能8升10,每次最多夸一个版本
    2. 每次版本升级一次必须执行'gitlab-ctl reconfigure',而且在重新配置主配置文件时,配置文件中不能有内容;一定保证数据可以正常访问方可执行下一步升级指令,否则gitlab在升级之后会报500错误
    3. 直接准备高版本的包,直接安装即可。

     

    Gitlab的常用命令

    sh-4.2# gitlab-ctl status                               # 查看gitlab的运行状况
    sh-4.2# gitlab-ctl stop                                 # 停止gitlab
    sh-4.2# gitlab-ctl start                                # 启动gitlab
    sh-4.2# gitlab-ctl restart                              # 重启gitlab
    sh-4.2# gitlab-ctl tail                                 # 查看所有日志,Gitlab 默认的日志文件存放在/var/log/gitlab下
    sh-4.2# gitlab-ctl reconfigure                          # gitlab的配置刷新
    sh-4.2# gitlab-rake cache:clear RAILS_ENV=production    # 刷新gitlab的缓存
    sh-4.2# gitlab-rake gitlab:backup:create                # gitlab的备份
    sh-4.2# gitlab-rake gitlab:backup:restore BACKUP        # gitlab的恢复

     

    Gitlab与CICD

    Gitlab的CI/CD功能依赖于gitlab-runner工具,gitlab依赖于git主程序,所以这里我们还要安装这两个工具

    sh-4.2# yum -y install git gitlab-runner-10.8.7.x86_64.rpm

     

    CICD功能使用教程如下:

    注册gitlab

    "Admin area" >> "Overview" >> "Runner" >> "根据信息进行"

     

    编写.gitlab-ci.yml文件

    # 此文件存放在版本库,随版本一同提交
    stages:
      - deploy  #类似一个标签的开始,随便起
    deploy:     #名字跟上面标签相同
        stage: deploy   #同上
        script:         #脚本编写部分,你要执行的任务
          - /usr/maven/bin/mvn clean install -Dmaven.test.skip=true
          - rm -rf ......
          - cp 
          - java -jar 
        only:
          - master      #指定在哪个分支上面运行
        tags:
          - dev         #指定你创建的runner标签

     

    提交版本,查看交付任务

     

    参考地址

    官网 https://about.gitlab.com/
    清华源 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ 

  • 相关阅读:
    C# 泛型约束 xxx<T> Where T:约束(一)
    [cb]UIGrid+UIStretch的自适应
    UIButton vs UIEventListener 事件处理
    NGUI Clip Animation (UI动画)
    TexturePacker的plist切成单独小图片
    Collider Collision 区别
    It’s Time To Think Linq
    [cb]NGUI事件及复杂UI管理
    Unity Mono
    【android】getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别详解
  • 原文地址:https://www.cnblogs.com/guge-94/p/10478859.html
Copyright © 2020-2023  润新知