架构篇、第五章_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 firewalld

sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

reboot

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:$PATH

source /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:$PATH

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

cat >>/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大家可以根据自己需要自定义安装需要软件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值