jenkins:用jenkins通过ssh部署jar包到远程linux机器(jdk 15 / jenkins 2.257)
一,远程linux机器上安装java15(如已安装,跳过此步)
说明:演示用的linux机器ip: 192.168.1.47
1,下载:
[root@blog ~]# cd /usr/local/source
[root@blog source]# mkdir jdk
[root@blog source]# cd jdk
[root@blog jdk]# wget https://download.oracle.com/otn-pub/java/jdk/15+36/779bf45e88a44cbd9ea6621d33e33db1/jdk-15_linux-x64_bin.tar.gz?AuthParam=1600661691_2c068f0678a8396b65cf132c02446e2a
--2020-09-21 12:13:38-- https://download.oracle.com/otn-pub/java/jdk/15+36/779bf45e88a44cbd9ea6621d33e33db1/jdk-15_linux-x64_bin.tar.gz?AuthParam=1600661691_2c068f0678a8396b65cf132c02446e2a
Resolving download.oracle.com (download.oracle.com)... 23.211.96.11
Connecting to download.oracle.com (download.oracle.com)|23.211.96.11|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 188017890 (179M) [application/x-gzip]
Saving to: ‘jdk-15_linux-x64_bin.tar.gz?AuthParam=1600661691_2c068f0678a8396b65cf132c02446e2a’ jdk-15_linux-x64_bin.tar.gz?AuthParam=16006 100%[==========================================================================================>] 179.31M 12.0MB/s in 14s 2020-09-21 12:13:52 (12.7 MB/s) - ‘jdk-15_linux-x64_bin.tar.gz?AuthParam=1600661691_2c068f0678a8396b65cf132c02446e2a’ saved [188017890/188017890]
[root@blog jdk]# ls
'jdk-15_linux-x64_bin.tar.gz?AuthParam=1600661691_2c068f0678a8396b65cf132c02446e2a'
[root@blog jdk]# mv jdk-15_linux-x64_bin.tar.gz\?AuthParam\=1600661691_2c068f0678a8396b65cf132c02446e2a jdk-15_linux-x64_bin.tar.gz
2,解压
[root@blog jdk]# tar -zxvf jdk-15_linux-x64_bin.tar.gz
3,移动到安装目录
[root@blog jdk]# mv jdk-15 /usr/local/soft/
4,配置环境变量:
编辑profile文件,把命令保存到文件中
[root@blog jdk]# vi /etc/profile
export JAVA_HOME=/usr/local/soft/jdk-15
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
使生效:
[root@blog jdk]# source /etc/profile
5,检查安装效果:
[root@blog jdk]# java --version
java 15 2020-09-15
Java(TM) SE Runtime Environment (build 15+36-1562)
Java HotSpot(TM) 64-Bit Server VM (build 15+36-1562, mixed mode, sharing)
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,远程服务器(192.168.1.47)端配置启动jar的脚本:
[root@blog java]# mkdir /data/java/tools
[root@blog java]# cd tools
[root@blog tools]# vi startadmin.sh
[root@blog tools]# chmod +x startadmin.sh
[root@blog tools]# more startadmin.sh
#!/bin/bash
export BUILD_ID=dontKillme WORKSPACE=/data/java/jar
JDK_PATH=/usr/local/soft/jdk-15/bin/java
JAR_NAME=demo-0.0.1-SNAPSHOT.jar PID=`ps -ef | grep ${JAR_NAME} | grep -v grep | grep -v startup | awk '{print \$2}'`
echo $PID;
if [ ! "$PID" ] ;then
echo "进程不存在"
else
echo "进程存在,杀死进程PID$PID"
kill -9 $PID
fi echo "服务启动开始"
nohup ${JDK_PATH} -jar ${WORKSPACE}/${JAR_NAME} &
[root@blog tools]# /data/java/tools/startadmin.sh
进程不存在
服务启动开始
[root@blog tools]# nohup: appending output to ‘nohup.out'
[root@blog tools]# ss -lntp | grep 8080
LISTEN 0 100 0.0.0.0:8080 0.0.0.0:* users:(("java",pid=11559,fd=11))
http://192.168.1.47:8080/home/home
this is home/home page
三,远程服务器(192.168.1.47)配置sudo
[root@blog ~]# visudo
webop ALL=(ALL) NOPASSWD:/data/java/tools/startadmin.sh
[webop@blog ~]$ ps auxfww | grep jar | grep -v grep
root 11559 0.4 1.2 7728268 193372 pts/3 Sl 14:47 0:07 /usr/local/soft/jdk-15/bin/java -jar /data/java/jar/demo-0.0.1-SNAPSHOT.jar
[webop@blog ~]$ sudo /data/java/tools/startadmin.sh
[webop@blog ~]$ ps auxfww | grep jar | grep -v grep
root 12314 73.4 1.0 7726220 170800 pts/4 Sl 15:15 0:05 /usr/local/soft/jdk-15/bin/java -jar /data/java/jar/demo-0.0.1-SNAPSHOT.jar
四,在jenkins服务器上进行配置免密登录
[root@localhost ~]# ssh-keygen -m PEM -t rsa -b 4096
[root@localhost ~]# ssh-copy-id -p 10108 -i .ssh/id_rsa.pub webop@192.168.1.47
[root@localhost ~]# ssh -p '10108' webop@192.168.1.47
Welcome to Alibaba Cloud Elastic Compute Service !
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Mon Sep 21 15:40:06 2020 from 123.124.125.107
[webop@blog ~]$
无需输入密码即可登录,说明用密钥实现免密登录已生效
五,jenkins上安装Publish Over SSH插件
六,jenkins上配置ssh服务器
添加一台服务器:
六,在jenkins的项目中上配置通过ssh发布jar包到远程服务器:
1, 新建item->项目名称: profilemaven,选择:构建一个maven项目
然后点确定
2,对项目做配置:
在github项目中,输入项目url
七,测试效果
构建完成后查看控制台输出:
channel stopped
SSH: Connecting from host [localhost.localdomain]
SSH: Connecting with configuration [47] ...
SSH: EXEC: STDOUT/STDERR from command [sudo /data/java/tools/startadmin.sh] ...
进程存在,杀死进程PID12314
服务启动开始 . ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.3.4.RELEASE) 2020-09-21 16:59:27.806 INFO 12662 --- [ main] com.profile.demo.DemoApplication :
然后从服务端可以正常访问
八,查看Jenkins版本
在登录后首页的右下角,可以看到当前的版本:2.257
jenkins:用jenkins通过ssh部署jar包到远程linux机器(jdk 15 / jenkins 2.257)的更多相关文章
- Maven deploy部署jar包到远程私仓
Maven deploy部署jar包到远程私仓 maven deploy介绍 maven中的仓库分为两种,snapshot快照仓库和release发布仓库.snapshot快照仓库用于保存开发过程中的 ...
- 部署Jar包到远程Maven仓库
在使用maven开发工程时,模块A可能会依赖模块B的jar包,如果两个模块都是在一个工程里,只需要在模块A的pom文件中加入模块B的依赖信息,模块A就可以加载模块B的jar包.但如果模块A与模块B在不 ...
- Docker使用jenkins部署java项目到远程linux(三)
实现功能:从本地提交代码到gogs上,本地的代码会被检测一遍 如果检测通过才能commit成功 然后可以继续执行push命令 .push后在gogs上使用web钩子自动推送到jenkins触发构建,j ...
- centos7后台服务部署jar包
centos7 服务部署jar包 centos7 服务介绍 CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分, 每一个 ...
- 在 CentOS7 上将自定义的 jar 包注册为 linux 服务 service
在 CentOS7 上将自定义的 jar 包注册为 linux 服务 service 1.在 /etc/rc.d/init.d/ 目录下创建一个名字和服务名完全相同的 shell 脚本文件 joyup ...
- jenkins自动化部署jar包(2)
1.自动化部署流程: svn代码-----jenkins------linux运行 环境: 我这里为了测试:svn,和linux放在阿里云上面.jenkins放在本地windos电脑上运行的 2.下载 ...
- Linux(Centos)部署Jenkins,并配置Git生成Jar包进行发布部署
需要先安装jdk.maven.git环境 jdk安装:https://www.cnblogs.com/pxblog/p/10512886.html maven安装:https://www.cnblog ...
- 还在手动部署jar包吗?快速掌握Jenkins安装,教你使用Jenkins实现持续交付
Jenkins Jenkins: 开源软件项目 基于Java开发的一种持续集成工具 用于监控持续重复的工作 旨在提供一个开放易用的软件平台, 便于软件的持续集成 基于Docker安装Jenkins 与 ...
- Jenkins+Git+Maven构建并部署war包到tomcat
主要思路:1.jenkins从git中拉取项目源码:jenkins使用maven构建并将生成的war部署到tomcat容器下. 环境:Centos7.Maven3.5.3.git(单机) 安装Git ...
随机推荐
- 最好用的流程编辑器bpmn-js系列之基本使用
最好用的流程编辑器bpmn-js系列文章 BPMN(Business Process Modeling Notation)是由业务流程管理倡议组织BPMI(The Business Process M ...
- hexo博客添加gitalk评论系统
经过了一天的折腾,我终于为自己的博客添加上了评论系统.坦率的讲,为什么网上那么多方案我还要自己写一篇博客,那就是因为他们说的都有bug,所以我要自己总结一下. 我选用的是gitalk评论系统, ...
- Redis报错“ OOM command not allowed when used memory > 'maxmemory' ”
生产环境上遇到这个问题,控制台不停打印 "OOM command not allowed when used memory > 'maxmemory' "; 起初不知道是什么 ...
- vue 游戏手柄使用
直接上代码. <template> <div class="home"> </div> </template> <script ...
- 简单渗透测试流程演示(445端口、IPC$、灰鸽子)
目录 一.实验流程 二.实验过程 2.1 信息收集 2.2 利用过程 2.3 暴力破解系统密码之445 2.4 通过木马留后门 一.实验流程 0.授权(对方同意被渗透测试才是合法的.)1.信息收集 ...
- Centos-目录或文件拷贝-cp
cp 拷贝或者备份文件或者目录 相关选项 -a 拷贝目录保存文件所有信息 -r 递归拷贝目录 -d 保留连接 -p 保留修改时间和存取权限 -i 有同名提醒是否覆盖 相关应用 1. 备份文件 cp ...
- 中心极限定理(为什么y服从高斯分布)
因为每一条数据都服从IID原则: 根据中心极限定理,当数据增加的时候,样本均值的分布慢慢变成正态分布 不管分布式什么分布,累加起来都是高斯分布 As sum increases, sum of non ...
- 手把手教你AspNetCore WebApi:增删改查
前言 小明已经创建与运行了WebApi项目,了解项目结构有哪些组成,并学会了怎么发布到IIS.基础已经建好,从现在开始要真正实现待办事项的功能了. 新建表 CREATE TABLE [dbo].[To ...
- Java知识系统回顾整理01基础02面向对象02属性
一.根据实例给出"属性"的定义 一个英雄有姓名,血量,护甲等等状态 这些状态就叫做一个类的属性 二.属性的类型 属性的类型可以是基本类型,比如int整数,float 浮点数 也可以 ...
- Matlab中imagesc用法
来源:https://ww2.mathworks.cn/help/matlab/ref/imagesc.html?searchHighlight=imagesc&s_tid=doc_srcht ...