如何搭建gitlab和使用教程

一、Gitlab介绍

1、什么是Gitlab

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。

安装方法是参考GitLab在GitHub上的Wiki页面。Gitlab是目前被广泛使用的基于git的开源代码管理平台, 基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文档进行管理, Gitlab主要针对group和project两个维度进行代码和文档管理, 其中group是群组, project是工程项目, 一个group可以管理多个project, 可以理解为一个群组中有多项软件开发任务, 而一个project中可能包含多个branch, 意为每个项目中有多个分支, 分支间相互独立, 不同分支可以进行归并。

二、搭建gitlab并实现ssl

1、配置yum源或下载gitlab包

方法1:创建一个新的yum源文件,文件内容如下

vim /etc/yum.repos.d/gitlab.repo
[gitlab-ce]
name=Gitlab-CE
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
#此变量$releasever表示本服务器的当前系统版本号
gpgcheck=0
enabled=1
方法2:或者直接wget下载gitlab的rpm安装包
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm

2、安装依赖软件及获取GPG密钥

hostnamectl set-hostname gitlab.wang.com
#修改主机名
bash
#刷新shell
echo 192.168.174.12 gitlab.wang.com >>/etc/hosts
#将本机对应域名添加到本机hosts文件中
yum install -y curl policycoreutils openssh-server openssh-clients postfix
#安装gitlab依赖软件
curl:用于上传或者下载,可以进行数据传输
openssh-server:ssh协议远程登录服务端
openssh-clients:ssh协议远程登录客户端
postfix:邮件传输协议,用于发送邮件
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#获取GPG密钥,保证下载的gitlab包是由gitlab官方发布的不是被篡改的软件包
GPG密钥:GPG密钥可以保证软件下载的完整性和安全性。通过使用该公钥,你可以验证下载的软件包是否来自GitLab官方,从而确保GitLab安装的安全。
systemctl  enable  postfix --now
#开机自启postfix并现在立即启动

3、安装gitlab-ce

方法1:上面配置过gitlab的yum源了直接yum安装即可
yum install gitlab-ce -y
方法2:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
#curl -s:静默模式常用于脚本下载。-S若出错不止是输出错误代码,要输出错误详细信息。下载gitlab官网的rpm.sh脚本传给bash执行。不用手动编辑配置yum源
yum  install gitlab-ce  -y
#然后再yum安装gitlab

4、创建私有密钥

mkdir -p /etc/gitlab/ssl
#创建存放密钥的目录
openssl genrsa -out "/etc/gitlab/ssl/gitlab.wang.com.key" 2048
#利用openssl创建密钥-out指定密钥输入位置
Generating RSA private key, 2048 bit long modulus
........................................................................................+++
............+++
e is 65537 (0x10001)
#创建成功输出内容
cd /etc/gitlab/ssl
ls
gitlab.wang.com.key
#进入存放密钥的目录查看有创建的私钥

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5、创建私有证书

