jenkins安装

首先安装jenkins,我们可以使用docker安装。用下面命令拉取jenkins镜像。

docker pull jenkins/jenkins

然后正常安装jenkins容器即可。

安装完成后,进入jenkins管理界面。会让我们输入初始化密码,和创建默认用户。我们按照提示操作即可。

然后,用默认用户登录,进入界面如下:

创建凭证

然后配置我们要管理的linux服务器的凭证——用户名密码。

进入后,点击全局,下图中,我已经创建了一个凭据。

进入后,点击 create credentials。

然后输入账号密码即可。

创建ssh插件

jenkins管理linux服务器是通过ssh工具连接的,所以,首先,我们要给linux服务器安装ssh。

linux安装ssh也很简单,就执行几个命令即可。

sudo apt install ssh
sudo apt install ssh
sudo service ssh start

具体可以上网搜索。

在jenkins中安装ssh插件,需要进入插件管理,搜索ssh。

找到对应的ssh插件,分辨那个是我们要用的ssh,主要看他的描述,如下图:

This plugin executes shell commands remotely using SSH protocol. 这句话说明了,他是执行命令连接用的。

安装完成后,点击系统配置,进去管理ssh。

进入页面找到SSH remote hosts,然后点击【新增】,然后输入linux主机名和端口号,然后选择我们刚刚创建的凭证。

全局工具配置

配置完SSH,我们进行全局工具配置。

主要是配置jdk,maven。

点击全局工具配置,如下图:

新增jdk

点击新增jdk,选择jdk 8,这里因为是从 java.sun.com下载,所以需要一个oracle的账户,我这里已经输入完了,所以下图未显示输入oracle的地方。

新增maven

点击新增maven,这里选择maven3.6.2。

创建jenkins任务

点击Dashboard仪表盘,回到首页,然后点击新建任务。

然后,创建一个自由风格的任务,如下图:

为了能运行我们的jar包,我们需要把发布好的jar包,上传到linux的/soft/app-kiba-spring-kafka/,然后创建一个startup.sh启动可执行文件。

然后,我们创建一个简单的任务,点击build steps,选择Excute shell script on remote host using ssh(使用ssh在远程主机执行脚本),如下图:

然后保存任务。

然后回到主页面执行构建,如下图:

点击执行。尝试运行一下。

我在执行时遇到一个错误,错误提示:ERROR: Failed to install JDK. Exit code=2。

如下图:

这是因为我在全局工具配置时,jdk安装勾选了自动安装。

回到全局工具配置,取消jdk自动安装,然后,系统会让我们输入javehome。

我们进入到容器,查找javahome。

进入容器
docker exec -it 1Panel-jenkins-4v09 /bin/bash
输出javahome
echo $JAVA_HOME

然后填写进上图中。

这个java版本我们不用关心,因为这个java版本是jenkins的所在docker容器的java版本,只要让jenkins通过这个jdk能执行命令即可,实际我们的jar运行容器或者服务器,有自己的java配置,他们互相不影响。

修改完,我们再回到之前的任务界面,运行任务。

结语

这样,我们就完成了使用jenkins连接linux部署jar包。

当然,jenkins还能实现更多功能,比如他可以使用git插件,直接下载源码,然后使用maven插件进行打包,然后再执行我的这个命令,完成发布。

当然,他还可以在上面的步骤中再加一步,构建一个docker容器,再向容器里发布jar包。

jenkin的使用非常复杂,只能靠自己慢慢摸索。


注:此文章为原创,任何形式的转载都请联系作者获得授权并注明出处!



若您觉得这篇文章还不错,请点击下方的【推荐】,非常感谢!

https://www.cnblogs.com/kiba/p/18056881

