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

架构篇、第五章_05Jenkins的部署与构建

Linux_架构篇

欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神!

题目:Jenkins的部署与构建

版本号: 1.0,0
作者: @老王要学习
日期: 2025.05.15
适用环境: Centos7

文档说明

本文档围绕 Jenkins 的部署与构建展开,适用于 Centos7 环境。详细介绍了硬件、软件的准备工作,涵盖软件下载、安装步骤,如 Java、Tomcat、Jenkins 等。还阐述了 Jenkins 构建流程及插件部署方法,包含实操命令和配置说明

环境准备

硬件要求

  • 服务器: 2核CPU、4GB内存,20GB硬盘空间
  • 网络: 确保服务器具有固定的IP地址,并且防火墙允许FTP端口(默认22端口)的通信

软件要求

  • 操作系统:Centos7
  • FTP软件:SecureCRT
  • 软件包1:jdk11
  • 软件包2:tomcat10
  • 软件包3:jenkins war

一、软件的下载与安装

1.0关闭防火墙

systemctl stop firewalld && systemctl disable firewalldsed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/configreboot

1.1下载软件

# java17.0.15
https://www.oracle.com/cn/java/technologies/downloads/
# 下载如下包
jdk-17.0.15_linux-x64_bin.tar.gz# jenkins
wget - P /usr/local/src https://mirrors.aliyun.com/jenkins/war/latest/jenkins.war # tomcat
wget - P /usr/local/src https://mirrors.aliyun.com/apache/tomcat/tomcat-10/v10.1.41/bin/apache-tomcat-10.1.41.tar.gz

1.2安装java-17

# 进入并解压
cd /usr/local/src/
tar zxf jdk-17_linux-x64_bin.tar.gz # 查看当前版本
java -version
#输出如下: 
openjdk version "1.8.0_442"
OpenJDK Runtime Environment (build 1.8.0_442-b06)
OpenJDK 64-Bit Server VM (build 25.442-b06, mixed mode)# 查看java相关包
rpm -qa | grep jdk
#输出如下: 
copy-jdk-configs-4.0-3.el9.noarch
java-1.8.0-openjdk-headless-1.8.0.442.b06-2.el9.x86_64# 卸载如下版本
dnf remove java-1.8.0-openjdk-headless-1.8.0.442.b06-2.el9.x86_64# 修改文件名
mv /usr/local/src/jdk-17.0.12/ /usr/local/java# 添加环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATHsource /etc/profile# 查看 Java 版本信息
java -version
#输出如下: 
java version "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)

1.3安装Tomcat

# 解压文件
tar zxf apache-tomcat-10.1.41.tar.gz # 修改文件名
mv apache-tomcat-10.1.41 /usr/local/tomcat# 修改环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/java
export CATALINA_HOME=/usr/local/tomcat
export PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATHsource /etc/profile# 启动 Apache Tomcat 服务器
catalina.sh start
#输出如下: 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.# 查看端口号
ss -antpl |grep java
#输出如下: 
LISTEN 0      1      [::ffff:127.0.0.1]:8005            *:*    users:(("java",pid=2168,fd=51))
LISTEN 0      100                     *:8080            *:*    users:(("java",pid=2168,fd=43))# 访问Tomcat查看网页
http://192.168.174.30:8080/

![[Pasted image 20250515144525.png]]

1.3.1查看Tomcat日志

tail -f /usr/local/tomcat/logs/catalina.out 
#输出如下: 
15-May-2025 14:44:01.249 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/docs]
15-May-2025 14:44:01.274 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/docs] has finished in [24] ms
15-May-2025 14:44:01.274 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/examples]
15-May-2025 14:44:01.429 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/examples] has finished in [155] ms
15-May-2025 14:44:01.429 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/host-manager]
15-May-2025 14:44:01.442 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/host-manager] has finished in [13] ms
15-May-2025 14:44:01.443 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/manager]
15-May-2025 14:44:01.455 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/manager] has finished in [12] ms
15-May-2025 14:44:01.457 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
15-May-2025 14:44:01.466 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [568] milliseconds

1.4安装jenkins

