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

相关推荐
阿Q论文2 小时前
机械设计制造及其自动化/ 机械电子工程 / 机电一体化技术(四自由度的工业机器人)
机器人·自动化·制造
泽众云测试7 小时前
泽众软件与日联科技达成合作,TestOne自动化测试平台助力搭建工业检测装备数字化品控防线
功能测试·测试工具·自动化
向上的车轮7 小时前
GitHub Actions 自动化运维实战:Rust 全栈项目 CI/CD 至华为云
运维·自动化·github
鹿鹿学长7 小时前
从英伟达开源Nemotron 3.5看“本地跑大模型“:一张显卡够用的时代来了
python·自动化
梦想的旅途27 小时前
企微私域自动化:客户全生命周期 SOP 策略与配置实战
运维·自动化·企业微信
梦想的旅途29 小时前
企业微信销售自动化:线索分配与超时预警
小程序·自动化·企业微信
HiDev_10 小时前
【非标自动化】硬核阅读理解620行梯形图-逆推工位逻辑
运维·自动化
xiaoxiangsiyan11 小时前
机房交换机交换技术与服务器链路聚合深度指南
运维·服务器·网络·学习·自动化·bond
梦想的旅途212 小时前
企微社群裂变实战:自动化群接龙与活动打卡系统搭建
运维·自动化·企业微信
酷可达拉斯12 小时前
自动化运维-Ansible触发器与变量
运维·服务器·自动化·ansible