java部署节点,Jenkins部署jar文件到节点服务器

Jenkins做持续集成非常好用,应用越来越多,单机资源不够使用,是时候研究下分布式使用了。

目的

提交代码到git,让jenkins自动拉取代码,打包成jar,然后分发到另一台机器,并允许jar。

假设主节点为A 从节点为B,A上部署了jenkins

前提

机器都安装jdk

centos安装open-jdk8

yum install -y java-1.8.0-openjdk-devel

机器安装Jenkins

不懂持续集成和jenkins的,看我以前的文章详解https://www.jianshu.com/p/0a2d08e0f6da

slave节点为linux平台

1. 节点配置

系统管理--》管理节点--》新建节点

启动方法: Linux 选择 Launch slave agents via SSH

Host Key Verification Strategy: Non verifying Verification Strategy(对应Credentials为用户名/密码方式)

9691614a8aad

image

master节点的配置可以在节点管理中或者在系统管理--》系统设置

用法:

尽可能的使用这个节点,默认的,表示job会随机的使用可以使用的节点

只允许运行绑定到这台机器的Job,表示job会到指定机器运行

配置验证方式

A机器执行 ssh-keygen 然后一直回车

执行 ssh-copy-id 用户名@ip地址

ssh-copy-id root@123.4.4.22

使得A机器可以访问B机器

然后把A机器的私钥添加到 验证管理

高级配置

比如修改java path路径

9691614a8aad

image.png

9691614a8aad

image.png

9691614a8aad

image.png

2. 节点运行结果

大致步骤: 通过节点配置的credentials连接到slave服务器---》输出当前用户的环境变量---》检查节点服务器java版本---》开启sftp传输slave.jar到节点服务器的工作目录--》java -jar启动节点服务器上的slave进程

9691614a8aad

image

当标签和服务器名称一样时这里不会显示标签

9691614a8aad

image

3. job配置

General中勾选:Restrict where this project can be run

输入节点的名称或标签(jenkins所在机子默认节点名称master),从而关联job到节点服务器。注意:下拉框选中节点名称或标签时末尾会有空格需要手动去掉该空格。

9691614a8aad

image

4. job运行结果

节点服务器的job工作目录:节点配置的远程工作目录/workspace/

9691614a8aad

image

slave节点为windows平台

1. 节点配置

Launch method: windows 选择 Launch slave agent via java Web Start

2. 运行节点

方式一 Launch agent from browser: 点击Launch图标下载slave-agent.jnlp---》拷贝slave-agent.jnlp到配置的远程工作目录---》双击运行文件(会检测你本地的java版本是否合适);或者直接输入:javaws D:\jenkins-workspace\slave-agent.jnlp。

方式二 Run from agent command line

9691614a8aad

image

JNLP(Java Network Launching Protocol,java网络加载协议 )是java提供的一种可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url连接打开一个java应用程序。

javaws命令运行.jnlp文件,javaws -viewer在java控制面板中显示高速缓存查看器,可看到客户端已经安装的webstart应用程序

我的配置

9691614a8aad

image.png

9691614a8aad

image.png

启动shell

BUILD_ID=DONTKILLME

echo "当前路径:"

pwd

# 定义变量

appName="zhiyuan-1.0.0.jar"

jenkinsDir="/home/jenkins/workspace/zhiyuan/target/$appName"

runDir="/home/zhiyuan"

appDir="/home/zhiyuan/$appName"

mkdri runDir

echo "停止应用"

PID=$(ps -ef | grep $appName | grep -v grep | awk '{ print $2 }')

if [ -z "$PID" ]

then

echo "应用已经是停止状态"

else

echo kill $PID

kill $PID

fi

echo "移动应用目录"

rm -rf $appDir

cp $jenkinsDir $runDir

echo "启动应用"

cd $runDir

nohup java -jar $appDir > log.log &

echo "启动成功"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值