Jenkins 执行远程脚本的插件—SSH2 Easy

SSH2 Easy 是什么?

SSH2 Easy 是一个 Jenkins 插件,它用于在 Jenkins 构建过程中通过 SSH2 协议与远程服务器进行交互。通过该插件,用户可以在 Jenkins 的构建过程中执行远程命令、上传或下载文件、管理远程服务器等操作。

以下是 SSH2 Easy 插件的主要功能和特点:

  1. SSH2 支持:该插件使用 SSH2 协议与远程服务器进行通信,确保数据的安全性和稳定性。

  2. 远程命令执行:用户可以在 Jenkins 的构建过程中执行远程服务器上的命令,比如启动服务、停止服务、部署应用等。

  3. 文件传输:插件支持上传和下载文件,用户可以方便地将构建产物或配置文件传输到远程服务器上,或从远程服务器下载文件到 Jenkins 服务器。

  4. 远程服务器管理:用户可以通过插件方便地管理远程服务器,比如添加、删除、编辑服务器信息,并可以为每个服务器配置用户名、密码、端口号等信息。

  5. 命令执行结果输出:插件支持将远程命令执行的结果输出到 Jenkins 的控制台,方便用户查看命令执行的情况和结果。

  6. 多种认证方式:插件支持多种认证方式,包括使用用户名和密码、使用私钥文件等。

  7. 可扩展性:SSH2 Easy 插件支持扩展,用户可以编写自定义的脚本或命令,以满足特定的需求。

总之,SSH2 Easy 插件为 Jenkins 提供了与远程服务器进行交互的强大功能,使得用户可以更方便地在构建过程中管理和操作远程服务器。

SSH2 Easy 的状态