# 复制jenkins到如下文件
cp /usr/local/src/jenkins.war /usr/local/tomcat/webapps/# 网页访问jenkins
http://192.168.174.30:8080/jenkins

![[Pasted image 20250515151118.png]]

1.4.1查看jenkins初始密码

cat /root/.jenkins/secrets/initialAdminPassword
#输出如下: 
36dfc52116e546c0bfc9ac05a4c101e1# 查看日志文件会发现有变动
tail -f /usr/local/tomcat/logs/catalina.out 

![[Pasted image 20250516103549.png]]

![[Pasted image 20250516103616.png]]

![[Pasted image 20250515153947.png]]

![[Pasted image 20250515154006.png]]

1.5开启gitlab服务器

gitlab-ctl start# 登录pm

![[Pasted image 20250515160028.png]]

1.6回到jenkins写入文件(python)

cd /tmpcat >>/tmp/test.py<<EOF
def main():print("hello")if __name__ == "__main__":main()
EOF# 赋权
chmod +x test.py # 执行文件
python test.py 
hello# 我们进行修改
cat >/tmp/test.py<<EOF
def main():print("hello world")if __name__ == "__main__":main()
EOF# 我们在进行执行文件
python test.py 
hello world# python解释性语言不需要构建(修改完后直接执行就是结果,但是什么是构建呢?接下我们写一个java文件来演示)

1.7在写入一个java文件

cat >>/tmp/TEST.java<<EOF 
public class TEST{public static void main(String args[]){System.out.println("hello");}
}
EOF# 编译 Java 源文件的命令
javac TEST.java # 查看目录它会构建出一个新的文件TEST.class
TEST.class
TEST.java
test.py# 执行java文件查看结果(TEST执行其实class文件)
java TEST 
hello# 我们进行修改
cat >/tmp/TEST.java<<EOF 
public class TEST{public static void main(String args[]){System.out.println("hello world");}
}
EOF# 我们不进行从新构建输出还是之前的值
java TEST 
hello# 当我们编译文件后,构建了新的class文件
javac TEST.java # 在查看结果(发送了变化)
java TEST 
hello world

二、构建jenkins

2.1创建一个工作

![[Pasted image 20250515172459.png]]

![[Pasted image 20250515172531.png]]

2.2回到我们的gitlab复制ssh地址

![[Pasted image 20250515172646.png]]

2.3修改完进行保存Save

![[Pasted image 20250515172807.png]]

2.4继续进行配置

![[Pasted image 20250515173018.png]]

![[Pasted image 20250515173058.png]]

![[Pasted image 20250515173141.png]]

2.5回到终端做一个私钥

ssh-keygen -t rsa
#输出如下: 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:GLcrFqjWxhT37k1elTo6dkUWELF6+LaL+JCmcaoPAMw root@jenkins01
The key's randomart image is:
+---[RSA 3072]----+
|            ++   |
|o            ..  |
|.E  . o .   .  . |
| .   + = . o  o. |
|  . o o S o .oo  |
|   *   o o o o.  |
|  o = + B . *.   |
| . . o O *o=.o   |
|    .o+ oo*oo.   |
+----[SHA256]-----+# 查看私钥
cat /root/.ssh/id_rsa
#输出如下: 
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----

![[Pasted image 20250515173717.png]]

2.6gitlab放置公钥

# 生成密钥
ssh-keygen  -t  rsa# 查看公钥
cat /root/.ssh/id_rsa.pub 
#输出如下: 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCOtYsRAJCgaHy9gyTGXM9eNUEwyUb8+h8XPQ12RxESqrv14LPVHirMJfAYinTj9C7OzESzebf9L2SrcKSE2WtIrYqLzn2FU5YUfQmlGeaIjRgCVUORG8KAvK9cRSukdM66PzlILqmbyY6/YyiJrvrdcZtDweztry7d37bd8hS2Wp9HCkKtKqUQFrAlCzcMuuuH2Hy+8CJc3q9BTui1jRgdEcXrT21TilZeGiQBFhSAR6Nss0NmiryfmgDrFIE8g9tKCi+b7eYlk2OUgQ8XUs0Q4Fc6oJmLfF/S+hIB8Gyi+0ZHiwXd0A7lT9E0toOYjqwiERehMyXVQVllCPF3EjcT+qnzr1Gi2VWNaZrWmwSkImuiHTNtV314+t559zE9rG4K9RXGbIN7KtaxXl0c1QWUwC+lLbwankMBUf3q3BF45ugmASyS/E4gaYGOaFxDygz3TZvpKnj8ZA3sW3OIzzSvxs3zuD42cg3zpTYHCievZxw0JSGxaTIwGfkuKoXnYSc= root@jenkins01

