概述
系列文章目录
文章目录
- 系列文章目录
- 前言
- 一、部署jdk环境
- 二、jenkins
- 打包工具
- 三.jenkins部署项目
前言
一、部署jdk环境
[root@localhost ~]# yum install java-17-openjdk* -y
下载tomcat
# 下载tomcat软件包
[root@localhost ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.65/bin/apache-tomcat-9.0.65.tar.gz
#解压
[root@localhost ~]# ls
anaconda-ks.cfg apache-tomcat-9.0.65.tar.gz
[root@localhost ~]# tar -xf apache-tomcat-9.0.65.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost local]# mv apache-tomcat-9.0.65/ tomcat
[root@localhost local]# cd tomcat/
[root@localhost tomcat]# ll
总用量 128
drwxr-x---. 2 root root 4096 8月 17 14:21 bin
-rw-r-----. 1 root root 19992 7月 14 20:28 BUILDING.txt
drwx------. 2 root root 238 7月 14 20:28 conf
-rw-r-----. 1 root root 6210 7月 14 20:28 CONTRIBUTING.md
drwxr-x---. 2 root root 4096 8月 17 14:21 lib
-rw-r-----. 1 root root 57092 7月 14 20:28 LICENSE
drwxr-x---. 2 root root 6 7月 14 20:28 logs
-rw-r-----. 1 root root 2333 7月 14 20:28 NOTICE
-rw-r-----. 1 root root 3398 7月 14 20:28 README.md
-rw-r-----. 1 root root 6901 7月 14 20:28 RELEASE-NOTES
-rw-r-----. 1 root root 16505 7月 14 20:28 RUNNING.txt
drwxr-x---. 2 root root 30 8月 17 14:21 temp //临时文件
drwxr-x---. 7 root root 81 7月 14 20:28 webapps //存放应用 软件 网页
drwxr-x---. 2 root root 6 7月 14 20:28 work
# 写一个hello world的java页面
[root@localhost ~]# mkdir /usr/local/tomcat/webapps/test //创建test目录用于存放测试网页
[root@localhost ~]# cd /usr/local/tomcat/webapps/test/
[root@localhost test]# vi index.jsp
[root@localhost test]# cat index.jsp
<html>
<head>
<title>test page</title>
</head>
<body>
<%
out.println("Hellow World");
%>
</body>
</html>
# 启动tomcat
[root@localhost ~]# echo 'export PATH=/usr/local/tomcat/bin/:$PATH' > /etc/profile.d/tomcat.sh //配置环境变量
[root@localhost ~]# source /etc/profile.d/tomcat.sh
[root@localhost ~]# 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.
[root@localhost ~]# ss -antl //会有两个端口号 8080 和 8005
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 100 *:8080 *:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
[root@localhost ~]# ps -ef|grep tomcat
root 77045 1 1 14:49 pts/4 00:00:04 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
[root@localhost ~]# systemctl disable --now firewalld.service //关闭防火墙
[root@localhost ~]# setenforce 0 //关闭selinux
网页访问
[root@localhost tomcat]# cd logs/
[root@localhost logs]# ll
总用量 24
-rw-r-----. 1 root root 6935 8月 17 15:01 catalina.2022-08-17.log
-rw-r-----. 1 root root 7206 8月 17 15:01 catalina.out //tomcat 日志
-rw-r-----. 1 root root 0 8月 17 14:49 host-manager.2022-08-17.log
-rw-r-----. 1 root root 414 8月 17 14:49 localhost.2022-08-17.log
-rw-r-----. 1 root root 1368 8月 17 15:04 localhost_access_log.2022-08-17.txt
-rw-r-----. 1 root root 0 8月 17 14:49 manager.2022-08-17.log
开启8009端口
[root@localhost tomcat]# cd conf/
[root@localhost conf]# ls
Catalina jaspic-providers.xml tomcat-users.xml
catalina.policy jaspic-providers.xsd tomcat-users.xsd
catalina.properties logging.properties web.xml
context.xml server.xml
[root@localhost conf]# vim server.xml //取消下面的注释 此文件可以修改默认端口号
#此文件的注释为<!--- --->
<Connector protocol="AJP/1.3"
address="::1"
port="8009"
redirectPort="8443" />
查看端口号和进程
[root@localhost ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 100 *:8080 *:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
[root@localhost ~]# ps -ef | grep tomcat
root 77045 1 0 14:49 pts/4 00:00:10 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 208221 8962 0 15:17 pts/4 00:00:00 grep --color=auto tomcat
重启服务
[root@localhost ~]# catalina.sh stop
[root@localhost ~]# catalina.sh start
[root@localhost ~]# ss -antl //8009端口号开启
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 100 *:8080 *:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 100 [::1]:8009 [::]:*
[root@localhost ~]# vim /usr/local/tomcat/conf/tomcat-users.xml //此文件内添加下面两行
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
[root@localhost ~]# catalina.sh stop //重启服务让其生效
[root@localhost ~]# catalina.sh start
#配置context.xml文件
[root@localhost ~]# cd /usr/local/tomcat/webapps/manager/META-INF/
[root@localhost META-INF]# ls
context.xml
[root@localhost META-INF]# vim context.xml
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192.168.220.d+|127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" /> //添加192.168.220.d+
<Manager sessionAttributeValueClassNameFilter="java.lang.(?:Boolean|Intege
应用程序列表
可以看到test正在运行的
此页面可以控制项目
停止test
卸载
点击卸载后 到tomcat的工作目录内查看
test目录已经被删除了
[root@localhost webapps]# pwd
/usr/local/tomcat/webapps
[root@localhost webapps]# ls
docs examples host-manager manager ROOT
解决host manager访问失败
[root@localhost ~]# vim /usr/local/tomcat/conf/tomcat-users.xml
<role rolename="admin-gui"/> //添加这两行
<user username="tomcat" password="tomcat" roles="admin-gui"/> //此行
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
[root@localhost ~]# catalina.sh stop //重启服务让其生效
[root@localhost ~]# catalina.sh start
#放行
[root@localhost ~]# vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192.168.220.d+|127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" /> //放行ip
<Manager sessionAttributeValueClassNameFilter="java.lang.(?:Boolean|Intege
二、jenkins
通过tomcat发布jenkins
jenkins官网
Jenkins概念
Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。
Jenkins特性:
开源的java语言开发持续集成工具,支持CI,CD;
易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理;
消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告;
分布式构建:支持Jenkins能够让多台计算机一起构建/测试;
文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等;
丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。
部署jenkins
[root@localhost webapps]# mv * /opt/ //清理webapps目录内的
[root@localhost webapps]# ls //将jenkins的包导入到webapps目录内
jenkins.war
[root@localhost webapps]# catalina.sh stop //重启
[root@localhost webapps]# catalina.sh start
[root@localhost ~]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]# ls
jenkins jenkins.war //重启后生成了jenkins目录
浏览器访问
[root@localhost ~]# cat /root/.jenkins/secrets/initialAdminPassword
9297b1f992184517a4aff1ccd2640
#安装git工具
[root@localhost ~]# yum install git -y
[root@localhost ~]# git clone https://github.com/chendao2015/tomcat-java-demo.git
打包工具
manven
简介:
Maven是一个跨平台的项目管理工具,是Apache组织中的一个颇为成功的开源项目。Maven主要服务基于java的项目构建,项目信息管理和依赖管理。
作用:
1.Maven可以创建项目。
2.Maven可以引入依赖的jar包。
ant
简介:
Ant是一个将软件编译、测试、部署等步骤联系在一起的自动化工具,Ant的主要用途是构建Java应用程序。
Ant提供了许多内置的任务,可以编译、组装、测试和运行Java应用程序。Ant还可以有效地用于构建非Java应用程序,例如C或C++应用程序。
优点:
Ant主要有以下优点:
跨平台。Ant是纯Java语言编写的,所以具有很好的跨平台性。
操作简单。Ant由一个内置任务和可选任务组成,运行时需要一个XML文件(构建文件)。
易维护集成。构建文件是XML格式的文件,结构清晰易于维护,由于跨平台和操作简单,很容易集成到开发环境中。
gradle
简介:
Gradle 就是一个自动化构建项目的工具,用来帮助我们自动构建项目。就像我们在写 Java 项目的时候,如果没有构建工具,我们需要先执行 javac 命令先将 Java 源码编译成 class 文件,然后再执行 jar 命令再把 class 文件打成 jar 包。有了构建工具我们只需要点一个按钮就可以了。
三.jenkins部署项目
环境 | ip |
---|---|
tomcat+jenkins | 192.168.146.128 |
tomcat | 192.168.146.129 |
需求:通过192.168.146.128主机 部署jenkins 将项目打包传输的192.168.146.129主机 并可以通过浏览器访问到项目网页
创建新任务
填写任务名和任务类型
拉取代码
生成拉取代码的脚本
编写流水线脚本
拉取
pipeline {
agent any
stages {
stage("pull code"){
steps {
git 'https://github.com/chendao2015/tomcat-java-demo.git'
}
}
}
}
测试
开始创建
查看logs
命令行查看
[root@localhost ~]# cd .jenkins/workspace/test
[root@localhost test]# ls
db Dockerfile LICENSE pom.xml README.md src
打包
安装打包工具
[root@localhost ~]# yum install maven -y
编写打包脚本
pipeline {
agent any
stages {
stage("pull code"){
steps {
git 'https://github.com/chendao2015/tomcat-java-demo.git'
}
}
stage("make pkg"){
steps {
sh """
mvn clean package -Dmaven.test.skip=true
"""
}
}
}
}
命令行查看test项目
[root@localhost test]# cd target/ //target为打包后生成的目录
[root@localhost target]# ls
classes ly-simple-tomcat-0.0.1-SNAPSHOT maven-archiver
generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT.war maven-status
部署
设置免密登陆
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
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:ILexF+o4ascaGiaXqsJ4gx+KbvUjWp+x8ZMfEtzeS2k root@localhost.localdomain
The key's randomart image is:
+---[RSA 3072]----+
| |
| |
| . + . |
| o.*.. |
| +oS. |
| o o .o . . |
|=o*o+o...o E |
|BO==++*o. + . |
|@*=+.+..o. . |
+----[SHA256]-----+
[root@localhost ~]# ssh-copy-id root@192.168.146.129
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.146.129 (192.168.146.129)' can't be established.
ECDSA key fingerprint is SHA256:qoJI5joraUlKD9iXhfj+GRVHvegeRitHHDZexhWLOLs.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.146.129's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@192.168.146.129'"
and check to make sure that only the key(s) you wanted were added.
# 登陆验证
[root@localhost ~]# ssh root@192.168.220.30
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Thu Aug 18 14:12:17 2022 from 192.168.146.1
[root@localhost ~]# ip addr show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:8c:8e:d5 brd ff:ff:ff:ff:ff:ff
inet 192.168.146.129/24 brd 192.168.146.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe8c:8ed5/64 scope link noprefixroute
valid_lft forever preferred_lft forever
编写输出脚本
pipeline {
agent any
stages {
stage("pull code"){
steps {
git 'https://github.com/chendao2015/tomcat-java-demo.git'
}
}
stage("make pkg"){
steps {
sh """
mvn clean package -Dmaven.test.skip=true
"""
}
}
stage("publish"){
steps {
sh """
cd /root/.jenkins/workspace/test/target/
scp ly-simple-tomcat-0.0.1-SNAPSHOT.war root@192.168.146.129:/usr/local/tomcat/webapps/
ssh root@192.168.146.129 '/usr/local/tomcat/bin/catalina.sh stop && /usr//local/tomcat/bin/catalina.sh start'
"""
}
}
}
}
启动构建
192.168.146.129查看
[root@localhost ~]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]# ls
docs examples host-manager ly-simple-tomcat-0.0.1-SNAPSHOT ly-simple-tomcat-0.0.1-SNAPSHOT.war manager ROOT
#关闭防火墙和selinux
[root@localhost webapps]# systemctl disable --now firewall
[root@localhost webapps]# setenforce 0
浏览器访问
最后
以上就是粗暴苗条为你收集整理的tomcat部署系列文章目录前言一、部署jdk环境二、jenkins三.jenkins部署项目的全部内容,希望文章能够帮你解决tomcat部署系列文章目录前言一、部署jdk环境二、jenkins三.jenkins部署项目所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复