openssl req -new -key "/etc/gitlab/ssl/gitlab.wang.com.key" -out "/etc/gitlab/ssl/gitlab.wang.com.csr"
#创建私有证书签名 
req表示使用openssl工具生成证书签名请求。
-new:表示创建一个新的证书签名请求。
-key:表示指定使用的私钥文件
-out:表示将csr文件保存到此路径下
#填写生成证书的信息,如下:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN   #国家,CN表示中国
State or Province Name (full name) []:JS  #省份江苏
Locality Name (eg, city) [Default City]:NJ   #城市南京
Organization Name (eg, company) [Default Company Ltd]:test  #组织单位test
Organizational Unit Name (eg, section) []:test              #单位名称test
Common Name (eg, your name or your server's hostname) []:gitlab.wang.com  #主机名称
Email Address []:test123@qq.com                            #邮箱地址
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:123456                        #设置证书密码123456
An optional company name []:test                       #公司名称test

6、创建CRT签名证书

openssl x509 -req -days 365 -in "/etc/gitlab/ssl/gitlab.wang.com.csr" -signkey "/etc/gitlab/ssl/gitlab.wang.com.key" -out "/etc/gitlab/ssl/gitlab.wang.com.crt"
#利用生成的私钥和私有证书签名CRT证书
-days:证书有效期为365天 
-in:指定私有证书
-signkey指定私钥,生成的签名证书为gitlab.wang.com.crt
cd /etc/gitlab/ssl/
ls
#现在应该有以下三个文件
gitlab.wang.com.crt  gitlab.lhj.com.csr  gitlab.wang.com.key

7、利用openssl签署pem 证书

openssl dhparam -out /etc/gitlab/ssl/dhparams.pem  2048
#dhparam:表示使用 OpenSSL 工具生成 DH 参数。
#-out /etc/gitlab/ssl/dhparams.pem:表示将生成的 DH 参数保存在指定的文件 /etc/gitlab/ssl/dhparams.pem 中。
cd /etc/gitlab/ssl/
chmod 600 *
ll
#修改ssl下所有证书权限为600

在这里插入图片描述

8、配置证书到gitlab

vim /etc/gitlab/gitlab.rb 
external_url 'https://gitlab.wang.com'      
#改为https协议和自己服务器的域名
nginx['redirect_http_to_https'] = true           
#取消#号更改注释并为true,将http重定向到https

# nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.wang.com.crt"     

#更改crt证书路径

# nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.wang.com.key"     

#更改路径私钥路径

# nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"   

#更改pem证书路径  后面的注释不用管# Path to dhparams.pem, eg.  /etc/gitlab/ssl/dhparams.pem

9、初始化gitlab

gitlab-ctl reconfigure 
#初始化gitlab,过程时间较长耐心等待gitlab-ctl用于管理gitlab

在这里插入图片描述

10、nginx配置重写到https

cd /var/opt/gitlab/nginx/conf
ls
gitlab-health.conf  gitlab-http.conf  nginx.conf  nginx-status.conf
vim gitlab-http.conf  
#在server   listen *:80;下一行添加
server_name gitlab.lhj.com; 
#有servername就不写
rewrite ^(.*)$ https://$host$1 permanent;      
#重写所有都到https,permanent永久重定向
gitlab-ctl restart
#重启gitlab

在这里插入图片描述

11、windows配置hosts

在Windows系统里C:\Windows\System32\drivers\etc\hosts 添加以下内容
192.168.174.12     gitlab.wang.com
#配置完毕后在cmd的窗口中ping  gitlab.wang.com 查看是否能ping通

12、windows访问测试(https://gitlab.wang.com 登录测试)

在这里插入图片描述

13、 登录并修改root初始密码

cat /etc/gitlab/initial_root_password
#查看gitlab初始密码

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

14、更改语言为中文(可选)

在这里插入图片描述

15、 关闭账户自动注册

在这里插入图片描述

16、管理员创建账户和组

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

17、管理员创建项目

在这里插入图片描述
在这里插入图片描述

18、配置登录免密认证

Gitlab的登录免密验证,配置完成后,可以使得我们的Gitlab自动执行Git命令而无需登录,对于脚本的编写以及其他项目(如Jenkins)的运用这一步是必须的。

首先,在想要进行验证的设备上执行命令:
ssh-keygen
#四个回车生成免密登录秘钥

在这里插入图片描述

在这里插入图片描述

19、项目成员权限分配

在这里插入图片描述

20、gitlab项目介绍

(1)项目权限

权限名称权限类型权限说明
私有Private只有属于该项目成员才有权限查看和操作项目
内部Internal具有GitLab账号的人员登陆后都可以克隆项目
公开Public任何人都可以克隆

(2)分支角色管理

角色名称角色类型角色说明
匿名用户Guest访客【只能创建问题和留言评论】
报告人Reporter可以理解为测试员、产品经理等,一般负责提交问题等
开发人员Developer负责项目开发
管理者Master一般是组长,负责对Master分支进行维护
所有者Owner一般是项目经理【拥有所有权限】

21、gitlab常用命令

命令说明
git add添加文件到暂存区
git status查看仓库当前的状态,显示有变更的文件
git diff比较文件的不同,即暂存区和工作区的差异
git commit提交暂存区到本地仓库
git reset回退版本
git rm删除工作区文件
git mv移动或重命名工作区文件

三、总结

1、开源与免费选项

GitLab 是一款开源软件,遵循 MIT 许可协议,这意味用户可以免费下载并自行安装在自己的服务器上运行,同时也有免费的公共托管服务 GitLab.com 可供选择。

2、一体化 DevOps 平台

集成了版本控制系统(类似 GitHub)、项目管理工具、代码审核(Pull Request)、问题跟踪、Wiki 文档、CI/CD 流水线、容器镜像仓库(GitLab Container Registry)以及安全扫描等功能于一体,简化了整个软件开发流程。

3、分布式特性

基于 Git 分布式版本控制系统,每个开发者的本地都拥有完整的代码仓库副本,提高了协同工作的灵活性和效率。

4、高度集成与可配置性

支持深度集成各种 CI/CD 工具,比如 Jenkins、Kubernetes 等,允许用户根据项目需求灵活配置自动化构建、测试、部署流程。

5、社区活跃与支持

GitLab 拥有一个活跃且不断增长的开发者社区,这意味着更多的贡献者、插件、教程和快速的技术支持。

6、企业级功能

对于企业用户,GitLab 提供了额外的安全控制、权限管理、审计日志、性能优化以及高级 CI/CD 功能,满足大型团队和复杂项目的需求。

7、易用性与用户体验

用户友好的 web 界面,方便非技术或初级开发者进行日常操作,同时也为高级用户提供丰富的 API 和 CLI 工具,实现高效工作流定制。

  • 35
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Docker搭建GitLab使用教程: 1. 安装Docker 首先,需要在您的计算机上安装Docker。您可以在Docker官网上下载适合您操作系统的Docker安装程序。 2. 下载GitLab镜像 在Docker中,我们使用镜像来创建容器。因此,我们需要下载GitLab的Docker镜像。您可以在Docker Hub上找到GitLab的官方镜像。 要下载GitLab镜像,请在终端中运行以下命令: ``` docker pull gitlab/gitlab-ce ``` 3. 创建GitLab容器 下载GitLab镜像后,我们需要使用它来创建一个容器。要创建GitLab容器,请在终端中运行以下命令: ``` docker run -d \ --hostname gitlab.example.com \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume /srv/gitlab/config:/etc/gitlab \ --volume /srv/gitlab/logs:/var/log/gitlab \ --volume /srv/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest ``` 这将创建一个名为“gitlab”的容器,并将其绑定到主机的端口80、443和22。它还将使用三个卷来存储GitLab的配置、日志和数据。 4. 访问GitLab 现在,您可以通过浏览器访问GitLab。只需在浏览器中输入您的主机IP地址或域名,然后按Enter键即可。您将看到GitLab的欢迎页面。 5. 配置GitLab 在访问GitLab之前,您需要进行一些配置。首先,您需要创建一个管理员帐户。要创建管理员帐户,请按照以下步骤操作: - 单击GitLab欢迎页面上的“注册”按钮。 - 输入您的姓名、用户名、电子邮件地址和密码。 - 选择“管理员”作为您的角色。 - 单击“注册”按钮。 现在,您已经创建了一个管理员帐户。接下来,您需要配置GitLab的设置。要配置GitLab,请按照以下步骤操作: - 单击GitLab欢迎页面上的“管理区域”链接。 - 输入您的管理员用户名和密码。 - 单击“登录”按钮。 - 单击“管理区域”链接。 - 单击“设置”链接。 - 配置您的GitLab设置。 6. 使用GitLab 现在,您已经成功地搭建GitLab,并进行了一些基本的配置。您可以使用GitLab来管理您的代码库、问题跟踪、CI/CD等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值