CI/CD—GitLab部署

GitLab简介:

GitLab 是一个用于代码托管和软件开发协作的平台,在全球开发者社区及企业中应用广泛,以下是对它的详细介绍:

主要功能

  • 代码托管:提供了基于 Git 的代码仓库管理功能,支持创建、克隆、推送、拉取等常见的 Git 操作。开发团队可以方便地将项目代码存储在 GitLab 上,进行版本控制,追踪代码的变更历史,方便团队成员协作开发。
  • CI/CD 集成:内置了强大的 CI/CD 功能,通过简单的配置文件(如.gitlab-ci.yml),可以定义自动化的构建、测试和部署流程。当代码发生变更时,能够自动触发相应的 CI/CD 任务,实现持续集成、持续交付和持续部署,提高软件开发效率和质量。
  • 问题跟踪:具备问题管理系统,团队成员可以创建、分配、跟踪和解决问题。可以为每个问题添加标签、描述、优先级等信息,方便团队对项目中的问题进行管理和跟进,确保问题得到及时处理。
  • 代码审查:支持代码审查功能,团队成员可以对提交的代码进行审查,提出意见和建议。通过代码审查,可以提高代码质量,发现潜在的问题和漏洞,促进团队成员之间的知识共享和技术交流。
  • Wiki 功能:提供了 Wiki 功能,方便团队记录项目文档、技术规范、操作手册等信息。团队成员可以在 Wiki 中创建和编辑页面,协作编写文档,使项目相关信息更加易于查找和共享。
  • 容器镜像仓库:拥有容器镜像仓库,方便用户存储和管理 Docker 等容器镜像。与 CI/CD 流程紧密集成,能够在构建完成后自动将镜像推送到镜像仓库,便于后续的部署和使用。

部署方式

  • 公有云版本:GitLab 提供了公有云服务,用户可以直接在 GitLab 官网注册账号,使用在线的 GitLab 平台。这种方式无需用户自己搭建和维护服务器,开箱即用,适合小型团队或个人开发者。
  • 私有部署版本:对于对数据安全和隐私有较高要求的企业或组织,可以选择在自己的服务器上进行私有部署。GitLab 提供了多种安装包和详细的安装文档,支持在 Linux、Windows 等多种操作系统上进行部署,用户可以根据自己的需求进行定制化配置。

技术优势

  • 开源性:GitLab 是开源软件,其源代码可以免费获取和使用。这使得用户可以根据自己的需求对其进行定制化开发和扩展,同时也受益于全球开源社区的贡献,能够及时获得新功能和 bug 修复。
  • 一体化解决方案:集代码托管、CI/CD、问题跟踪、代码审查等多种功能于一体,为软件开发提供了一站式的解决方案。避免了使用多个不同工具带来的集成和协作问题,提高了团队的工作效率。
  • 高度可扩展性:具有良好的可扩展性,支持通过插件和集成来扩展其功能。可以与许多其他工具和服务进行集成,如 Slack、Jira 等,满足不同团队的多样化需求。
  • 安全性:注重安全性,提供了一系列的安全功能,如用户认证和授权、访问控制、代码扫描等。能够帮助用户保护代码资产的安全,防止数据泄露和恶意攻击。

一、Gitlab安装部署

1、环境准备

1.1、安装相关的依赖

yum -y install policycoreutils openssh-server openssh-clients postfix policycoreutils-python curl

1.2、启动ssh和postfix服务

systemctl enable postfix systemctl start postfix systemctl enable sshd systemctl start sshd

2、GitLab安装

#下载
wgt https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm#安装
rpm -ivh gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm

3、端口号配置修改数据存放路径

3.1、配置Gitlab访问的url

#编辑配置文件
vim /etc/gitlab/gitlab.rb 
external_url 'http://192.168.72.130:9080'

3.2、配置数据存放的路径

设置 GitLab 的数据存放路径。此处如果不设置,则默认路径为 
/var/opt/gitlab/git-data/ 。修改的方法是在文件 gitlab.rb  编写如下代码:(注意:在修改路径前,要将原 GitLab 的数据存放目录下的文件拷贝到新目录中。)

