当前位置: 首页 > news >正文

GitLab安装

GitLab安装

什么是 GitLab?

GitLab 是一个基于 Git 的一体化 DevOps 平台。简单来说,它不仅仅是一个代码仓库,更是一个覆盖软件开发全生命周期的工具集合。

可以把它理解为 “增强版”的 GitHub,但它的核心特点是 “开箱即用”的一体化解决方案和强大的 “自托管” 能力。

核心功能与特点

GitLab 的功能非常丰富,主要可以分为以下几个核心领域:

1. 代码托管与版本控制

这是最基本的功能,和 GitHub 类似。可以创建仓库来存储代码,使用 Git 进行版本管理,包括分支、合并、提交历史查看等。

2. 项目管理与协作

Issue 跟踪:用于任务、Bug、功能需求的分配和跟踪。

看板:可视化的工作流管理,方便团队了解项目进度。

Wiki:为每个项目创建文档知识库。

合并请求:代码审查的核心流程,团队成员可以对代码提出评论和建议,确保代码质量。

3. 持续集成与持续部署

这是 GitLab 的王牌功能。通过内置的 GitLab CI/CD,你可以自动化地完成代码的构建、测试和部署。

开发者只需在项目中配置一个 .gitlab-ci.yml 文件,当代码推送后,GitLab 就会自动运行一系列预设的流水线任务,比如自动运行单元测试、打包成 Docker 镜像、部署到测试或生产环境等。

4. 安全与合规

提供静态应用程序安全测试、依赖项扫描、容器扫描等功能,帮助在开发早期发现安全漏洞。

5. 多种部署方式

SaaS:使用 GitLab 官方提供的云服务。

自托管:可以将 GitLab 部署在你自己的服务器上,这对于需要控制数据和流程的企业来说至关重要。社区版免费,企业版提供更多高级功能。

GitLab 与 GitHub 的主要区别

特性GitLabGitHub
核心定位一体化 DevOps 平台社交化的代码托管平台
CI/CD 工具内置(GitLab CI/CD)主要通过第三方集成(如 GitHub Actions)
部署方式强调自托管,同时提供 SaaS主要是 SaaS,也有企业版可自托管
开源协议核心代码为 MIT 协议,完全开源平台本身不是开源的
仓库权限支持更细粒度的权限控制权限控制相对简单

GitLab 常用命令

命令含义说明
gitlab-ctl start启动全部服务启动 GitLab 所有组件。
gitlab-ctl restart重启全部服务常用命令。重启 GitLab 所有组件,通常在修改配置后执行。
gitlab-ctl stop停止全部服务停止 GitLab 所有组件。
gitlab-ctl restart nginx重启单个服务仅重启指定的服务(如 nginx, postgresql, redis等)。
gitlab-ctl status查看服务状态常用命令。检查所有 GitLab 组件的运行状态。
gitlab-ctl reconfigure使配置文件生效核心命令。在修改 /etc/gitlab/gitlab.rb 后必须运行,以重新配置并应用新设置。
gitlab-ctl show-config验证配置文件显示最终合并的配置文件内容,用于检查配置是否正确应用。
gitlab-ctl uninstall删除 GitLab(保留数据)卸载 GitLab 应用程序但保留其数据目录。
gitlab-ctl cleanse删除所有数据,重新开始危险命令。会清空所有数据,将 GitLab 重置为初始状态。
gitlab-ctl tail查看所有服务的日志动态显示所有组件的日志尾行,按 Ctrl+C 退出。
gitlab-ctl tail nginx查看指定服务的日志动态显示指定服务(如 nginx)的日志尾行。
gitlab-rails console进入 Rails 控制台高级命令。进入 GitLab 的交互式管理命令行,可执行高级操作(如重置密码)。
安装gitlab

安装前内存给8g,cpu2核,关闭防火墙和selinux

配置yum源

[root@server ~]# cd /etc/yum.repos.d/
[root@server yum.repos.d]# rm -rf *
[root@server yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@server yum.repos.d]# yum install epel-release -y

安装工具包

[root@server yum.repos.d]# yum -y install git
[root@server yum.repos.d]# yum -y install curl openssh-server openssh-clients postfix cronie  perl

重启postfix

[root@server yum.repos.d]# systemctl restart postfix.service
[root@server yum.repos.d]# systemctl enable postfix.service

在/usr/src下安装gitlab

[root@server yum.repos.d]# cd /usr/src
[root@server src]# ls
debug  gitlab-ce-15.3.3-ce.0.el7.x86_64.rpm  kernels

如果是centos7版本,直接安装

[root@server src]# rpm -ivh gitlab-ce-15.3.3-ce.0.el7.x86_64.rpm

如果是其他版本,安装会发现需要一个依赖包 policycoreutils-python
wget https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/Packages/policycoreutils-python-2.5-34.el7.x86_64.rpm

然后直接安装会发现无法安装,即使添加了–nodeps去除依赖性也安装不成功
此时我们需要使用rpm -qa|grep policy 找到policycoreutils
然后将其卸载

rpm  -e  policycoreutils
#最后
rpm -ivh --nodeps policycoreutils-python-2.5-34.el7.x86_64.rpm

安装完成后修改配置文件

[root@server src]# vim /etc/gitlab/gitlab.rb external_url 'http://192.168.100.10'  换成gitlab服务器的ip地址

重载配置文件并重启gitlab

