• 私有gitlab的搭建和配置教程


    1. 说明

    此教程基于Ubuntu22.04进行阐述,只有部分操作系统特有操作外,应该具有普适性,如果在其他操作系统(如 CentOS/Deepin等)进行gitlab的搭建,也具有一定的参考意义。

    2. 安装操作

    2.1 依赖项

    首先安装一些依赖项和邮件:

    sudo apt install -y curl openssh-server ca-certificates postfix
    
    • 1

    这个时候会在终端中弹出提示,需要选择和确认一些东西,选择的时候,直接选择Internet Site,后续都是直接选择OK即可。

    2.2 gitlab-ce

    然后安装对应的gitlab-ce,千万不要选择什么极狐那些玩意!!!

    注意,这里是debain系的安装办法,如果是redhat系,请自行搜索!

    https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
    
    • 1

    然后执行命令:

    sudo EXTERNAL_URL="http://ip:port" apt install gitlab-ce
    
    • 1

    注意这里的EXTERNAL_URL将会写入到gitlab的配置文件中的,我这里采用的方式是http://ip:port的方式,也就是主机ip加端口的方式,比如我的主机ip为12.1.12.13,我想给gitlab分配端口8000,那么这里就是 http://12.1.12.13:8000

    这样已经完成了安装!

    2.3 简要配置

    注意刚刚分配了端口,但是linux默认有防火墙机制,需要对端口进行规则处理。并且希望gitlab能够开机自启等。

    Ubuntu22.04配置端口的允许(其他系统的自行查找):

    sudo ufw allow 8000
    
    • 1

    开机自启的设置:

    systemcl enable gitlab-runsvdir
    
    • 1

    2.4 网页操作

    经过前面的配置,已经可以登录网页了,使用http://ip:port即可登录,页面如下:

    gitlab登录页面

    2.5 中文配置

    设置网页内部中文显示的方法:

    1. 进入偏好设置:

    偏好设置

    1. 设置中文:

    中文配置

    2.6 其他操作

    如果要新建项目、更换头像、管理成员等等操作,请自行搜索教程,非常庞杂,这里不进行赘述。

    3. 配置https

    如果有配置成https的需要,则继续阅读,否则已经完成配置了!!!

    3.1 配置证书

    依次进行如下命令操作

    sudo mkdir -p /etc/gitlab/ssl
    sudo chmod 755 /etc/gitlab/ssl
    sudo openssl genrsa -des3 -out /etc/gitlab/ssl/gitdev.key 2048
    sudo openssl req -new -key /etc/gitlab/ssl/gitdev.key -out /etc/gitlab/ssl/gitdev.csr
    # sudo cp -v /etc/gitlab/ssl/gitdev.{key,original}
    # sudo openssl rsa -in /etc/gitlab/ssl/gitdev.original -out /etc/gitlab/ssl/gitdev.key
    # sudo rm -v /etc/gitlab/ssl/gitdev.original
    sudo openssl x509 -req -days 1460 -in /etc/gitlab/ssl/gitdev.csr -signkey /etc/gitlab/ssl/gitdev.key -out /etc/gitlab/ssl/gitdev.crt
    sudo rm -v /etc/gitlab/ssl/gitdev.csr
    sudo chmod 600 /etc/gitlab/ssl/gitdev.key
    sudo chmod 600 /etc/gitlab/ssl/gitdev.crt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    注意:

    这里的 gitdev 可以更改为你的喜好命名!

    3.2 url配置

    打开配置文件

    sudo vim /etc/gitlab/gitlab.rb
    
    • 1

    然后修改如下这一行:

    external_url 'https://12.1.12.13:8000'
    
    • 1

    注意:

    在前面2.2的时候,写的是 http://12.1.12.13:8000,这里改成https即可

    然后让配置生效:

    sudo gitlab-ctl reconfigure
    
    • 1

    3.3 网页访问

    现在则可以通过https://ip:port访问网页了。

    3.4 认证错误

    这个时候如果直接使用如下命令拉取仓库:

    git clone https://xxx:/xx/xx.git
    
    • 1

    会发现报错,没有认证文件……

    解决办法是在git bash或者Linux的终端输入命令:

    git config --global http.sslVerify false
    
    • 1

    也就是通过git配置来解决,请注意使用global还是local,这个区别就是全局还是只针对当前仓库的区别,请自行选择。

    4. ssh操作

    前面步骤配置完成之后,就可以通过如下的方式进行代码的拉取推送了:

    # http方式
    git clone http://xxx:/xx/xx.git
    
    # https方式
    git clone https://xxx:/xx/xx.git
    
    • 1
    • 2
    • 3
    • 4
    • 5

    但是,使用ssh进行各种拉取推送操作,才是更为安全简洁的,原因可自行搜索。

    这里针对Windows下配置,Linux下大差不差。

    4.1 生成文件

    注意,必须使用git bash进行操作,Linux下则可以直接在终端操作。

    ssh-keygen
    
    • 1

    则在用户目录下生成了一个.ssh目录,里面有一些文件:

    目录展示

    4.2 web配置

    id_rsa.pub的内容按照如下进行操作:

    ssh密钥

    密钥配置

    4.3 额外操作

    如果只进行以上步骤,在克隆时会发现无法成功……会提示类似这样的东西:

    git@12.1.12.13's password: 
    
    • 1

    然后不管你输入什么密码都不行……

    所以,需要你的额外操作来解决问题。

    仍然是打开git bash

    vim ~/.ssh/config
    
    • 1

    然后输入:

    # gitlab
    Host 12.1.12.13
            PreferredAuthentications publickey
            IdentityFile ~/.ssh/id_rsa
    
    • 1
    • 2
    • 3
    • 4

    注意IdentityFile对应的文件和路径一定是你真正生成的文件路径。

    然后就可以愉快地进行玩耍了!

    教程同步发布在我的微信公众号:
    https://mp.weixin.qq.com/s/4grXds3jNQEgF7w0W20nKw

  • 相关阅读:
    y131.第七章 服务网格与治理-Istio从入门到精通 -- Istio Security基础(十七)
    【技术积累】Java里的volatile关键字到底能干嘛?
    用C#开发Excel插件的强大开源工具
    【c++ 封装、继承、多态】
    Vue框架分享与总结
    java计算机毕业设计springboot+vue城市公园信息管理系统(源码+系统+mysql数据库+Lw文档)
    什么是单向数据流
    微服务原理
    onclick事件的用法
    .Net/C#分库分表高性能O(1)瀑布流分页
  • 原文地址:https://blog.csdn.net/DraemSky/article/details/132784178