高端网站建设好的公司设计网站app
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]]](https://i-blog.csdnimg.cn/direct/59cbba49400e4f18b81d2466612ae02c.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]]](https://i-blog.csdnimg.cn/direct/da9e44177c4b4b0cb67c4ab2b6bd8444.png)
1.4.1查看jenkins初始密码
cat /root/.jenkins/secrets/initialAdminPassword
#输出如下:
36dfc52116e546c0bfc9ac05a4c101e1# 查看日志文件会发现有变动
tail -f /usr/local/tomcat/logs/catalina.out
![![[Pasted image 20250516103549.png]]](https://i-blog.csdnimg.cn/direct/a1ceb65f727046f9bd699e25a06d1660.png)
![![[Pasted image 20250516103616.png]]](https://i-blog.csdnimg.cn/direct/08445b5a3c744f2db1c47754a393ab8b.png)
![![[Pasted image 20250515153947.png]]](https://i-blog.csdnimg.cn/direct/9d9d4c66481d4232b84aea90c07c0a1f.png)
![![[Pasted image 20250515154006.png]]](https://i-blog.csdnimg.cn/direct/fbcf9456e2884dac8a80e5e3af196d3b.png)
1.5开启gitlab服务器
gitlab-ctl start# 登录pm
![![[Pasted image 20250515160028.png]]](https://i-blog.csdnimg.cn/direct/4f7501191aee4b769e4cd2ff71d15041.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]]](https://i-blog.csdnimg.cn/direct/433d9a9c176248b79bfc01043143bb58.png)
![![[Pasted image 20250515172531.png]]](https://i-blog.csdnimg.cn/direct/46db28042a4b455fae1db2085e0af813.png)
2.2回到我们的gitlab复制ssh地址
![![[Pasted image 20250515172646.png]]](https://i-blog.csdnimg.cn/direct/b98601b3bd1941c2a22ebe2a3800ef34.png)
2.3修改完进行保存Save
![![[Pasted image 20250515172807.png]]](https://i-blog.csdnimg.cn/direct/393df37fc16347f1a35177156e14c871.png)
2.4继续进行配置
![![[Pasted image 20250515173018.png]]](https://i-blog.csdnimg.cn/direct/bbdefeb7333044228206092550a28d89.png)
![![[Pasted image 20250515173058.png]]](https://i-blog.csdnimg.cn/direct/a9374ac3bfb6480d84e8d6d224989faa.png)
![![[Pasted image 20250515173141.png]]](https://i-blog.csdnimg.cn/direct/1f917881022b43f88b410286f3e272fc.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]]](https://i-blog.csdnimg.cn/direct/471ef40741a44298845b79f8a093792d.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]]](https://i-blog.csdnimg.cn/direct/607355e70335426da4bd12104bce45b9.png)
![![[Pasted image 20250515174016.png]]](https://i-blog.csdnimg.cn/direct/ef24348f4468496f8821a9a0d3072eaa.png)
![![[Pasted image 20250515174021.png]]](https://i-blog.csdnimg.cn/direct/866c4da1469540bb8a1075e6e79775c6.png)
2.7继续配置jenkins项目
![![[Pasted image 20250515174142.png]]](https://i-blog.csdnimg.cn/direct/9e2b766c364a4cdca63483f6a971c3fc.png)
![![[Pasted image 20250515174915.png]]](https://i-blog.csdnimg.cn/direct/dd371ed2d908496f8c6802f51feedd0f.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]]](https://i-blog.csdnimg.cn/direct/dadfc8b8bfcb4b75ad475d96d9fd0ef9.png)
![![[Pasted image 20250515175406.png]]](https://i-blog.csdnimg.cn/direct/0a9e66478b3345ac9aefd5b9e3b4daf1.png)
2.8立即构建
![![[Pasted image 20250516111254.png]]](https://i-blog.csdnimg.cn/direct/29ad57bc599e4d9abc4eb4ca6f2e716a.png)
![![[Pasted image 20250516111350.png]]](https://i-blog.csdnimg.cn/direct/25a242d382204270ac0ccde322ee6212.png)
2.9修改文件内容重新构建查看变化
# 进入我们构建的仓库查看文件
cd /root/.jenkins/workspace/text1# 查看文件内容
cat pm.txt
今天也要努力# 我们进行修改文件内容:
![![[Pasted image 20250516111949.png]]](https://i-blog.csdnimg.cn/direct/a2c9bae06d0048479ab96de7223515d4.png)
![![[Pasted image 20250516112017.png]]](https://i-blog.csdnimg.cn/direct/006549fab3284a29bd6ea1da95db1d14.png)
![![[Pasted image 20250516112114.png]]](https://i-blog.csdnimg.cn/direct/88e25d3c4b0c44f8a49c135c1909e674.png)
2.10回到jenkins构建查看变化
![![[Pasted image 20250516112233.png]]](https://i-blog.csdnimg.cn/direct/609e029120de4ac29f480d4903be9f99.png)
![![[Pasted image 20250516112255.png]]](https://i-blog.csdnimg.cn/direct/c9a6f163a32945519b107e28c3c27001.png)
![![[Pasted image 20250516112315.png]]](https://i-blog.csdnimg.cn/direct/b6616eb18aa8492e99e2640a51fb8b2f.png)
三、jenkins插件部署的介绍
3.1进入插件设置
![![[Pasted image 20250516112429.png]]](https://i-blog.csdnimg.cn/direct/4cd4745ff04649d2990e160634883634.png)
3.2找到插件的安装
![![[Pasted image 20250516112721.png]]](https://i-blog.csdnimg.cn/direct/486fe2ee85b441f487c554012dd97a2e.png)
![![[Pasted image 20250516112639.png]]](https://i-blog.csdnimg.cn/direct/25a1771e26294bbd94a45ffad647a9e2.png)
