基于Jenkins自动打包并部署Tomcat环境

2023-11-09

目录

1、配置git主机

2、配置jenkins主机

3、配置web主机

4、新建Maven项目

5、验证 Jenkins 自动打包部署结果


Jenkins 的工作原理是先将源代码从 SVN/Git 版本控制系统中拷贝一份到本地,然后根据设置的脚本调用Maven进行 build(构建)。整个系统的关键就是 build 脚本,build 脚本告诉Jenkins 在一次集成中需要执行的任务。

 

实验环境

操作系统

IP地址

主机名

角色

CentOS7.5

192.168.200.111

git

git服务器

CentOS7.5

192.168.200.112

Jenkins git客户端

jenkins服务器

CentOS7.5

192.168.200.113

tomcat

web服务器

所有主机关闭防火墙和selinux

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# iptables -F

[root@localhost ~]# setenforce 0

1、配置git主机


# rpm安装安装依赖关系:1和2都安

[root@gitclient ~]# yum -y install curl-devel expat-devel gettext-devel  openssl-devel zlib-devel     【可能还会缺失部分依赖比如c++可以根据需要自行安装】

 

# 编译安装—服务端和客户端,访问https://mirrors.edge.kernel.org/pub/software/scm/git/下载所需要的版本

先rz导入git2.22的包

[root@gitclient ~]# tar xf git-2.22.0.tar.gz -C /usr/src/

[root@gitclient ~]# cd /usr/src/git-2.22.0/

[root@git git-2.22.0]# make configure【这一步可能会有以下提示 yum -y install 安装即可】

[root@git git-2.22.0]# yum -y install gcc-c++ 【安装c++依赖】

[root@git git-2.22.0]# ./configure --prefix=/usr/local/git && make && make install

[root@git git-2.22.0]# ln -sf /usr/local/git/bin/git /usr/bin/

[root@git git-2.22.0]# git --version

 

#在git服务端配置用户【第一台】

[root@git ~]# useradd git

[root@git ~]# echo "123456" | passwd --stdin git

[root@git ~]# echo "123456" | passwd --stdin git

创建本地仓库probe

[root@git ~]# su - git

上一次登录:四 6月 20 09:46:10 CST 2019pts/0 上

[git@git ~]$ mkdir probe.git

[git@git ~]$ cd probe.git

[git@git probe.git]$ git --bare init

初始化空的 Git 版本库于 /home/git/probe.git/

[git@git probe.git]$ exit

[root@git ~]# rz  #上传psi-probe.tar.gz

 

[root@git ~]# tar xf psi-probe.tar.gz

[root@git ~]# git clone git@192.168.200.111:/home/git/probe.git

[root@git ~]# cp -rf psi-probe/* probe/

[root@git ~]# cd probe/

[root@git probe]# git add .

[root@git probe]# git config --global user.email "jialiang@163.com"

[root@git probe]# git config --global user.name "jialiang"

[root@git probe]# git commit -m "all probe"

[root@git probe]# git push origin master

2、配置jenkins主机


添加验证凭据 :凭证这里添不添加都可以,这个试验不牵扯到凭证

 

 “添加凭据”。

 

 

 填写以上数据后,点击“确定”就可以查看到新增的远程 web 主机账号。

 

 

添加 Publish Over SSH 远程主机

在 Jenkins 首页中点击“Manage Jenkins”->“Configure System”->“Publish over SSH”->“SSH Servers”->“增加”选项按钮,添加 SSH 远程主机。如图 3.13 所示,输入 Name、Hostname、Username 等必要信息后,点击“高级”选项按钮->勾选“Use Password authentication,or use a different key”选项->输入“远程主机登录密码”->“Test Configuration”测试远程主机配置。测试远程主机配置成功后点击“保存”按钮即可。

 

 

 

 

配置 Maven、JDK、Git 环境

在 Jenkins 首页中点击“Manage Jenkins”->“Global Tool Configuration”->“JDK” ->新增“JDK”,设置 JDK 别名为”JDK17”。去掉“Install automatically”选项,设置 “JAVA_HOME”为本案例中 JDK 实际安装路径。

/usr/local/java

 

 

 

 

 

Jenkins安装maven

 [root@jenkins ~]# tar xf apache-maven-3.5.0-bin.tar.gz

[root@jenkins ~]# mv apache-maven-3.5.0 /usr/local/maven-3.5.0

为maven更换阿里云镜像站

[root@jenkins ~]# vim /usr/local/maven-3.5.0/conf/settings.xml

#删除两个<mirrors>中的所有东西,大概12行,把下面的阿里云镜像站添加到两个<mirrors>中

    <mirror>

        <id>nexus-aliyun</id>

        <mirrorOf>central</mirrorOf>

        <name>Nexus aliyun</name>

        <url>http://maven.aliyun.com/nexus/content/groups/public</url>

</mirror>

最后达到的效果 

 

 

在“Global Tool Configuration”配置界面中找到 Maven 配置选项,然后点击“新增 Maven”并设置别名为“Maven3.5”。

 

Git 配置