3.3、加载配置重启服务

#加载配置 
gitlab-ctl reconfigure #重新启动Gitlab 
gitlab-ctl restart

4、访问测试

浏览器输入:192.168.72.130:9080
出现报错:
gitlab-ctl tail gitlab-ctl tail nginx/gitlab_access.log gitlab-ctl tail nginx/gitlab_error.log less /var/log/gitlab/puma/current
执行 less /var/log/gitlab/puma/current 发现报错:
4.4.1、puma是什么?
在 GitLab 里,Puma 是一款高性能的 Ruby Web 服务器,被用作 GitLab Rails 应用的后端服务器,负责处理来自客户端的 HTTP 请求。下面从其作用、优势、配置和管理等方面为你详细介绍:

作用

GitLab 是基于 Ruby on Rails 框架开发的,而 Rails 应用本身不能直接处理 HTTP 请求,需要借助 Web 服务器来实现。Puma 的主要作用就是接收来自客户端(如浏览器)的 HTTP 请求,然后将这些请求转发给 GitLab 的 Rails 应用进行处理,最后把 Rails 应用生成的响应返回给客户端。

优势

  • 高性能:Puma 采用多线程和多进程的架构设计,能够充分利用多核处理器的性能,同时处理多个请求,有效提升 GitLab 的响应速度和并发处理能力。
  • 可扩展性:可以根据服务器的硬件资源和实际的负载情况,灵活调整工作进程和线程的数量,以适应不同规模的用户访问需求。
  • 稳定性:具备良好的稳定性和容错能力,能够在高负载情况下保持稳定运行,减少服务中断的风险。

配置

Puma 的配置文件通常位于 
/var/opt/gitlab/gitlab-rails/etc/puma.rb ,你可以通过编辑这个文件来调整 Puma 的参数设置,常见的配置参数如下:
  • 工作进程数量:通过 workers 参数设置,例如:
workers Integer(ENV['PUMA_WORKERS'] || 2)
该参数决定了 Puma 启动的工作进程数量,可根据服务器的 CPU 核心数进行调整。
  • 线程数量:使用 threads 参数配置,示例如下:
threads Integer(ENV['MIN_THREADS'] || 1), Integer(ENV['MAX_THREADS'] || 16)
此参数设置了每个工作进程的最小和最大线程数。
  • 监听地址和端口:通过 bind 参数指定,例如:
bind 'tcp://0.0.0.0:8080'
这表示 Puma 监听所有网络接口的 8080 端口。

管理

在 GitLab 中,可以使用 
gitlab-ctl 命令来管理 Puma 服务,常见的操作命令如下:
sudo gitlab-ctl status puma
该命令用于查看 Puma 服务的当前运行状态。
  • 启动服务:
sudo gitlab-ctl start puma
  • 用于停止 Puma 服务。
    • 重启服务:
    当修改了 Puma 的配置文件后,可使用此命令重启服务使配置生效。
sudo gitlab-ctl restart puma
修改了puma端口之后登录成功
4.4.2、查看密码存放的文件
cat /etc/gitlab/initial_root_password

二、Gitlab使用

1、修改初始密码

步骤一:进入gitlab控制台,查找root账号

gitlab-rails console -e production

步骤二:查看root用户的id

admin_users = User.where(admin: true)

步骤三:重新设置gitlab root账号密码

密码设置成8位才符合git设定的密码强度要求
 user = User.find_by(username: 'root')user.password = 'git@1234'user.password_confirmation = 'git@1234'user.save!

2、选择语言

3、创建一个项目

4、Gitlab常见的命令

# 开启,关闭,重启: gitlab组件
gitlab-ctl {start|stop|restart|status} 		
gitlab-ctl start
gitlab-ctl stop
gitlab-ctl restart
gitlab-ctl status# 重载配置文件(重新编译gitlab的配置)
gitlab-ctl reconfigure# 验证配置文件
gitlab-ctl show-config   # 检查gitlab
gitlab-rake gitlab:check SANITIZE=true --trace    # 查看日志
gitlab-ctl tail
gitlab-ctl tail nginx/gitlab_access.log
gitlab-ctl tail nginx/gitlab_error.log# 常用目录
日志地址:/var/log/gitlab/   # 对应各服务的打印日志 
服务地址:/var/opt/gitlab/   # 对应各服务的主目录 


