zoukankan      html  css  js  c++  java
  • gitlab 简单使用

    一 简介

    GitLab是一个开源的图形代码版本管理系统,使用Git作为代码版本控制工具,并在此基
    础上集成开发了很多企业级实用功能。例如:
    • 图形页面
    • 角色权限控制
    • Issue问题跟踪
    • 在线代码编辑
    • 项目wiki
    • CI/CD集成发布
    • 等等
    Git有三个类:
    Git: 本地版本控制工具。
    Github,Gitee:公共代码托管仓库,对互联网用户开放。
    GitLab:主要用于企业内部自建代码版本管理系统

    二 安装

    rpm安装:
    yum install https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.2.3-ce.0.el7.x86_64.rpm
    docker安装:
    由于包太大了 使用本地导入

      docker load -i ./gitlab.tar

    mkdir /opt/gitlab
    GITLAB_HOME=/opt/gitlab # 数据持久化目录
    docker run --detach 
    --hostname gitlab.ctnrs.com 
    --publish 443:443 --publish 80:80 --publish 2222:22 
    --name gitlab 
    --restart always 
    --volume $GITLAB_HOME/config:/etc/gitlab 
    --volume $GITLAB_HOME/logs:/var/log/gitlab 
    --volume $GITLAB_HOME/data:/var/opt/gitlab 
    gitlab/gitlab-ce:latest

    网络好也可以使用下面
    GITLAB_HOME=/opt/gitlab
    docker run -d 
      --name gitlab 
      -p 443:443 
      -p 80:80 
      -p 2222:22 
      -v $GITLAB_HOME/config:/etc/gitlab 
      -v $GITLAB_HOME/logs:/var/log/gitlab 
      -v $GITLAB_HOME/data:/var/opt/gitlab 
      -v /etc/localtime:/etc/localtime 
      lizhenliang/gitlab-ce-zh:latest
    本地路径 容器路径 用途  
    $GITLAB_HOME/data
    /var/opt/gitlab 
    应用程序数据
     
    $GITLAB_HOME/logs 
    /var/log/gitlab 
    日志  
    $GITLAB_HOME/config
     
    /etc/gitlab 
    配置文件  
           
    登录主机发现报错  

    Whoops, GitLab is taking too much time to respond.

     等待一会儿就正常

    设置自己得密码

     登录主页

    • 系统配置:管理中心->设置->通用
    • 设置中文

    • 了解git访问协议
    • 关闭注册
    • 关闭头像
    • 登录页面信息

    三 配置SMTP(发邮件)

    配置SMTP(发邮件):
    # vim /etc/gitlab/gitlab.rb

    gitlab_rails['gitlab_email_from'] = 'zfno111@163.com'
    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.163.com"
    #没有加密就是25
    gitlab_rails['smtp_port'] = 25
    gitlab_rails['smtp_user_name'] = "zfno111@163.com"
    #授权码
    gitlab_rails['smtp_password'] = "DUITYZHUFCCFJMIR"
    gitlab_rails['smtp_domain'] = "163.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = false

    时区

    全局配置在
    重新加载配置:
    gitlab-ctl reconfigure
    如果使用docker部署,直接docker restart gitlab即可。
    测试是否配置成功:
    gitlab-rails console
    irb(main):001:0> 

    Notify.test_email('1367615159@qq.com', 'zftest', 'zftest').deliver_now

    irb(main):002:0> exit
    发送成功

    四 配置HTTPS

      

    配置HTTPS: 1、自签证书
    2、上传证书文件到/etc/gitlab/ssl目录
    3、修改配置文件指定证书
    # vim /etc/gitlab/gitlab.rb
    external_url 'https://gitlab.ctnrs.com' # 访问使用的域名或者IP
    nginx['enable'] = true
    nginx['redirect_http_to_https'] = true #设置开启自动将HTTP跳转到HTTPS
    nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.ctnrs.com.pem"
    nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.ctnrs.com-key.pem“
    重新加载配置:
    docker restart gitlab

    解压 工具

    tar -zxvf ./cfssl.tar.gz 

    #放到指定目录

    mv ./cfssl* /usr/bin/

    自签CA 以及办法证书

    [root@docker ssl]# cat ./certs.sh 
    cat > ca-config.json <<EOF
    {
      "signing": {
        "default": {
          "expiry": "87600h"
        },
        "profiles": {
          "server": {
             "expiry": "87600h",
             "usages": [
                "signing",
                "key encipherment",
                "server auth",
                "client auth"
            ]
          }
        }
      }
    }
    EOF
    
    cat > ca-csr.json <<EOF
    {
        "CN": "gitlab",
        "key": {
            "algo": "rsa",
            "size": 2048
        },
        "names": [
            {
                "C": "CN",
                "L": "Beijing",
                "ST": "Beijing"
            }
        ]
    }
    EOF
    
    cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
    
    cat > gitlab.ctnrs.com-csr.json <<EOF
    {
      "CN": "gitlab.ctnrs.com",
      "hosts": [],
      "key": {
        "algo": "rsa",
        "size": 2048
      },
      "names": [
        {
          "C": "CN",
          "L": "BeiJing",
          "ST": "BeiJing"
        }
      ]
    }
    EOF
    
    cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=server gitlab.ctnrs.com-csr.json | cfssljson -bare gitlab.ctnrs.com 

     执行脚本

    bash ./certs.sh

    创建ssl目录

    mkdir /opt/gitlab/config/ssl

    将证书和私钥拷贝过去

    cp ./gitlab.ctnrs.com.pem /opt/gitlab/config/ssl/

    cp ./gitlab.ctnrs.com-key.pem /opt/gitlab/config/ssl/

    修改配置文件

    # vim /etc/gitlab/gitlab.rb
    external_url 'https://gitlab.ctnrs.com' # 访问使用的域名或者IP
    nginx['enable'] = true
    nginx['redirect_http_to_https'] = true #设置开启自动将HTTP跳转到HTTPS
    nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.ctnrs.com.pem"
    nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.ctnrs.com-key.pem“

    关于证书相关信息可以参考

    https://www.jianshu.com/p/a9497de4cbff

    五 常用的管理命令

    • gitlab-ctl Gitlab管理工具
    • gitlab-rails 
    • gitlab-redis-cli 访问Redis数据库
    • gitlab-psql 访问PGSQL数据库
    • gitlab-rake 备份与恢复
    • gitlab-backup 12.1版本以后增加的备份与恢复工具


  • 相关阅读:
    day27_递归
    Linux常用命令
    Linux中的标准输入输出文件
    秋招日记《三》——字节三面挂
    《秋招日记》阿里一面
    秋招日记<->PDD一面挂
    十大排序
    第 254 场周赛 数组元素的最小非零乘积
    找不到boost/bind.hpp
    如何在Google浏览器中批量下载网页上的图片
  • 原文地址:https://www.cnblogs.com/ZFBG/p/13810169.html
Copyright © 2011-2022 走看看