[root@jenkins ~]# which git

/usr/bin/git

 

以上全局基本配置完毕后,点击保存即可完成。

3、配置web主机


[root@tomcat ~]# tar xf apache-tomcat-8.5.40.tar.gz

[root@tomcat ~]# tar xf jdk-8u191-linux-x64.tar.gz

[root@tomcat ~]# mv jdk1.8.0_191/ /usr/local/java

[root@tomcat ~]# mv apache-tomcat-8.5.40 /usr/local/tomcat

[root@tomcat ~]# vim /etc/profile

export JAVA_HOME=/usr/local/java/

export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

export PATH=$JAVA_HOME/bin:$PATH

 

[root@tomcat ~]# source /etc/profile

[root@tomcat ~]# java -version

java version "1.8.0_191"

Java(TM) SE Runtime Environment (build 1.8.0_191-b12)

Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

发布公钥给jenkins主机

[root@tomcat ~]# ssh-keygen

[root@tomcat ~]# ssh-copy-id 192.168.200.112

 

【回到jenkins】

主机Jenkins默认用jenkins用户去连接git,所以用jenkins用户生成密钥对,并发送给git。

[root@jenkins ~]# id jenkins

uid=988(jenkins) gid=982(jenkins) 组=982(jenkins)

 

[root@jenkins ~]# su -s /bin/bash jenkins

bash-4.2$ ssh-keygen

bash-4.2$ ssh-copy-id git@192.168.200.111

bash-4.2$ ssh git@192.168.200.111            #登录测试

bash-4.2$ exit

[root@jenkins ~]# ssh-keygen

[root@jenkins ~]# ssh-copy-id git@192.168.200.111

[root@jenkins ~]# ssh git@192.168.200.111             #登录测试

 

4、新建Maven项目


在以上配置完成后,回到 Jenkins 首页,选择“新建任务”,然后输入一个任务名称 “probe”,并选中“Maven project”点击当前页面下方的“确定”按钮。

 

 

在点击“确定”按钮后,选择“源码管理”选中“Git”,配置“RepositoriesURL”为

git@192.168.200.111:/home/git/probe.git

 

 

选择“Build”

clean package -Dmaven.test.skip=true

 

选择“构建后操作“中的“send build artfacts over SSH” “Exec command”中执行命令的含义是:在自动部署前先杀掉 Tomcat 进程,然后删除 war 包,用 scp 远程拷贝命令将 Jenkins 自动打包好的项目 war 包拷贝到当前 Tomcat 应用目录。 然后重启 Tomcat 。

 

scp 192.168.200.112:/root/.jenkins/workspace/probe/psi-probe-web/target/probe.war /usr/local/tomcat/webapps/

/usr/local/tomcat/bin/startup.sh

 

以上全部配置完成后,点击保存即可。然后点击刚才创建的“probe”->“Build Now” 直至项目构建完成。构建过程可以在“控制台输出”中查看到。

 

 

 

5、验证 Jenkins 自动打包部署结果


在web主机上查看 probe 目录是否被拷贝到/usr/local/tomcat/webapps 目录下

[root@tomcat ~]# ls /usr/local/tomcat/webapps/

[root@tomcat ~]# ls /usr/local/tomcat/webapps/probe -l

 从以上结果来看,Jenkins 已把打好的 probe war 包拷贝过来了。

从构建后的执行命令可以看出,Tomcat 已经重新启动,通过浏览器访问测试 probe 监控系统。http://192.168.200.113:8080/probe

 

[root@tomcat ~]# vim /usr/local/tomcat/conf/tomcat-users.xml

  <role rolename="manager-gui"/>

  <role rolename="admin-gui"/>

  <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>

</tomcat-users> # 在此行前加入上面三行

 