5、卸载

停止gitlab使用命令:gitlab-ctl stop卸载gitlab(注意这里写的是gitlab-ee)使用命令:rpm -e gitlab-ee查看并删除gitlab进程使用命令:ps -ef | grep gitlab如果有进程,就杀掉(kill -9 pid),没有的话进行下一步杀掉后,在使用ps -aux | grep gitlab确认一遍,还有没有gitlab的进程删除所有包含gitlab的文件使用命令:find / -namegitlab | xargs rm -rf

资料参考:

https://zhuanlan.zhihu.com/p/704511497

linux环境GitLab服务部署安装及使用_linux安装gitlab-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/897657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu软件

视频软件,大部分的编码都能适应 sudo apt install vlc图片软件 sudo apt install gwenview截图软件 sudo apt install flameshot设置快捷键 flameshot flameshot gui -p /home/cyun/Pictures/flameshot也就是把它保存到一个自定义的路径 菜单更换 sudo apt r…

Easysearch 使用 AWS S3 进行快照备份与还原:完整指南及常见错误排查

Easysearch 可以使用 AWS S3 作为远程存储库,进行索引的快照(Snapshot)备份和恢复。同时,Easysearch 内置了 S3 插件,无需额外安装。以下是完整的配置和操作步骤。 1. 在 AWS S3 上创建存储桶 登录 AWS 控制台&#x…

【系统架构设计师】性能评估

目录 1. 说明2. 基准测试程序3. Web服务器的性能评估4. 系统监视5. 例题5.1 例题1 1. 说明 1.性能评估是为了一个目的,按照一定的步骤,选用一定的度量项目,通过建模和实现,对一个系统的性能进行各项检测,对测试结果做…

动态规划-第2篇

前言:在上一篇文章中,我们了解了动态规划的基本概念和解决问题的基本思路。通过分解问题、存储子问题的解,动态规划为我们提供了高效的解决方案。然而,动态规划并不是一成不变的,它有很多不同的技巧和变种,…

基于Redis实现限流

限流尽可能在满足需求的情况下越简单越好! 1、基于Redsi的increment方法实现固定窗口限流 Redis的increment方法保证并发线程安全窗口尽可能越小越好(太大可能某一小段时间就打满请求剩下的都拿不到令牌了)这个原理其实就是用当前时间戳然后除窗口大小 在这个窗口大…

【工具使用】IDEA 社区版如何创建 Spring Boot 项目(详细教程)

