相亲网站怎么建设,百度sem竞价托管公司,中国华能集团电子商务平台招标网,手机搜索网站建设tomcat多实例部署jenkins 文章目录 tomcat多实例部署jenkins1.简介#xff1a;2.优缺点#xff1a;3.工作原理#xff1a;4.工作流程#xff1a;5.tomcat多实例部署jenkins流程5.1.环境说明5.2.部署前准备工作5.3.多实例部署tomcat5.4.部署jenkins5.5.创建一个jenkins项目5…tomcat多实例部署jenkins 文章目录 tomcat多实例部署jenkins1.简介2.优缺点3.工作原理4.工作流程5.tomcat多实例部署jenkins流程5.1.环境说明5.2.部署前准备工作5.3.多实例部署tomcat5.4.部署jenkins5.5.创建一个jenkins项目5.6.配置jenkins自动拉取项目进行打包maven并将包传输到tomcat的项目目录webapps中 1.简介
Jenkins是一个可扩展的、基于Web的工具用于自动化构建、测试和部署软件项目。它支持各种版本控制系统、构建工具和测试框架并提供了丰富的插件生态系统来满足不同的需求。
2.优缺点
优点
灵活性Jenkins可以与多种工具和平台集成支持各种编程语言和技术栈因此非常灵活适应不同的项目需求。易用性Jenkins具有用户友好的Web界面和可视化配置使得配置和管理任务变得简单易上手。扩展性Jenkins拥有丰富的插件生态系统可以通过插件来扩展其功能满足特定项目需要。社区支持Jenkins拥有庞大的活跃社区它提供了大量的文档、教程和支持可以帮助解决常见问题和获取最新的功能和改进。
缺点
配置复杂有时Jenkins的配置可能因其灵活性而变得复杂特别是在处理复杂的构建和部署流程时。学习曲线对于新手来说学习和理解Jenkins的概念和使用方式可能需要一些时间和努力。
3.工作原理
Jenkins的工作原理基于事件驱动和插件系统。它通过不断监测源代码管理系统中的代码变更或预定的时间触发事件然后根据预定义的构建配置和操作来执行构建、测试和部署任务。
事件驱动机制 源代码变更事件Jenkins可以监测源代码管理系统如Git、SVN中的代码变更事件。它通过轮询或钩子机制检查源代码是否发生了变更。时间触发器Jenkins还可以按计划定时触发器执行构建任务。开发人员可以设置特定的时间或时间表使Jenkins在指定时间触发构建。 项目配置 用户通过Jenkins的Web界面创建或导入项目。在项目配置中用户可以设置各种参数如源代码管理、构建触发器、构建参数、构建步骤等。这些配置决定了Jenkins如何执行构建任务。 构建过程 Jenkins使用定义在项目配置中的构建过程来执行构建任务。构建过程包括一系列步骤如代码拉取、构建、测试、部署等。每个步骤可以由用户指定或使用插件提供的工具和命令来执行。 执行构建任务 当满足设定的构建触发条件如源代码变更或时间触发时Jenkins将自动开始执行构建任务。它会根据项目配置中定义的构建过程逐步执行每个步骤。 结果和报告 在构建过程中Jenkins跟踪记录构建任务的执行状态和结果。它会生成构建日志、报告和统计信息以供用户查看和分析构建结果。 插件系统 Jenkins拥有丰富的插件生态系统用户可以根据项目需要选择并安装插件。这些插件提供了额外的功能和扩展例如集成测试框架、静态代码分析工具、部署工具等。插件可以通过Jenkins的Web界面进行管理和配置。
4.工作流程
配置Jenkins服务器安装Jenkins并进行初始化配置设置插件、环境变量、权限等。创建或导入项目在Jenkins中创建新项目或导入现有项目并设置相关配置如源代码管理、构建触发器等。配置构建过程定义构建过程包括编译代码、运行测试、生成文档等。这可以通过脚本命令、构建步骤、构建脚本等方式来实现。触发构建Jenkins可以通过轮询源代码管理系统或根据时间计划来监测项目的变化一旦有触发条件满足就会触发构建过程。构建执行Jenkins根据配置的构建流程执行构建任务包括代码拉取、构建、测试等操作。构建结果和报告Jenkins会记录构建的结果和日志生成构建报告和统计信息供团队查看和分析。部署或集成根据需要Jenkins可以自动将构建的产物部署到目标环境或与其他工具和平台集成如持续部署工具、通知系统等。
5.tomcat多实例部署jenkins流程
5.1.环境说明
jenkins需部署在tomcat服务上
操作系统tomcat版本jenkins版本centos 8tomcat-9.0.80jenkins-2.414.2
5.2.部署前准备工作
//关闭防火墙和selinux
[roottomcat ~]# systemctl disable --now firewalld
[roottomcat ~]# setenforce 0
[roottomcat ~]# vim /etc/selinux/config
[roottomcat ~]# reboot //重启主机生效
[roottomcat ~]# getenforce
Disabled //确保selinux状态为disabled//配置yum源建议使用阿里云的centos8源
[roottomcat ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed
100 2495 100 2495 0 0 2338 0 0:00:01 0:00:01 --:--:-- 2338
[roottomcat ~]# yum clean all
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
17 files removed
[roottomcat ~]# yum makecache
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
CentOS-8.5.2111 - Base - mirrors.aliyun.com 410 kB/s | 4.6 MB 00:11
CentOS-8.5.2111 - Extras - mirrors.aliyun.com 19 kB/s | 10 kB 00:00
CentOS-8.5.2111 - AppStream - mirrors.aliyun.com 757 kB/s | 8.4 MB 00:11
Metadata cache created.5.3.多实例部署tomcat
//安装java环境
[roottomcat ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel wget vim
[roottomcat ~]# java -version
openjdk version 1.8.0_312
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)//拉取tomcat软件包
[roottomcat ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz
--2023-10-10 13:41:29-- https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz
Resolving archive.apache.org (archive.apache.org)... 65.108.204.189, 2a01:4f9:1a:a084::2
Connecting to archive.apache.org (archive.apache.org)|65.108.204.189|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11692853 (11M) [application/x-gzip]
Saving to: ‘apache-tomcat-9.0.80.tar.gz’apache-tomcat-9.0.80.tar.gz 100%[] 11.15M 25.2KB/s in 5m 55s 2023-10-10 13:47:25 (32.1 KB/s) - ‘apache-tomcat-9.0.80.tar.gz’ saved [11692853/11692853][roottomcat ~]# ls
anaconda-ks.cfg apache-tomcat-9.0.80.tar.gz//解压tomcat软件包
[roottomcat ~]# tar xf apache-tomcat-9.0.80.tar.gz
[roottomcat ~]# ls
anaconda-ks.cfg apache-tomcat-9.0.80 apache-tomcat-9.0.80.tar.gz jenkins.war//将解压后的目录复制两份放到/usr/local/目录下一个用于运行jenkins另一个用来运行tomcat中的项目
[roottomcat ~]# cp -r apache-tomcat-9.0.80 /usr/local/jenkins
[roottomcat ~]# cp -r apache-tomcat-9.0.80 /usr/local/tomcat
[roottomcat ~]# ls /usr/local/ cd /usr/local/
bin etc games include jenkins lib lib64 libexec sbin share src tomcat//更改tomcat中的端口号与jenkins以示区分
[roottomcat ~]# cd /usr/local/tomcat/conf/
[roottomcat conf]# ls
catalina.policy context.xml jaspic-providers.xsd server.xml tomcat-users.xsd
catalina.properties jaspic-providers.xml logging.properties tomcat-users.xml web.xml
[roottomcat conf]# vim server.xml
[roottomcat conf]# grep -A1 Server port server.xml
Server port8006 shutdownSHUTDOWNListener classNameorg.apache.catalina.startup.VersionLoggerListener /
[roottomcat conf]# grep -A3 Connector port server.xmlConnector port8081 protocolHTTP/1.1connectionTimeout20000redirectPort8444maxParameterCount1000
//开启服务查看端口
[roottomcat conf]# ../bin/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
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[roottomcat conf]# cd
[roottomcat ~]# cd /usr/local/jenkins/
[roottomcat jenkins]# bin/catalina.sh start
Using CATALINA_BASE: /usr/local/jenkins
Using CATALINA_HOME: /usr/local/jenkins
Using CATALINA_TMPDIR: /usr/local/jenkins/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[roottomcat jenkins]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 1 [::ffff:127.0.0.1]:8006 *:*
LISTEN 0 100 *:8080 *:*
LISTEN 0 100 *:8081 *:*5.4.部署jenkins
Jenkins官网https://www.jenkins.io/download/
///安装Jenkins所需要的Java-17-openjdk
[roottomcat local]# cd jenkins/
[roottomcat jenkins]# yum -y install java-17-openjdk java-17-openjdk-devel//由于安装tomcat时安装的Java1.8但是Jenkins需要Java17为了防止版本冲突需要配置jdk的优先级从而能够同时使用这两个版本
[roottomcat jenkins]# alternatives --config java //优先使用java-17-openjdkThere are 2 programs which provide java.Selection Command
-----------------------------------------------1 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64/bin/java)
* 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64/jre/bin/java)Enter to keep the current selection[], or type selection number: 1
[roottomcat ~]# bash //bash使其生效 //下载jenkins.war的包
[roottomcat ~]# wget wget https://get.jenkins.io/war-stable/2.414.2/jenkins.war
[roottomcat ~]# ls
anaconda-ks.cfg apache-tomcat-9.0.80 apache-tomcat-9.0.80.tar.gz jenkins.war////将Jenkins包复制到我们为其准备的其中一个tomcat的/usr/local/jenkins/webapps/目录中去也就是我们前面复制的jenkins中去
[roottomcat ~]# cp jenkins.war /usr/local/jenkins/webapps/
[roottomcat ~]# cd /usr/local/jenkins/webapps/
[roottomcat webapps]# ls
docs examples host-manager jenkins.war manager ROOT//重启服务后则会自动解压jenkins.war
[roottomcat webapps]# ../bin/catalina.sh stop
Using CATALINA_BASE: /usr/local/jenkins
Using CATALINA_HOME: /usr/local/jenkins
Using CATALINA_TMPDIR: /usr/local/jenkins/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar
Using CATALINA_OPTS:
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opensjava.base/java.langALL-UNNAMED --add-opensjava.base/java.ioALL-UNNAMED --add-opensjava.base/java.utilALL-UNNAMED --add-opensjava.base/java.util.concurrentALL-UNNAMED --add-opensjava.rmi/sun.rmi.transportALL-UNNAMED
[roottomcat webapps]# ../bin/catalina.sh start
Using CATALINA_BASE: /usr/local/jenkins
Using CATALINA_HOME: /usr/local/jenkins
Using CATALINA_TMPDIR: /usr/local/jenkins/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[roottomcat webapps]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 1 [::ffff:127.0.0.1]:8006 *:*
LISTEN 0 100 *:8080 *:*
LISTEN 0 100 *:8081 *:*
[roottomcat webapps]# ls //jenkins自动解压
docs examples host-manager jenkins jenkins.war manager ROOT访问jenkins页面
[roottomcat webapps]# cat /root/.jenkins/secrets/initialAdminPassword
3a5952875fdc4a4c91fc87d480f32338安装推荐插件
创建一个用户 部署完成
5.5.创建一个jenkins项目 测试
5.6.配置jenkins自动拉取项目进行打包maven并将包传输到tomcat的项目目录webapps中
安装所需的软件包
[roottomcat ~]# yum -y install git maven
[roottomcat ~]# which git
/usr/bin/git
[roottomcat ~]# which mvn
/usr/bin/mvn修改test项目的流水线脚本内容
脚本内容
//在gitee网站上拉取一个项目目录然后领用mvn命令压缩至我们想要的.war格式再将压缩包放置到tomcat的项目目录中重启tomcat服务后自动解压从而能够通过tomcat服务端口号访问到我们拉取的项目网页
pipeline {agent anystages {stage(pull code and package) {steps {git https://gitee.com/forgotten/tomcat-java-demo.gitsh mvn clean package}}stage(publish) {steps { sh cp /root/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps/ftx.warsh /usr/local/tomcat/bin/catalina.sh stop /usr/local/tomcat/bin/catalina.sh start}}}
} 通过jenkins压缩的包存放位置
[roottomcat target]# ls
classes ly-simple-tomcat-0.0.1-SNAPSHOT maven-archiver
generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT.war maven-status
[roottomcat target]# pwd
/root/.jenkins/workspace/test/target进入tomcat项目进行查看
[roottomcat webapps]# pwd
/usr/local/tomcat/webapps
[roottomcat webapps]# ls
docs examples ftx ftx.war host-manager manager ROOT通过8081端口访问我们拉取的项目
generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT.war maven-status [roottomcat target]# pwd /root/.jenkins/workspace/test/target
**进入tomcat项目进行查看**~~~powershell
[roottomcat webapps]# pwd
/usr/local/tomcat/webapps
[roottomcat webapps]# ls
docs examples ftx ftx.war host-manager manager ROOT通过8081端口访问我们拉取的项目 访问成功