[root@tomcat ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml

<!--  <Valve className="org.apache.catalina.valves.RemoteAddrValve"

         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->

注释掉以上内容

 

[root@tomcat ~]# /usr/local/tomcat/bin/shutdown.sh

[root@tomcat ~]# /usr/local/tomcat/bin/startup.sh

 

 至此,Jenkins 自动打包部署完毕

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Jenkins自动打包并部署Tomcat环境 的相关文章

随机推荐

  • tp5.1 查询字段为空的数据

    tp 语句直接查询空字段数据 gt where 字段名 null 查询为NULL时的条件 gt where 字段名 not null 查询不是NULL时的条件 官方文档提供了更加简洁的使用方式 推荐的方式是使用whereNull和where
  • 快速跑 nerf instant-ngp 快速调试与配置,跑自己的数据

    1 下载Anaconda3 2 打开Anaconda Prompt Anaconda 创建虚拟环境 conda create n nerf ngp python 3 8 切换到虚拟环境 conda activate nerf ngp 安装相
  • 2021年CNVD漏洞挖掘经验

    一 关于证书获取条件 先看一下CNVD的官方解释 归档漏洞的证书颁发条件为 1 对于中危及中危以上通用型漏洞 CVSS2 0基准评分超过4 0分 除小厂商的产品 非重要APP 黑盒测试案例不满10起等不颁发证书 2 涉及电信行业单位 中国移
  • js的三目运算写法

    1 什么是三目运算 布尔表达式 值0 值1 注意 三目运算和if else 的 区别是三目运算有返回值 例如 var max a gt b a b 2 多条件的三目运算怎么写 实例 根据学生成绩判定ABCD四个等级 var result s
  • Python3学习实战——用类实现简单的猜拳游戏

    Python3学习实战 用类实现简单的猜拳游戏 前言 本笔记仅个人认知和见解 水平有限 还请见谅 如有错误 还请指出 若有想法 欢迎共享 内容不代表最优解决方案 甚至可能不是很好的方法 仅供参考 文章目录 Python3学习实战 用类实现简
  • Ubuntu 20.04 LTS系统下安装STM32CubeProgrammer

    前言 软件环境 一 软件下载 STM32CubeProg STM32CubeProgrammer software for all STM32 STMicroelectronics 二 iso格式转换 制作软件 https etcher b
  • 用Xshell连接服务器失败:Could not connect to ‘192.xx.xx.xx‘ (port 22): Connection failed.

    问题描述 本来一直都连接正常 突然有一天连不上了 脸直接吓白了 本来就好多bug 现在直接服务器都连不上了 成年人的崩溃就在一瞬间 doge 解决方法 提示 仅适用于之前连接正常 突然连不上的情况 如果是这种情况的尽量不要按照网上的教程乱改
  • bat日期时间字符串的格式化处理

    bat日期时间字符串的格式化处理 一 时间 日期 二 字符串处理 一 时间 日期 Windows在批处理中显示的时间和日期格式如下 echo date 2023 05 25 周四 echo time 12 44 27 45 二 字符串处理
  • 【算法】 丑数 2,3,5。求第n个丑数

    因子中仅仅包含2 3 5的数 称为丑数 比如说14 就不是丑数 因为因子包含7 请输出所有丑数中的第n个丑数 include
  • ADNI数据集-数据分析11.17

    1 RID 是 Relative IDentifier 的英文缩写 相对标识符的意思 https www aoetc com 172960 html 2 ADNI1和ADNI2是医学研究上经常使用的数据集 ADNI数据集介绍 仅用于个人纪录
  • 应用在k8s上运行的几种网络模式

    k8s deployment service默认配置 应用部署在k8s上 首先想到的是应用k8s的默认service模式配置 应用通过service向集群内部 ClusterIP 和集群外部 NodePort 暴露服务 k8s中的其他应用通
  • linux系统一些网络配置文件

    etc hosts文件 etc hosts文件的作用是主机名映射到相应的主机IP地址 可以使用任意文本编辑器编辑 etc hosts 文件 如果系统中不存在 etc hosts 文件 请将 usr newconfig etc hosts 复
  • Elasticsearch 8.0 installation

    after creating an enrollment token on your existing cluster You can complete the following actions at any time Reset the
  • js&ts 常用工具函数

    JavaScript TypeScript 常用工具函数 Utils RGB转换 export const rgbToHex r number g number b number gt string r g b gt 1 lt lt 24
  • Windows Server服务器安全加固基线配置

    一 账户管理 认证授权 一 账户 1 管理缺省账户 安全基线项说明 对于管理员账号 要求更改缺省账户名称 禁用Guest 来宾 账户 操作步骤 进入控制面板 gt 管理工具 gt 计算机管理 在系统工具 gt 本地用户和组 缺省账户Admi
  • Spring Cloud简介,为什么需要Spring Cloud?

    一 为什么需要Spring Cloud 从分布式 微服务的角度而言 就是把我们一个大的项目分解成多个小的模块 这些小的模块组合起来 完成功能 而拆分出多个模块以后 就会出现各种各样的问题 而Spring Cloud提供了一整套的解决方案 S
  • 总结:eclipse编写struts.xml没有提示的问题

    原因 找不到约束文件 解决 联网 手工配 手工配置struts2的dtd约束文件 步骤说明 1 选择 Window gt preferences gt XML gt 点击Add 按钮 2 Location值 通过File System 选择
  • python 财务系统开源系统_10 大顶级开源 ERP 系统

    2014十大顶级开源ERP系统点评 原文网址链接 http www ctocio com hotnews 17865 html 如今 企业资源规划 ERP 和客户关系管理 CRM 系统的必要性已经被各种组织和企业所认可 ERP和CRM能够直
  • 关于“expected ';', ',' or ')' before '&' token”错误

    在GCC编译器上 出现该错误的主要原因是 在C语言里没有C 所谓的 按引用传递 例如C 可以写这样一个函数 void func int a 函数功能 在C语言无法这样使用 所以需要改为地址引用 void func int a 函数功能 具体
  • 基于Jenkins自动打包并部署Tomcat环境

    目录 1 配置git主机 2 配置jenkins主机 3 配置web主机 4 新建Maven项目 5 验证 Jenkins 自动打包部署结果 Jenkins 的工作原理是先将源代码从 SVN Git 版本控制系统中拷贝一份到本地 然后根据设