[root@server src]# gitlab-ctl reconfigure
[root@server src]# gitlab-ctl restart
#没有报错即可

查看你gitlab版本

[root@server src]# head -1 /opt/gitlab/version-manifest.txt
gitlab-ce 15.3.3

首次登录需要密码,但是不知道密码是什么,因此选择破解密码

[root@server src]# gitlab-rails console -e productionirb(main):001:0> user = User.where(id:1).first     
=> #<User id:1 @root>irb(main):002:0> user.password = 'redhat123!'     //密码必须至少8个字符
=> "redhat123!"irb(main):003:0> user.password_confirmation = 'redhat123!'		//确认irb(main):004:0> user.save!   
=> trueirb(main):005:0> exit  

在浏览器中访问gitlab

在这里插入图片描述

用户为root,密码为刚刚设置的密码

登录后右上角preferences

在这里插入图片描述

语言设置成简体中文

由于gitlab一般为私有,因此我们需要关闭注册功能

在这里插入图片描述

点击菜单-管理员-设置-通用

在这里插入图片描述

关闭注册功能,然后保存更改

gitlab的常用操作

项目管理(通常只是创建新项目)
创建成员组(针对某个项目创建一个成员组)
用户管理(此用户为gitlab用户而非系统用户)

1.创建项目

在这里插入图片描述

在菜单中点击项目-新建项目

在这里插入图片描述

新建完成后我们添加ssh密钥

[root@server ~]# ssh-keygen
#全部回车
[root@server ~]# cd ~/.ssh/
[root@server .ssh]# ls
id_rsa  id_rsa.pub
[root@server .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdMRZMbT8r7hfcSsXMy+TStGiH9dCGu/jSd1MPgpa7nHZ7BUIpf+GcjUqkNwpAyWIfMTIWKpRvSQfidkGPkYG0W3BTRe1wrcgLTSZfOulVmuqDSljhoSd1CyAizFKGfTVz9KNX8hIf4pGgkvpIRfM7XNIgCTV2v52oRFx2EbLd8Nx8bch1a3Au07K6rJ6DTaIawjusgjE7K1Xn45ZHpbl/SENSNMqnXjAa2yXfNDeDGEnEaRLIH+q7NT0IrVxL206b4NTEtbw77/CPYYJmlnO/iHrZutVnUkbbw+vFgexEdmpu+NExitNAHPvTFvt8hCNGd5g7KUrx5njQRh8sd1S3 root@server.example.com

复制

在这里插入图片描述

使用ssh克隆

在这里插入图片描述

[root@server ~]# git clone git@192.168.100.10:gitlab-instance-77fa1576/test1.git
[root@server ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates  Videos
Desktop          Downloads  Music                 Public    test1
[root@server ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates  Videos
Desktop          Downloads  Music                 Public    test1

测试

[root@server test1]# touch file1
[root@server test1]# git add file1
[root@server test1]# git commit -m "add file1"	#打标签
[root@server test1]# git push   #默认上传到main

在这里插入图片描述

上传成功

[root@server test1]# touch file2 file3
[root@server test1]# git add .		#.代表上传所有文件
[root@server test1]# git commit -m "add file23"
[root@server test1]# git push

在这里插入图片描述

创建分支

在这里插入图片描述

在这里插入图片描述

新建的分支会自动同步,合并分支可以将其他分支合并,可以选择删除原分支或者不删除

http://www.dtcms.com/a/507425.html

相关文章:

  • Redis八股
  • 网站gif素材dw做网站背景音乐
  • 做网站编程有钱途么做玩具订制网站好处
  • CI/CD:现代软件开发的持续交付之道
  • 【理论知识】Q/K/V权重矩阵学习笔记
  • 【小增长电商软件分享】微信私域淘宝电商补单/做基础销量:如何有效控制粉丝错货、复购、订单插旗及客服转账返款等常见痛点|粉丝订单管理|电商鱼塘运营方案
  • Tomcat安装与HTML响应实战
  • 第三章深度学习---核心库TensorFlow 和 PyTorch 实操指南(四)
  • YOLO v4模型
  • uni-app 小程序开发避坑:诡异的 `module ‘...‘ is not defined` 错误与我的解决方案
  • 中国最大的中文网站安庆微信网站开发
  • 广州市南沙区建设局网站网站建设与规划总结
  • 百度 PaddleOCR 3.0 深度测评:与 MinerU 的复杂表格识别对决
  • 选cpp /c++方向工作职业发展的优缺点
  • 香港硬防服务器防御DDOS攻击的优点
  • 如何利用扣子生成小程序并进行发布指南
  • Rust 与 Go – 比较以及每个如何满足您的需求
  • HTTP 核心知识点速查表
  • YOLOv4 :兼顾速度与精度!
  • 甘南网站建设asp网站仿制
  • 【AI4S】Generative AI 为药物设计带来新思路:寻找“美丽分子”
  • 第19节-非规范化数据类型-Enum
  • 曼彻斯特编码与差分曼彻斯编码的区别
  • 网站内链检测百度关键词优化工具是什么
  • Node.js+Koa2+MySQL 打造前后端分离项目(视频教程)
  • 企业网站怎么管理系统用idea做html网站
  • 高端建网站西部域名网
  • unbuntu重置netplan
  • Transformer架构:深度学习序列建模的革命性突破
  • Katalon AI 之StudioAssist 代理模式MCP 服务器介绍和使用