SSH2 Easy是由社区成员而不是 Jenkins 核心团队开发的,其在 Jenkins 插件库(https://plugins.jenkins.io/)中可以查找的插件。由于它出现在 Jenkins 插件索引中,可以认为它是官方认可的插件。
截至2023/10 ,SSH2 Easy的状态如下:

  • 最新版本: 1.6
  • 最近更新: 2023/07
  • Jenkins版本不小于 2.387.3

该插件目前的状态是寻找维护者,在Jenkins插件页面上看到"This plugin is up for adoption!"的声明意味着该插件的当前维护者正在寻找新的贡献者或维护者来接管插件的未来开发和维护工作。这通常发生在原始维护者没有足够的时间或资源来继续支持插件,或者他们不再使用该插件。
在这里插入图片描述

所以综合起来:SSH2 Easy可以使用,但是长期来看,还是建议使用后续有维护的插件

SSH2 Easy 的安装与使用

SSH2 Easy 使用的主要步骤是:

  1. 安装插件:首先,你需要在 Jenkins 中安装ssh2easy插件。这可以通过 Jenkins 的管理界面中的“插件管理”部分完成。

  2. 配置插件:安装插件后,你需要在 Jenkins 的系统配置中添加 SSH 服务器的详细信息。这通常包括主机名、端口、用户名、密码/私钥等。

  3. 在Job中使用插件:在配置好 SSH 服务器信息后,你可以在 Pipeline 脚本或传统的自由风格作业中使用ssh2easy插件来执行远程命令。

1. 安装SSH2 Easy

这里使用在线安装的方式, 具体步骤如下:

  1. 进入Jenkins 页面

  2. 点击左侧的Mange Jenkins ,进入管理页面:
    在这里插入图片描述

  3. 点击 “Plugins”, 进入插件管理页面

  4. 点击左侧的"Available plugins" 后, 在搜素框输入ssh2 easy 可以搜索到SSH2 Easy 的1.6 版本,并提示该插件在寻求维护者状态, 如下图:
    在这里插入图片描述

  5. 选中之后,点击“安装”

  6. 稍等片刻,出现如下页面代表安装成功
    在这里插入图片描述

2. 配置远程主机

安装完成之后:

  1. 点击左侧导航的 Manage Jenkins

  2. 选择System Configuration 下的System

  3. 往下拉到Server Groups Center

  4. 在Server Group List 中输入Group 名字, 端口,连接的用户名/密码,点击Apply
    在这里插入图片描述

  5. 在Server List 中输入上一步的组名, 输入服务器的机器名或IP ,点击Apply

一个Server Group 设定一组连接账号和密码, 一个Group可以包含多个Server 主机,。

3. Job中配置远程执行

配置完成之后, 在建立Job的时候, Build Steps区块中,点击“Add build step” 按钮时,就会多出以下四个选项:

  • 远程 FTP上传
  • 远程 FTP下载
  • 远程执行命令
  • 远程执行脚本
    在这里插入图片描述

以选择 “远程执行脚本”为例,
就会选择 Target Server, 在shell 区块就可以输入执行脚本的命令。
在这里插入图片描述

4. Pipeline 脚本脚本中使用SSH2 Easy

除了在Job中配置远程执行脚本外, 也可以在 Pipeline 脚本示例使用SSH2 Easy执行远程脚本, 示例如下:


pipeline {agent anystages {stage('Remote SSH Command') {steps {ssh2easy(sshServer: 'my-ssh-server', // 在系统配置中定义的 SSH 服务器别名remote: [[remoteCommand: 'echo Hello, World!']])}}}
}

在这个示例中,my-ssh-server是你在 Jenkins 系统配置中设置的 SSH 服务器的别名,remoteCommand是你想要在远程服务器上执行的命令。

SSH2 Easy 的优缺点

SSH2 Easy 插件的优缺点如下:

优点:

  1. 简单易用:该插件提供了一个简单的界面,使得设置和执行远程SSH命令变得非常容易。
  2. 高度定制:插件允许用户自定义远程命令、主机以及其他参数,从而根据自己的需求进行定制化配置。
  3. 可靠性:插件的开发者经过精心测试和稳定性验证,确保插件在执行远程命令时可靠并且不会引发故障。
  4. 可扩展性:该插件允许用户编写自定义的SSH脚本,从而更进一步满足特定的需求。

缺点:

  1. 依赖性:该插件需要依赖Jenkins服务器与远程主机之间建立SSH连接,因此需要确保Jenkins服务器可以与远程主机进行通信。
  2. 安全性:使用SSH连接需要配置安全凭据,并确保凭据的安全保存。如果配置不当,可能会导致安全漏洞。

总体来说,Jenkins SSH2 Easy 插件是一个方便易用的插件,它使得在Jenkins上执行远程SSH命令变得非常容易。然而,在使用过程中需要注意安全性和依赖性的问题

可以替代SSH2 Easy的Jenkins插件

Jenkins有一些与SSH2 Easy类似的插件,用于在Jenkins中执行远程SSH操作。以下是其中一些插件的介绍:

  1. SSH Agent Plugin:该插件允许Jenkins使用SSH代理进行身份验证,并在构建过程中提供SSH密钥。它可以用于执行远程SSH命令、传输文件等操作。

  2. Publish Over SSH Plugin:该插件允许通过SSH协议将构建产物或其他文件传输到远程服务器。它还可以在远程机器上执行Shell脚本或命令。

  3. SSH Slaves Plugin:该插件允许Jenkins使用SSH协议在远程机器上启动和管理构建代理。它可以用于在远程机器上执行构建任务,并将结果返回到Jenkins服务器。

  4. SSH Build Agents Plugin:该插件允许Jenkins在远程机器上使用SSH协议启动和管理构建代理。它类似于SSH Slaves Plugin,但有一些额外的配置和管理选项。

  5. SSH Credentials Plugin:该插件允许Jenkins在SSH连接配置中使用凭据。它可以存储和管理SSH凭据,以供其他插件使用,如SSH Agent Plugin和Publish Over SSH Plugin。

这些插件可以帮助在Jenkins中执行远程SSH操作,并扩展Jenkins的功能。具体选择哪个插件取决于你的需求和使用场景。

参考

  • https://plugins.jenkins.io/ssh2easy/


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/235539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3使用mock模拟后端接口

安装mock axios yarn add mock yarn add axios 新建在src/mockdata/automenu.js 模拟后端的json数据格式 import Mock from mockjs Mock.mock(/menu,get,{status: 200,menuList: [{id : 1,iconCls: "fa fa-window",name: 系统管理,url: /},{id: 2,icon: icon-j…

YOLOv8改进 | 主干篇 | 利用MobileNetV1替换Backbone(轻量化网络结构)

一、本文介绍 本文给大家带来的改进机制是MobileNetV1,其是专为移动和嵌入式视觉应用设计的轻量化网络结构。这些模型基于简化的架构,并利用深度可分离卷积构建轻量级深度神经网络,其引入了两个简单的全局超参数,用于在延迟和准确…

【C语言】指针详解(一)

目录 1.内存和地址 1.1内存 1.2如何理解编址 2.指针变量和地址 2.1取地址操作符(&) 2.2指针变量和解引用操作符(*) 2.2.1指针变量 2.2.2拆解指针类型 2.2.3解引用操作符 2.3指针变量大小 1.内存和地址 1.1内存 在讲内…

《数据分析-JiMuReport》积木报表详细入门教程

积木报表详细入门教程 一、JimuReport部署入门介绍 积木报表可以通过源码部署、SpringBoot集成、Docker部署以及各种成熟框架部署,具体可查看积木官方文档 当前采用源码部署,首先下载Jimureport-example-1.5.6 1 jimureport-example目录查看 使用ID…

自动气象监测站助力生活生产

随着科技的发展,我们的生活和生产方式正在发生着日新月异的变化。其中,WX-CQ12 自动气象监测站作为一项气象监测设备,正在发挥着越来越重要的作用。它不仅为我们提供了更加准确、实时的天气信息,还为农业、交通、旅游等领域提供了…

Python实现链接AWS S3,并将数据上传到AWS S3

前言 本文是该专栏的第40篇,后面会持续分享python的各种干货知识,值得关注。 使用python在处理某些项目的时候,偶尔会遇到需要将“本地数据源”或“数据库数据”上传到AWS S3的需求。AWS S3(Simple Storage Service)是一个公开的服务,Web应用程序开发人员一般可以使用它…

python flask+vue实现前后端图片上传

python flaskvue实现前后端图片上传 vue代码如下&#xff1a; <template><div><input type"file" change"handleFileChange"/><button click"uploadFile">上传</button><br><img :src"imageUrl&…

uniapp如何原生app-云打包

首先第一步&#xff0c;需要大家在HBuilder X中找到一个项目&#xff0c;然后呢在找到上面的发行选项 发行->原生App-云打包 选择完该选中的直接大包就ok。 大包完毕后呢&#xff0c;会出现一个apk包&#xff0c;这是后将这个包拖动发给随便一个人就行了。 然后接收到的那…

2-高可用-负载均衡、反向代理

负载均衡、反向代理 upstream server即上游服务器&#xff0c;指Nginx负载均衡到的处理业务的服务器&#xff0c;也可以称之为real server,即真实处理业务的服务器。 对于负载均衡我们要关心的几个方面如下&#xff1a; 上游服务器配置&#xff1a;使用upstream server配置上…

摄像头画面作为电脑桌面背景

1. 创建文件main.pyw&#xff0c;文件内容 import base64 import io import os import threading import tkinter as tkimport cv2 import pystray import win32api import win32con import win32gui from PIL import Image, ImageTk from pystray import MenuItem, Menuclass…

Linux之yum管理器

目录 yum管理器 yum相关指令 yum list yum list | grep yum install yum remove 拓展 1.yum install -y man-pages 2.切换yum源 3.yum install -y epel-release 4. yum install -y lrzsz rz指令 sz指令 在window系统上&#xff0c;我们会在电脑自带的应用商…

分布式编译distcc

工程代码编译速度太慢&#xff0c;决定采用分布式编译来提高编译速度. distcc &#xff0c;请参考https://www.distcc.org/ 安装 我用的distcc的版本是distcc-3.2rc1, 下载源码&#xff0c;安装步骤如下&#xff1a; ./autogen.sh ./configure --disable-Werror --prefix/…

<软考高项备考>《论文专题 - 20 资源管理(六) 》

8 过程6-控制资源 8.1 提出问题 问题过程2-活动资源估算做什么确保按计划为项目分配实物资源&#xff0c;以及根据资源使用计划监督资源实际使用情况&#xff0c;并采取必要纠正措施的过程;作用&#xff1a;①确保所分配的资源适时、适地可用于项目;②资源在不再需要时被释放…

mac电脑安装虚拟机教程

1、准备一台虚拟机&#xff0c;安装CentOS7 常用的虚拟化软件有两种&#xff1a; VirtualBoxVMware 这里我们使用VirtualBox来安装虚拟机&#xff0c;下载地址&#xff1a;Downloads – Oracle VM VirtualBox 001 点击安装 002 报错&#xff1a;he installer has detected an…

Java和Python中的目标堆栈规划实现

目标堆栈规划是一种简单高效的人工智能规划算法&#xff0c;用于解决复合目标问题。它的工作原理是**将总体目标分解为更小的子目标&#xff0c;然后以向后的顺序逐一解决它们。 让我们考虑一个简单的例子来说明目标堆栈规划。想象一下你想要烤一个蛋糕&#xff0c;目标是准备…

Windows11编译VTM源码生成Visual Studio 工程

VTM介绍 VTM作为H266/VVC标准的官方参考软件&#xff0c;一直用作H266/VVC标准的研究和迭代。关于H2666/VVC标准的介绍、代码、提案、文档等&#xff0c;可以参考H266/VVC编码标准介绍。 官方代码地址&#xff1a; https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM&…

Flink系列之:JDBC SQL 连接器

Flink系列之&#xff1a;JDBC SQL 连接器 一、JDBC SQL 连接器二、依赖三、创建 JDBC 表四、连接器参数五、键处理六、分区扫描七、Lookup Cache八、幂等写入九、JDBC Catalog十、JDBC Catalog 的使用十一、JDBC Catalog for PostgreSQL十二、JDBC Catalog for MySQL十三、数据…

【GoLang】哪些大公司正在使用Go语言

你见过哪些令你膛目结舌的代码技巧&#xff1f; 文章目录 你见过哪些令你膛目结舌的代码技巧&#xff1f;前言&#xff1a;哪些大公司正在使用Go语言谷歌&#xff08;Google&#xff09;&#xff1a;脸书&#xff08;Facebook&#xff09;&#xff1a;亚马逊&#xff08;Amazon…

字符串函数内存函数(从零到一)【C语言】

长度不受限制的字符串函数&#xff1a;strcpy,strcat,strcmp 长度受限制的字符串函数&#xff1a;strncpy,strncat,strncmp strlen strlen函数是库函数中我们最常使用的函数&#xff0c;它可以求出字符串的长度(不包含‘\0’) 使用方法 通过前面对strlen函数的模拟实现我们知…

2019QWB growpjs

第一次知道原来各种map也是申请的一段连续的内存空间来存储&#xff0c;所以必要的时候可以通过固定偏移来从一种map获取到另一种map。但是要注意这里的获取的时候要保证对象不被释放。 这也是做的第一道涉及优化器的题目&#xff0c;收货很多 class Memory{constructor(){th…