“从零到一:使用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

bash 复制代码
#安装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

bash 复制代码
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:$PATH

source /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

bash 复制代码
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操作

相关推荐
宇钶宇夕8 小时前
三旺 INP314T 网关快速入门指南:从登录到基础配置
运维·自动化·软件工程
HIT_Weston11 小时前
47、【Ubuntu】【Gitlab】拉出内网 Web 服务:Nginx 事件驱动分析(一)
前端·ubuntu·gitlab
weixin_3077791316 小时前
Jenkins ASM API 插件:详解与应用指南
java·运维·开发语言·后端·jenkins
是垚不是土16 小时前
轻量化CICD落地:基于Jenkins与Supervisor的中小企业服务发布实践
运维·servlet·ci/cd·微服务·jenkins
hid5588453616 小时前
LS-DYNA在爆炸与冲击领域的应用研究:从隧道支护到地下采场爆破模拟
jenkins
北京耐用通信16 小时前
三步打通数据壁垒:耐达讯自动化Ethernet/IP转CC-Link方案全解析。建议点赞收藏
运维·tcp/ip·自动化
御控工业物联网17 小时前
智慧水务新突破:基于工业网关的二次供水泵房物联网采集解决方案
物联网·自动化·数据采集·plc·远程监控·远程控制·多品牌plc数据采集
古城小栈17 小时前
AI驱动的手机自动化开源项目技术解析
人工智能·智能手机·自动化
北京耐用通信17 小时前
传感器“断联”拖垮产线?耐达讯自动化网关让Ethernet IP转CCLink秒通!
人工智能·科技·物联网·网络协议·自动化
The_Second_Coming17 小时前
Python 自动化运维学习笔记
运维·python·自动化