Jenkins远程部署

部署Jenkins服务器

  • 下载 Jenkins war包
  • 启动 Tomcat
  • 在Jenkins上新建一个工程

image.png

这个过程不做过多介绍

安装插件

image.png

image.png

安装之后,可能会需要重启Jenkins

配置 SSH Server

image.png

image.png Hostname 是 服务器Ip地址

服务器之间如果已经配置了通过ssh无密码访问,有关于这一步的配置就结束了。如果没有配置,可以通过密码的方式进行访问,需要配置 密码 和 端口。点击高级:

image.png

配置工程

选择你的工程,点击配置

image.png

配置General

image.png 配置源码地址

image.png

构建触发器和构建环境没有做什么配置

image.png 构建配置

image.png

在构建后操作中选择: Send file or ececute commands over SSH

image.png

image.png

一个常用的脚本。大概流程就是:kill之前的tomcat进程 -->删除之前的应用 -->copy新的war包到webapp目录-->重新启动tomcat

#!/bin/bash
export BUILD_ID=dontKillMe
export JAVA_HOME=/usr/src/java8/jdk1.8.0_121
TOMCAT_HOME="/data/tomcat-st/tomcat-st-8002"
tomcat_port=8012
tomcat_pid=`/usr/sbin/lsof -n -P -t -i :$tomcat_port`
[ -n "$tomcat_pid" ] && kill -9 $tomcat_pid

rm -rf "$TOMCAT_HOME"/webapps/core.war  "$TOMCAT_HOME"/webapps/core

mv "$TOMCAT_HOME"/core.war  "$TOMCAT_HOME"/webapps/core.war

cd "$TOMCAT_HOME"/bin/
./startup.sh

echo 'sleep 5s'
sleep 5s
new_tomcat_pid=`/usr/sbin/lsof -n -P -t -i :$tomcat_port`
echo "new_tomcat_pid $new_tomcat_pid"
if test "$new_tomcat_pid"
then
     echo "tomcat restart success, pid is : $new_tomcat_pid"
     exit
else
     echo 'failed to restart'
     exit 1
fi

如果需要再远程发布的另外一个服务器,再添加一个SSH Server 即可。

测试

点击构建,观察控制台日志

image.png

image.png

image.png

这就是 jenkins的构建日志,如果不出意外,可以看到以下日志

image.png

这说明构建成功了,同时观察远程的服务器上tomcat的日志,发现在启动,说明远程发布成功。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SpringBoot

spingboot 打包jar

https://cloud.tencent.com/developer/support-plan?invite_code=jykf9t9jq2zu

1022
来自专栏Java开发

SpringMVC接收数组

后台写@RequestParam("img_array[]") String[] img_array

1014
来自专栏java沉淀

swagger使用tags替换过期decription的坑

3642
来自专栏测试开发架构之路

Spring Boot 入门实践

1835
来自专栏我的小碗汤

这个404你能解决吗?

去看webapps里工程目录下,index.html文件是有的,见鬼了,是哪儿出了问题?

1513
来自专栏程序猿DD

Spring Cloud构建微服务架构:分布式配置中心【Dalston版】

前言 Spring Cloud Config是Spring Cloud团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,...

2168
来自专栏我的博客

php在windows平台执行shell解压文件

今天看到这个php可以执行shell解压文件,顺便整理出来看看吧 先帖代码吧 <form action="" method="post" enctype="mu...

3164
来自专栏nice_每一天

Java-JMS Bug记录

1.Junit测试时,使用for循环发送JMS(ReportQuestionSender)的时候,监听器(ReportQuestionListener)只接受到...

1053
来自专栏桥路_大数据

React Natived打包报错java.io.IOException: Could not delete path '...\android\support\v7'解决

4309
来自专栏Crossin的编程教室

【编程课堂】同一台电脑,不同的 Python

virtulenv 是一个创建独立 python 运行环境的工具。 在标准的 python 环境中,所有的库都是唯一存在的,不会有两个或以上版本的相同库。 但在...

32511

扫码关注云+社区

领取腾讯云代金券