使用jenkins的SSH Publishers远程执行

摘要:
https://www.cnblogs.com/zoujiaojiao/p/12574016.html使用jenkins的SSHP发布器远程执行和配置SSHServer,如图所示。系统管理-˃系统设置-˃SSHServers单击向下滚动到:远程脚本函数指示需要执行此远程脚本:a.将WORKESPACE下的包传输到远程服务器b.备份包c.更新包d.终止旧进程e。启动流程特定操作:添加

https://www.cnblogs.com/zoujiaojiao/p/12574016.html

使用jenkins的SSH Publishers远程执行

配置 SSH Servers

如图,系统管理->系统设置->SSH Servers
使用jenkins的SSH Publishers远程执行第1张 点击 使用jenkins的SSH Publishers远程执行第2张
往下翻到:
使用jenkins的SSH Publishers远程执行第3张
使用jenkins的SSH Publishers远程执行第4张
使用jenkins的SSH Publishers远程执行第5张

远程脚本功能说明

本次远程脚本需要实现:
a.将WORKERSPACE下面的包传到远程服务器上
b.备份包
c.更新包
d.kill掉旧得进程
e.启动进程

具体操作:

  1. 添加git仓库登录的账户
    使用jenkins的SSH Publishers远程执行第6张
    使用jenkins的SSH Publishers远程执行第7张
    使用jenkins的SSH Publishers远程执行第8张
    使用jenkins的SSH Publishers远程执行第9张

  2. 配置git仓库地址:
    创建一个自由风格的项目,给项目配置:
    使用jenkins的SSH Publishers远程执行第10张

  3. 配置构建命令:
    使用jenkins的SSH Publishers远程执行第11张

  4. 配置远程机器:
    使用jenkins的SSH Publishers远程执行第12张
    在Exec command中配置需要在远程机器上执行的脚本
    这里脚本最好是在linux机器上编写好再复制过来。直接在jenkins界面上编写容易出现中文字符的空格导致执行失败且不会有报错提示

#/bin/sh

#jar包名称
JAR_NAME=voneDAO-file-service.jar
#内存参数大小
JVM_OPS="-Xmx256m -Xms256m"
#发布的环境
#ENV="--spring.profiles.active=test"
ENV='--spring.profiles.active=test --spring.cloud.consul.host=10.10.3.88'
#日志路径
LOG_HOME='/data/vonedao/log'
##项目日志名称
LOG_NAME='file'
#新包存放路径
UPDATE_JAR='/data/vonedao/jar'
#项目路径
JAR_HOME='/data/vonedao'
#包备份路径
BAK_HOME='/data/vonedao/bak'



#下面参数顺序不需要变动
sh -x /data/vonedao/jar.sh ${JAR_NAME},${ENV},${LOG_HOME},${UPDATE_JAR},${JAR_HOME},${BAK_HOME},${LOG_NAME},${JVM_OPS},${BUILD_ID}

编写在服务器10.10.3.88上的/data/vonedao/jar.sh:

#/bin/sh

string="$*"
JAR_NAME=`echo $string | awk -F ',' '{print $1}'`
ENV=`echo $string | awk -F ',' '{print $2}'`
LOG_HOME=`echo $string | awk -F ',' '{print $3}'`
UPDATE_JAR=`echo $string | awk -F ',' '{print $4}'`
JAR_HOME=`echo $string | awk -F ',' '{print $5}'`
BAK_HOME=`echo $string | awk -F ',' '{print $6}'`
NAME=`echo $string | awk -F ',' '{print $7}'`
JVM_OPS=`echo $string | awk -F ',' '{print $8}'`
BUILD_ID=`echo $string | awk -F ',' '{print $9}'`


PID=`pgrep -f "java*.*${JAR_NAME}"`

if [ -f "${JAR_HOME}/${JAR_NAME}" ];then
cp ${JAR_HOME}/${JAR_NAME} ${BAK_HOME}/${JAR_NAME}_${BUILD_ID}
fi

cp ${UPDATE_JAR}/${JAR_NAME}  ${JAR_HOME}  -rf

if [ -n "$PID" ]; then
    kill -9 ${PID}
fi

cd ${JAR_HOME}/
nohup /data/jdk/bin/java -jar ${JVM_OPS} ./${JAR_NAME} ${ENV} >${LOG_HOME}/${NAME}.log 2>&1 &

保存后,构建:
使用jenkins的SSH Publishers远程执行第13张
使用jenkins的SSH Publishers远程执行第14张
去服务器10.10.3.88上查看:
使用jenkins的SSH Publishers远程执行第15张

 
标签: Jenkins

免责声明:文章转载自《使用jenkins的SSH Publishers远程执行》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇django -过滤器的使用postgres 行列转换下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#操作word模板

    string newDocFileName = Guid.NewGuid().ToString().Replace("-", "");        string strServerPath = Server.MapPath("") + "\\Model.doc";  //模板路径        string strSavePath = Serve...

Ubuntu 搭建简单的git server

简介 Git 可以使用四种主要的协议来传输资料: 本地协议(Local):   最基本的就是 本地协议(Local protocol), 其中的远程版本库就是硬盘内的另一个目录。 这常见于团队每一个成员都对一个共享的文件系统(例如一个挂载的 NFS)拥有访问权,或者比较少见的多人共用同一台电脑的情况。 后者并不理想,因为你的所有代码版本库如果长存于同一...

pytest文档40-pytest.ini配置用例查找规则(面试题)

前言 面试题:pytest如何执行不是test开头的用例?如执行 xxx_*.py这种文件的用例。 pytest.ini 配置文件可以修改用例的匹配规则。 pytest命令行参数 cmd打开输入pytest -h 查看命令行参数找到 [pytest] ini-options python_files (args) 匹配 python 用例文件, 如tes...

java 接收 char字符型

import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner;public class GetChar {public static void main(String[] args)throws Exception {//通过扫描类输入Scan...

java zip打包与乱码的解决

应用场景:主要使用在对系统文件进行归档,如果中则需要对公文中的附件或正文进行打包归档 示例代码:解决乱码的问题主要是引用apache的包ant.jar。然后注意下面红色代码部分,java自带的包中也有这两个类。如果乱码最好是采用apache的这两个类。这样才会有设置编码的zos.setEncoding("gbk")这个方法。这样就可解决java zip 打...

使用Xshell连接Ubuntu

  Xshell是一个安全终端模拟软件,可以进行远程登录。我使用XShell的主要目的是在Windows环境下登录Linux终端进行编码,非常方便。本文简单介绍下它的使用方法。 1.下载后在安装时选择个人/学校免费版即可。 2.安装完毕后先在要连接的Ubuntu主机下开启SSH服务,如果没有开启需要安装openssh-server: sudo apt-g...