架构篇、第五章_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/
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
1.4.1查看jenkins初始密码
cat /root/.jenkins/secrets/initialAdminPassword
#输出如下:
36dfc52116e546c0bfc9ac05a4c101e1# 查看日志文件会发现有变动
tail -f /usr/local/tomcat/logs/catalina.out
1.5开启gitlab服务器
gitlab-ctl start# 登录pm
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创建一个工作
2.2回到我们的gitlab复制ssh地址
2.3修改完进行保存Save
2.4继续进行配置
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-----
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
2.7继续配置jenkins项目
# 在jenkins终端连接一下gitlab(不需要输入密码)
ssh 192.168.174.10# 查看gitlab版本
rpm -qa | grep gitlab
#输出如下:
gitlab-ce-17.9.7-ce.0.el8.x86_64# 在重新进入选择root保存
2.8立即构建
2.9修改文件内容重新构建查看变化
# 进入我们构建的仓库查看文件
cd /root/.jenkins/workspace/text1# 查看文件内容
cat pm.txt
今天也要努力# 我们进行修改文件内容: