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

“从零到一:使用GitLab和Jenkins实现自动化CI/CD流水线”

GitLab仓库

简单的来说就是开发人员提交代码的仓库,用于团队开发,GitLab 上托管的仓库通常作为远程仓库使用,开发人员可以将本地的 Git 仓库推送到
GitLab 上,也可以从 GitLab 克隆仓库到本地进行开发。

Jenkins

Jenkins 是一个开源的自动化服务器,广泛用于持续集成(Continuous Integration,
CI)和持续交付(Continuous Delivery,
CD)流程中。它帮助开发者自动化软件开发周期中的不同阶段,如构建、测试和部署应用程序。通过
Jenkins,团队可以更快地发现并解决代码中的问题,提高软件的质量和效率。

部署环境介绍:
Centos 8.2
gitlab-ce-18.1.5-ce.0.el8.x86_64
jenkins-2.512

一、部署GitLab

下载地址:https://packages.gitlab.com/gitlab/gitlab-ce/packages/ol/8/gitlab-ce-18.1.5-ce.0.el8.x86_64.rpm

#安装git
yum -y install git#安装gitlab
wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/ol/8/gitlab-ce-18.1.5-ce.0.el8.x86_64.rpm/download.rpm
yum -y install download.rpm ##修改配置文件 external_url
vim /etc/gitlab/gitlab.rb
external_url 'http://172.16.33.100'#加载配置文件
gitlab-ctl reconfigure
最后看到gitlab Reconfigured!代表配置成功#启动GitLab
gitlab-ctl start
ok: run: alertmanager: (pid 6878) 124s
ok: run: gitaly: (pid 6831) 128s
ok: run: gitlab-exporter: (pid 6847) 127s
ok: run: gitlab-kas: (pid 6247) 301s
ok: run: gitlab-workhorse: (pid 6800) 129s
ok: run: logrotate: (pid 5954) 336s
ok: run: nginx: (pid 6819) 128s
ok: run: node-exporter: (pid 6840) 128s
ok: run: postgres-exporter: (pid 6890) 123s
ok: run: postgresql: (pid 6082) 307s
ok: run: prometheus: (pid 6859) 126s
ok: run: puma: (pid 6313) 209s
ok: run: redis: (pid 5989) 330s
ok: run: redis-exporter: (pid 6850) 126s
ok: run: sidekiq: (pid 6330) 203s#查看状态
gitlab-ctl status#默认账户 root 密码去配置文件找
cat /etc/gitlab/initial_root_password |grep Password
#          2. Password hasn't been changed manually, either via UI or via command line.
Password: BsYT7SMWB8l7u9saBsvFsWmS4cnL9bH8fXcmW0R8Q7A=

可以登录图形化界面修改为中文并修改密码
http://172.16.33.100/
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
新建项目
在这里插入图片描述

二、部署Jenkins

1、安装JDK17

wget https://download.oracle.com/java/17/archive/jdk-17.0.12_linux-x64_bin.tar.gz
mkdir /usr/java
tar -xf jdk-17.0.12_linux-x64_bin.tar.gz 
mv jdk-17.0.12 /usr/java#配置环境变量
vim /etc/profile 
export JAVA_HOME=/usr/java/jdk-17.0.12
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATHsource /etc/profile
java --version
java 17.0.12 2024-07-16 LTS
Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing)

2、安装jenkins

wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.512-1.1.noarch.rpm
yum install -y jenkins-2.512-1.1.noarch.rpm -y#安装字体包,否则会报错Fontconfig head is null
yum install -y fontconfig dejavu-sans-fonts
fc-cache -f -v#在启动配置文件配置jdk地址,上面gitlab已使用8080端口,jenkins更改为8081
vim /usr/lib/systemd/system/jenkins.service 
Environment="JAVA_HOME=/usr/java/jdk-17.0.12"
Environment="PATH$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
Environment="JENKINS_PORT=8081"#启动
systemctl start jenkins
#开机自启
systemctl enable jenkins#cat /var/lib/jenkins/secrets/initialAdminPassword
92422d179ede45f1a47398fedf99b444

浏览器访问http://172.16.33.100:8081/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此,Jenkins安装完成!

三、Jenkins操作


文章转载自:

http://hbh9ZGpY.kyybp.cn
http://KY2D2Rsf.kyybp.cn
http://QMa4zdwX.kyybp.cn
http://FKxP5VQQ.kyybp.cn
http://xTwzYoIr.kyybp.cn
http://uRPZbRB5.kyybp.cn
http://otNe9tEa.kyybp.cn
http://T3VFFahg.kyybp.cn
http://ervydNpB.kyybp.cn
http://cKeCV44N.kyybp.cn
http://Uq65F3hG.kyybp.cn
http://jwvSzslj.kyybp.cn
http://0qA8oW9j.kyybp.cn
http://ygiEFq1l.kyybp.cn
http://JhaWL4CN.kyybp.cn
http://Wn8e9FQK.kyybp.cn
http://RH1dMyx4.kyybp.cn
http://y9MnwmrD.kyybp.cn
http://4xJwsE6h.kyybp.cn
http://rZdOOoFp.kyybp.cn
http://U68NR4vu.kyybp.cn
http://HKElQvGP.kyybp.cn
http://JQT0Z6Fx.kyybp.cn
http://hTyF6Sdi.kyybp.cn
http://WAkVtZeL.kyybp.cn
http://a8XiMM11.kyybp.cn
http://0KN0vroI.kyybp.cn
http://UIXjdUyK.kyybp.cn
http://BLpZSilt.kyybp.cn
http://wqVS4qTf.kyybp.cn
http://www.dtcms.com/a/374453.html

相关文章:

  • 考研408《计算机组成原理》复习笔记,第六章(1)——总线概念
  • adb的常用命令
  • 设计模式:策略模式
  • 【华为OD】数字游戏
  • 分享:一种为蓝牙、WIFI、U段音频发射设备提供ARC回传数字音频桥接功能的方案
  • 【设计模式】 外观模式
  • 在 JavaScript中使用msgpack-lite 和zlib实现大数据文件的压缩和读取
  • 医疗连续体机器人模块化控制界面设计与Python库应用研究(中)
  • 【数据库】Redis详解:内存数据库与缓存之王
  • OpenCV 图像处理实战:从图像金字塔到直方图分析
  • MongoDB 安全加固:构建企业级纵深防御体系——用户权限管理与 TLS 加密配置详解
  • 为什么苹果签名经常会掉签?
  • http basic认证流程
  • Docker 存储卷(Volume)核心概念、类型与操作指南
  • 【iOS】 单例模式
  • Matlab机器人工具箱使用4 蒙特卡洛法绘制工作区间
  • 【华为OD】环中最长子串2
  • 08 docker搭建大数据集群
  • 【华为OD】微服务的集成测试
  • Tool | UI/BI类网址收录
  • 计算机视觉(opencv)——基于模板匹配的身份证号识别系统
  • 腾讯推出AI CLI工具CodeBuddy,国内首家同时支持插件、IDE和CLI三种形态的AI编程工具厂商
  • 前后端联调时出现的一些问题记录
  • 网络编程;套接字;TCP通讯;UDP通讯;0909
  • 最后一公里文件传输难题Localsend+cpolar破解
  • Windows 命令行:cd 命令3,当前目录,父目录,根目录
  • 医疗连续体机器人模块化控制界面设计与Python库应用研究(下)
  • Nginx 优化与防盗链
  • Spring Web 异步响应实战:从 CompletableFuture 到 ResponseBodyEmitter 的全链路优化
  • Linux基础命令使用