• tomcat部署


    部署tomcat

    安装jdk环境

    [root@localhost ~]# yum install java-17-openjdk* -y
    
    • 1

    下载tomcat软件包
    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 817 14:21 bin
    -rw-r-----. 1 root root 19992 714 20:28 BUILDING.txt
    drwx------. 2 root root   238 714 20:28 conf    
    -rw-r-----. 1 root root  6210 714 20:28 CONTRIBUTING.md
    drwxr-x---. 2 root root  4096 817 14:21 lib
    -rw-r-----. 1 root root 57092 714 20:28 LICENSE
    drwxr-x---. 2 root root     6 714 20:28 logs
    -rw-r-----. 1 root root  2333 714 20:28 NOTICE
    -rw-r-----. 1 root root  3398 714 20:28 README.md
    -rw-r-----. 1 root root  6901 714 20:28 RELEASE-NOTES
    -rw-r-----. 1 root root 16505 714 20:28 RUNNING.txt
    drwxr-x---. 2 root root    30 817 14:21 temp   //临时文件
    drwxr-x---. 7 root root    81 714 20:28 webapps   //存放应用 软件 网页
    drwxr-x---. 2 root root     6 714 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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72

    网页访问
    在这里插入图片描述

    加上测试目录
    在这里插入图片描述

    [root@localhost tomcat]# cd logs/
    [root@localhost logs]# ll
    总用量 24
    -rw-r-----. 1 root root 6935 817 15:01 catalina.2022-08-17.log
    -rw-r-----. 1 root root 7206 817 15:01 catalina.out   //tomcat 日志
    -rw-r-----. 1 root root    0 817 14:49 host-manager.2022-08-17.log
    -rw-r-----. 1 root root  414 817 14:49 localhost.2022-08-17.log
    -rw-r-----. 1 root root 1368 817 15:04 localhost_access_log.2022-08-17.txt
    -rw-r-----. 1 root root    0 817 14:49 manager.2022-08-17.log
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    开启8009端口
    可以让apache和tomcat的使用AJP协议 使效率更高

    [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" />
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    查看端口号和进程

    [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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    重启服务让其生效

    [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           [::]:*             
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    解决网页server status无法打开
    在这里插入图片描述

    解决办法
    在这里插入图片描述

    [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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    #配置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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    刷新网页
    在这里插入图片描述
    在这里插入图片描述

    应用程序列表
    可以看到test正在运行的
    此页面可以控制项目
    在这里插入图片描述

    停止test
    在这里插入图片描述
    访问网页
    在这里插入图片描述

    卸载
    在这里插入图片描述

    点击卸载后 到tomcat的工作目录内查看
    test目录已经被删除了

    [root@localhost webapps]# pwd
    /usr/local/tomcat/webapps
    [root@localhost webapps]# ls
    docs  examples  host-manager  manager  ROOT
    
    • 1
    • 2
    • 3
    • 4

    解决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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    #放行
    [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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    刷新页面
    在这里插入图片描述

    在这里插入图片描述

    通过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等。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述
    点击下载稳定版
    在这里插入图片描述

    部署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目录
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    浏览器访问
    需要等待一段时间

    在这里插入图片描述

    在这里插入图片描述

    密码位置

    [root@localhost ~]# cat /root/.jenkins/secrets/initialAdminPassword
    9297b1f992184517a4aff1192f3ca531
    
    • 1
    • 2

    在这里插入图片描述

    等待自动安装
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    新建用户
    在这里插入图片描述

    在这里插入图片描述

    使用jenkins部署项目

    需要安装ip
    tomcat+jenkins192.168.220.10
    tomcat192.168.220.30

    需求:通过192.168.220.10主机 部署jenkins 将项目打包传输的192.168.220.30主机 并可以通过浏览器访问到项目网页

    创建新项目
    在这里插入图片描述
    输入任务名和任务类型
    在这里插入图片描述
    拉取代码
    在这里插入图片描述

    生成拉取代码的脚本
    在这里插入图片描述

    编写流水线脚本

    拉取
    pipeline {
        agent any 
        stages {
            stage("pull code"){
                steps {
                    git 'https://github.com/chendao2015/tomcat-java-demo.git'
                }
                
            }  
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    编写完成后测试
    在这里插入图片描述

    开始构建
    在这里插入图片描述

    构建完成后 可以查看logs
    在这里插入图片描述

    这里是下载后项目保存的路径
    在这里插入图片描述

    命令行内查看

    [root@localhost ~]# cd .jenkins/workspace/test
    [root@localhost test]# ls
    db  Dockerfile  LICENSE  pom.xml  README.md  src  
    
    • 1
    • 2
    • 3
    打包

    安装打包工具

    [root@localhost ~]# yum install maven -y
    
    • 1

    编写打包脚本

    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
                    """
                }
            }  
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    命令行查看项目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
    
    • 1
    • 2
    • 3
    • 4
    部署

    需要在192.168.220.30主机部署tomcat 详细过程请查看上面的tomcat部署

    配置免密登陆

    [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.220.30
    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
    The authenticity of host '192.168.220.30 (192.168.220.30)' 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.220.30's password: 
    
    Number of key(s) added: 1
    
    Now try logging into the machine, with:   "ssh 'root@192.168.220.30'"
    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.220.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.220.30/24 brd 192.168.220.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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    编写输出脚本

    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.220.30:/usr/local/tomcat/webapps/
                       ssh root@192.168.220.30 '/usr/local/tomcat/bin/catalina.sh stop && /usr//local/tomcat/bin/catalina.sh start'
                       """
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    启动构建
    在这里插入图片描述

    192.168.220.30主机查看

    [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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    网页访问
    在这里插入图片描述

  • 相关阅读:
    Java基础11——抽象类和接口
    入坑计算机视觉必备的图像基础
    创业3年,现在鹅厂,年收入百万+,作为软件测试前辈的一些建议....
    STC8H8K64U I2C主机模式相关寄存器
    Unity 保存图片到相册以及权限管理
    [山东科技大学OJ]1226 Problem B: 寻求勾股数
    支持对协议和会话分享动作进行授权,新增API Key白名单功能,JumpServer堡垒机v3.9.0发布
    从零开始的深度学习之旅(3)
    Mongodb语法使用说明(含详细示例)
    2023/11/8JAVA学习
  • 原文地址:https://blog.csdn.net/QWQ45597316/article/details/126385078