使用jenkins连接linux部署jar包的更多相关文章

  1. jenkins:用jenkins通过ssh部署jar包到远程linux机器(jdk 15 / jenkins 2.257)

    一,远程linux机器上安装java15(如已安装,跳过此步) 说明:演示用的linux机器ip: 192.168.1.47 1,下载: [root@blog ~]# cd /usr/local/so ...

  2. Linux部署jar包

    当我们把java程序打成jar包后,放到linux上通过putty或其它终端执行的时候,如果按照:java -jar xxxx.jar执行,当我们退出putty或终端的时候,xxxx.jar这个程序也 ...

  3. linux 部署jar包开机自启

    1.用xShell将jar包上传到linux上(jar包上传到 /root/java) 输入rz命令,看是否已经安装了lrzsz,如果没有安装则执行  yum   -y  install  lrzsz ...

  4. 通过Jenkins调用自动部署war包及jar包到服务器上的Shell脚本

    1)部署war包#!/bin/bashif [ id>0];then echo"stopproject" kill −9 idelse echo "project ...

  5. Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包

    Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包 >>>>>>>>>>>& ...

  6. Maven deploy部署jar包到远程私仓

    Maven deploy部署jar包到远程私仓 maven deploy介绍 maven中的仓库分为两种,snapshot快照仓库和release发布仓库.snapshot快照仓库用于保存开发过程中的 ...

  7. centos7后台服务部署jar包

    centos7 服务部署jar包 centos7 服务介绍 CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分, 每一个 ...

  8. Linux中jar包指定端口启动并记录日志

    Linux中jar包指定端口启动并记录日志: java -jar -Dserver.port=38080  group-buying-0.0.1-SNAPSHOT.jar   >log.log ...

  9. Linux 运行jar包命令(Cent OS 7后台运行jar包)

    Linux 运行jar包命令如下: 方式一 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar shareniu. ...

  10. Linux中jar包启动和jar包后台运行

    Linux 运行jar包命令如下: 方式一: java -jar shareniu.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? ...

随机推荐

  1. [LeetCode刷题记录]113 路径总和 II

    题目描述 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 难度 中等 题解 采用深度搜索优先,遍历每条从根节点到叶子节点的 ...

  2. tortoisesvn中看到的版本号和svn info不一致

    tortoisesvn中看到的版本号和svn info不一致 在svn命令行中通过svn info命令获得的版本号与tortoisesvn中show log看到的不一样,原因是在小乌龟中可以只更新具体 ...

  3. Xcode的Search Paths配置

    在Xcode中的文件搜索路径配置有两个地方,一个是Project层的配置,一个是Target的配置. Project-Build Settings-Search Paths Target-Build ...

  4. uni-app+vue3会遇到哪些问题

    已经用 uni-app+vue3+ts 开发了一段时间,记录一下日常遇见的问题和解决办法 uni-app 中的单端代码 uni-app 是支持多端,如果你想让你的代码,只在部分平台使用,那么就需要用的 ...

  5. Linux RDP 会话中无法打开VSCode 解决办法

    github issue: VS Code "and still" won't open in a Linux xrdp session Workaround- Linux RDP ...

  6. Oracle预防alert日志过大的脚本:del_alertlog.sh

    Oracle预防alert日志过大的脚本 参考:https://blog.csdn.net/jc_benben/article/details/88798523 在原文思路的基础上,做了一些修正,实测 ...

  7. 9.文件和异常--《Python编程:从入门到实践》

    9.1 从文件中读取数据   要使用文本文件中的信息,首先需要将信息读取到内存中.为此,你可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取. 9.1.1 读取整个文件 with open( ...

  8. 【译】.NET 8 网络改进(一)

    原文 | Máňa,Natalia Kondratyeva 翻译 | 郑子铭 随着新的 .NET 版本的发布,发布有关网络空间中新的有趣变化的博客文章已成为一种传统.今年,我们希望引入 HTTP 空间 ...

  9. 【LGR-154-Div.4】洛谷入门赛 #15

    [LGR-154-Div.4]洛谷入门赛 #15 \(A\) luoguB3813 [语言月赛 202308]四个人的排名加起来没有小粉兔高 AC 水题. #include<bits/stdc+ ...

  10. React中的纯组件

    React中的纯组件 React提供了一种基于浅比较模式来确定是否应该重新渲染组件的类React.PureComponent,通常只需要继承React.PureComponent就可以定义一个纯组件. ...