SSH2 Easy 是什么?
SSH2 Easy 是一个 Jenkins 插件,它用于在 Jenkins 构建过程中通过 SSH2 协议与远程服务器进行交互。通过该插件,用户可以在 Jenkins 的构建过程中执行远程命令、上传或下载文件、管理远程服务器等操作。
以下是 SSH2 Easy 插件的主要功能和特点:
-
SSH2 支持:该插件使用 SSH2 协议与远程服务器进行通信,确保数据的安全性和稳定性。
-
远程命令执行:用户可以在 Jenkins 的构建过程中执行远程服务器上的命令,比如启动服务、停止服务、部署应用等。
-
文件传输:插件支持上传和下载文件,用户可以方便地将构建产物或配置文件传输到远程服务器上,或从远程服务器下载文件到 Jenkins 服务器。
-
远程服务器管理:用户可以通过插件方便地管理远程服务器,比如添加、删除、编辑服务器信息,并可以为每个服务器配置用户名、密码、端口号等信息。
-
命令执行结果输出:插件支持将远程命令执行的结果输出到 Jenkins 的控制台,方便用户查看命令执行的情况和结果。
-
多种认证方式:插件支持多种认证方式,包括使用用户名和密码、使用私钥文件等。
-
可扩展性: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 使用的主要步骤是:
-
安装插件:首先,你需要在 Jenkins 中安装
ssh2easy
插件。这可以通过 Jenkins 的管理界面中的“插件管理”部分完成。 -
配置插件:安装插件后,你需要在 Jenkins 的系统配置中添加 SSH 服务器的详细信息。这通常包括主机名、端口、用户名、密码/私钥等。
-
在Job中使用插件:在配置好 SSH 服务器信息后,你可以在 Pipeline 脚本或传统的自由风格作业中使用
ssh2easy
插件来执行远程命令。
1. 安装SSH2 Easy
这里使用在线安装的方式, 具体步骤如下:
-
进入Jenkins 页面
-
点击左侧的Mange Jenkins ,进入管理页面:
-
点击 “Plugins”, 进入插件管理页面
-
点击左侧的"Available plugins" 后, 在搜素框输入
ssh2 easy
可以搜索到SSH2 Easy 的1.6 版本,并提示该插件在寻求维护者状态, 如下图:
-
选中之后,点击“安装”
-
稍等片刻,出现如下页面代表安装成功
2. 配置远程主机
安装完成之后:
-
点击左侧导航的 Manage Jenkins
-
选择System Configuration 下的System
-
往下拉到Server Groups Center
-
在Server Group List 中输入Group 名字, 端口,连接的用户名/密码,点击Apply
-
在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 any
stages {
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 插件的优缺点如下:
优点:
- 简单易用:该插件提供了一个简单的界面,使得设置和执行远程SSH命令变得非常容易。
- 高度定制:插件允许用户自定义远程命令、主机以及其他参数,从而根据自己的需求进行定制化配置。
- 可靠性:插件的开发者经过精心测试和稳定性验证,确保插件在执行远程命令时可靠并且不会引发故障。
- 可扩展性:该插件允许用户编写自定义的SSH脚本,从而更进一步满足特定的需求。
缺点:
- 依赖性:该插件需要依赖Jenkins服务器与远程主机之间建立SSH连接,因此需要确保Jenkins服务器可以与远程主机进行通信。
- 安全性:使用SSH连接需要配置安全凭据,并确保凭据的安全保存。如果配置不当,可能会导致安全漏洞。
总体来说,Jenkins SSH2 Easy 插件是一个方便易用的插件,它使得在Jenkins上执行远程SSH命令变得非常容易。然而,在使用过程中需要注意安全性和依赖性的问题
可以替代SSH2 Easy的Jenkins插件
Jenkins有一些与SSH2 Easy类似的插件,用于在Jenkins中执行远程SSH操作。以下是其中一些插件的介绍:
-
SSH Agent Plugin:该插件允许Jenkins使用SSH代理进行身份验证,并在构建过程中提供SSH密钥。它可以用于执行远程SSH命令、传输文件等操作。
-
Publish Over SSH Plugin:该插件允许通过SSH协议将构建产物或其他文件传输到远程服务器。它还可以在远程机器上执行Shell脚本或命令。
-
SSH Slaves Plugin:该插件允许Jenkins使用SSH协议在远程机器上启动和管理构建代理。它可以用于在远程机器上执行构建任务,并将结果返回到Jenkins服务器。
-
SSH Build Agents Plugin:该插件允许Jenkins在远程机器上使用SSH协议启动和管理构建代理。它类似于SSH Slaves Plugin,但有一些额外的配置和管理选项。
-
SSH Credentials Plugin:该插件允许Jenkins在SSH连接配置中使用凭据。它可以存储和管理SSH凭据,以供其他插件使用,如SSH Agent Plugin和Publish Over SSH Plugin。
这些插件可以帮助在Jenkins中执行远程SSH操作,并扩展Jenkins的功能。具体选择哪个插件取决于你的需求和使用场景。
参考
- https://plugins.jenkins.io/ssh2easy/