![[Pasted image 20250515173942.png]]

![[Pasted image 20250515174016.png]]

![[Pasted image 20250515174021.png]]

2.7继续配置jenkins项目

![[Pasted image 20250515174142.png]]

![[Pasted image 20250515174915.png]]

# 在jenkins终端连接一下gitlab(不需要输入密码)
ssh 192.168.174.10# 查看gitlab版本
rpm -qa | grep gitlab
#输出如下: 
gitlab-ce-17.9.7-ce.0.el8.x86_64# 在重新进入选择root保存

![[Pasted image 20250515175028.png]]

![[Pasted image 20250515175406.png]]

2.8立即构建

![[Pasted image 20250516111254.png]]

![[Pasted image 20250516111350.png]]

2.9修改文件内容重新构建查看变化

# 进入我们构建的仓库查看文件
cd /root/.jenkins/workspace/text1# 查看文件内容
cat pm.txt 
今天也要努力# 我们进行修改文件内容:

![[Pasted image 20250516111949.png]]

![[Pasted image 20250516112017.png]]

![[Pasted image 20250516112114.png]]

2.10回到jenkins构建查看变化

![[Pasted image 20250516112233.png]]

![[Pasted image 20250516112255.png]]

![[Pasted image 20250516112315.png]]

三、jenkins插件部署的介绍

3.1进入插件设置

![[Pasted image 20250516112429.png]]

3.2找到插件的安装

![[Pasted image 20250516112721.png]]

![[Pasted image 20250516112639.png]]

3.3大家可以根据自己需要自定义安装需要软件

相关文章:

  • 为什么Flexray在渐渐被TSN以太网替代-AI的回答
  • WebGIS开发智慧机场项目实战(2)
  • postgres的docker版本安装
  • SG7050VAN差分晶振,X1G0042810033,EPSON爱普生以太网6G晶振
  • 如何通过URL链接让亚马逊网站返回指定像素大小的产品主图片
  • conda init执行了还是不好用
  • 升级kafka4.0.0,无ZK版本
  • windows编程:LIB和OBJ格式文件解析
  • 如何实现金蝶云星空到MySQL的数据高效集成
  • GTS-400 系列运动控制器板卡介绍(三十三)---运动程序单线程累加求和
  • 小学数学题批量生成及检查工具
  • 如何导出一个python项目中的所有依赖包及其版本信息requirements.txt
  • JS手写代码篇---手写 instanceof 方法
  • 卡尔曼滤波及变种 KF EKF ESKF的区别跟用法
  • 医学图像分析中的大规模基准测试与增强迁移学习|文献速递-深度学习医疗AI最新文献
  • Java【13_1】final、初始化块、继承(测试题)
  • 基于“岗课赛证”融通的中职“综合布线技术”课程解决方案
  • 物联网技术在银行安全用电系统中的应用与实践研究
  • 网络安全-等级保护(等保) 2-6 GB/T 36958—2018 《信息安全技术 网络安全等级保护安全管理中心技术要求》-2018-12-28 发布【现行】
  • 14 C 语言浮点类型详解:类型精度、表示形式、字面量后缀、格式化输出、容差判断、存储机制
  • 第十届曹禺剧本奖上海揭晓,首次开放个人申报渠道
  • 外企聊营商|上海仲裁:化解跨国企业纠纷的“上海路径”
  • 全国林业院校校长论坛举行,聚焦林业教育的创新与突破
  • 试点首发进口消费品检验便利化措施,上海海关与上海商务委发文
  • 上海老字号卖黄金,与动漫IP联名两周销售额近亿元
  • 俄乌官员即将在土耳其会谈,外交部:支持俄乌开启直接对话