IDEA 社区版如何创建 Spring Boot 项目(详细教程) Spring Boot 以其简洁、高效的特性,成为 Java 开发的主流框架之一。虽然 IntelliJ IDEA 专业版提供了Spring Boot 项目向导,但 社区版(Community Edition&#xff09…

探索高性能AI识别和边缘计算 | NVIDIA Jetson Orin Nano 8GB 开发套件的全面测评

随着边缘计算和人工智能技术的迅速发展,性能强大的嵌入式AI开发板成为开发者和企业关注的焦点。NVIDIA近期推出的Jetson Orin Nano 8GB开发套件,凭借其40 TOPS算力、高效的Ampere架构GPU以及出色的边缘AI能力,引起了广泛关注。本文将从配置性…

紧急救援!MySQL数据库误删后的3种恢复方案

一、误删场景分类与恢复策略 ‌常见误操作场景‌: DROP TABLE 误删单表(高频事故)DELETE 误删数据(可通过事务回滚抢救)DROP DATABASE 删除整个库(需全量备份)服务器rm -rf(物理文件删除)‌恢复方案选择矩阵‌: 场景推荐方案时间窗口表结构删除(DROP)备份恢复 + B…

开源免费日志服务ELK Syack代替syslog

一、ELK Stack 采集 syslog 日志的主要方式 通常,ELK Stack 使用 Logstash 或者 Filebeat 来采集 syslog 日志。 Beats 通常更轻量级,适合作为代理部署在各个日志源服务器上,而 Logstash 则功能更强大,可以进行更复杂的日志处理和…

单片机设计暖脚器研究

标题:单片机设计暖脚器研究 内容:1.摘要 本文聚焦于基于单片机设计暖脚器的研究。背景方面,在寒冷季节,暖脚器能有效改善脚部寒冷状况,提升人们的舒适度,但传统暖脚器存在功能单一、温控不准确等问题。目的是设计一款智能、高效且…

蓝桥杯省赛真题C++B组2024-握手问题

一、题目 【问题描述】 小蓝组织了一场算法交流会议,总共有 50 人参加了本次会议。在会议上,大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手(且仅有一次)。但有 7 个人,这 7 人彼此之间没有进行握手(但这…

C#+AForge 实现视频录制

C#AForge 实现视频录制 ​ 在C#中,使用AForge 库实现视频录制功能是一个比较直接的过程。AForge 是一个开源的.NET框架,提供了许多用于处理图像和视频的类库。 开发步骤 安装AForge库 ​ 首先,确保你的项目中已经安装了 AForge.Video和AFo…

PHP框架加载不上.env文件中的变量

以lumen5.5框架为例,根目录中bootstrap文件夹下的app.php文件中 (new Dotenv\Dotenv(__DIR__./../))->load(); 是读取所有.env中的文件的,这个是正常的,但是在代码中的任何位置或者在config目录下的databases.php里,代码如…

21.Linux 线程库的使用与封装

在linux内核中并没有线程的概念,只有轻量级进程LWP的概念,linux下的线程都是是由LWP进行模拟实现的。因此linux操作系统中不会提供线程的相关接口,只会提供轻量级线程的接口(如vfork,clone等)。但是在我们的…

Aliyun CTF 2025 web 复现

文章目录 ezoj打卡OKoffens1veFakejump server ezoj 进来一看是算法题,先做了试试看,gpt写了一个高效代码通过了 通过后没看见啥,根据页面底部提示去/source看到源代码,没啥思路,直接看wp吧,跟算法题没啥关系,关键是去…

《鸿蒙系统下AI模型训练加速:时间成本的深度剖析与优化策略》

在当今数字化浪潮中,鸿蒙系统凭借其独特的分布式架构与强大的生态潜力,为人工智能的发展注入了新的活力。随着AI应用在鸿蒙系统上的日益普及,如何有效降低模型训练的时间成本,成为了开发者与研究者们亟待攻克的关键课题。这不仅关…

Git使用(一)--如何在 Windows 上安装 Git:详细步骤指南

如果你想在 Windows 机器上安装 Git,可以按照以下详细指南进行操作。 第一步:下载 Git 可通过官网下载 适用于 Windows 的 Git 最新版本。 如果下载速度较慢,可以通过下面提供的百度网盘 链接下载安装包, https://git-scm.com/d…

基于Prometheus+Grafana的Deepseek性能监控实战

文章目录 1. 为什么需要专门的大模型监控?2. 技术栈组成2.1 vLLM(推理引擎层)2.2 Prometheus(监控采集层)2.3 Grafana(数据可视化平台)3. 监控系统架构4. 实施步骤4.1 启动DeepSeek-R1模型4.2 部署 Prometheus4.2.1 拉取镜像4.2.2 编写配置文件4.2.3 启动容器4.3 部署 G…

本地Git仓库搭建(DevStar)与Git基本命令

本地Git仓库搭建(DevStar)与Git基本命令 实验环境搭建平台Git基本命令的使用本地仓库的创建代码提交代码合并版本发布 总结 实验环境 搭建平台 按照DevStar的Github仓库要求,在终端中执行下列命令,即可成功安装DevStar到本地部署…

stm32 蓝桥杯 物联网 独立键盘的使用

在蓝桥杯物联网平台里面,有5个外接设备,其中有一个就是6个独立按键。首先,我们先看一下按键有关的电路图。 电路图与cubemx设定 由图可见,独立键盘组由两行三列构成,我们通过行列来锁定要访问的独立按键在哪。ROW1挂…