Jenkins远程连接Windows执行命令

这篇具有很好参考价值的文章主要介绍了Jenkins远程连接Windows执行命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境说明

        我在一台linux服务器上安装了Jenkins服务作为Jenkins服务器,除此之外,还有一台Windows电脑,安装了python环境,本地保存着自动化测试用的python代码,这台电脑用于执行基于chrome浏览器的自动化web测试。2台机器都处在同一个网络里。

        现在想要达到的效果是,利用Jenkins的定时构建任务,让Windows电脑能够定时地执行自动化测试,并返回结果,不需要人为的手动点击运行。

        想要达到效果,第一步需要解决的就是Jenkins如何与Windows连接。众所周知,Windows的远程是RDP协议的,而Jenkins是通过SSH协议进行文件传输及命令传输的,所以先要让Windows支持SSH协议连接。

Windows安装SSH服务

        在Windows上安装SSH服务的应用有很多,比如OpenSSH,freeSSHd等,本文举例通过安装openssh server,来实现Jenkins通过SSH连接windows服务器。

        Windows安装OpenSSH可以按照我写的另外一篇文章来安装,地址:https://blog.csdn.net/v781423070/article/details/131322758

安装和配置Jenkins

        Jenkins的安装和基本配置可以查看我写的另外一篇文章,地址:https://blog.csdn.net/v781423070/article/details/130456211

Jenkins安装Publish Over SSH插件

打开Manage Jenkins→Plugins→Available plugins界面,搜索框中输入SSH,安装Publish Over SSH插件,如下图(因为我已经安装过了,所以没搜索出来),安装完成后重启Jenkins服务生效。

jenkins执行windows命令,jenkins,ssh,功能测试,pycharm,python

Jenkins配置SSH连接

打开Manage Jenkins→System界面,如下图红框,找到Publish over SSH下的SSH Servers选项。(没有安装Publish Over SSH插件则不会显示选项)

jenkins执行windows命令,jenkins,ssh,功能测试,pycharm,python

如下图红框

Name:连接名称,随便写。

Hostname:要远程连接的主机ip,我要远程的Windows电脑的ip是172.20.1.144。

Username:远程连接账号,如果电脑通过OpenSSH来实现的SSH服务,则账号就是正常windows远程桌面连接的账号,就是正常登录电脑的账号。

Remote Directory:可以为空,也可以输入/。(输入/,则它对应的就是windows下面的C盘下面的用户下面对应的用户名的目录)

勾选复选框并填写登录密码:如果电脑通过OpenSSH来实现的SSH服务,则账号密码就是正常windows远程桌面连接的账号密码,就是正常登录电脑的账号密码。

jenkins执行windows命令,jenkins,ssh,功能测试,pycharm,python

填写Port:远程主机的SSH端口。

Timeout(ms):超时时间默认300000。

其他都可以为空不用填写,填写完点击右下角Test Configuration测试一下,左下角出现Success则代表连接成功,链路通了。

点击保存按钮,保存。

jenkins执行windows命令,jenkins,ssh,功能测试,pycharm,python

Jenkins创建任务来实操

点击【新建Item】

jenkins执行windows命令,jenkins,ssh,功能测试,pycharm,python

输入一个任务名称,选择Freestyle project,点击确定。

jenkins执行windows命令,jenkins,ssh,功能测试,pycharm,python

填写任务描述,随便写。

jenkins执行windows命令,jenkins,ssh,功能测试,pycharm,python

其他的比如【源码管理】【构建触发器】【Build Steps】【构建后操作】这些配置项在这里就不再赘述了,根据想法来构建任务。

这里主要重点说一下【构建环境】,勾选Send files or execute commands over SSH after the build runs。(没有装Publish Over SSH插件则不会显示选项)

Name:选择SSH链接名。(注意:这里写的是链接名,并不是远程主机ip)

jenkins执行windows命令,jenkins,ssh,功能测试,pycharm,python

在Exec command输入栏中输入需要远程Windows主机执行的命令,命令前面需加“cmd /c”,否则不会执行命令。比如下图红框内的命令意思就是,执行C:\Users\YVIEW\PycharmProjects\124\目录下的run.bat文件。

jenkins执行windows命令,jenkins,ssh,功能测试,pycharm,python

点击高级按钮,将Exec timeout时间改为0,防止运行超时中断。

jenkins执行windows命令,jenkins,ssh,功能测试,pycharm,python

其他选项不用填写,保存。构建任务,如下图,查看日志,显示成功了。(实际在windows电脑上自动化测试也已经自动执行了,目的达到了)

jenkins执行windows命令,jenkins,ssh,功能测试,pycharm,python

我在Exec command输入栏中输入的是让远程机执行批处理文件,批处理文件内容如下图,已经把要操作的命令写在了文件里,最终只要执行bat文件就行。bat文件的内容意思就是,进入到C盘的\Users\YVIEW\PycharmProjects\124目录下,这个目录是Pycharm其中的一个项目目录,然后再执行man.py文件,运行代码执行自动化测试。

jenkins执行windows命令,jenkins,ssh,功能测试,pycharm,python

其他问题

上面的实操,Windows用的是OpenSSH来建立连接的,但我还尝试了安装freeSSHd来建立SSH连接,(安装freeSSHd操作可查看我的另外一篇文章,地址:https://blog.csdn.net/v781423070/article/details/131324571),但是,遇到了问题,用linux命令行连接是建立成功的,但是在Jenkins里报了错,如下图,报错信息应该是SSH算法有问题,目前还没有找到解决办法。

jenkins执行windows命令,jenkins,ssh,功能测试,pycharm,python

对于整个Jenkins环境的其他想法

        目前就2台机器,一台是Jenkins服务器,一台是Windows测试电脑,Jenkins远程连接Windows并发送执行远程命令,Windows执行测试并返回结果,这个方案解决了不需要人为手动来点击运行执行测试的麻烦,可以来定时地执行任务。

        但,Jenkins能做到的远远不止这些。

        如果把测试代码上传到Git,通过Jenkins从Git处下载代码到Jenkins服务器,然后Jenkins服务器本地打包代码,再远程连接Windows,再把文件发送过去,再执行远程命令,Windows再来执行自动化测试并返回结果。这个方案既解决了无需手动点击运行的麻烦,又解决了如果测试代码有变动,无需手动copy到Windows的麻烦。

        Jenkins可以用触发构建任务(当有代码更新了就去拉取)或轮询触发任务(定时地去拉取)都可以,也很灵活。文章来源地址https://www.toymoban.com/news/detail-675254.html

到了这里,关于Jenkins远程连接Windows执行命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jenkins + Docker + Maven + Windows 一键部署 Spring Boot 程序到远程 Linux 服务器

    本地:Windows 10 ; 本地:Jenkins + Publish Over SSH 插件; 本地:Maven ; 远程:Linux ; 远程:Docker ; 准备步骤 使用 Dockerfile 构建镜像; 基本思路 第一步:使用 mvn clean package -DskipTests 打包 Spring Boot 程序为 jar 包; 第二步:使用 Windows 命令将 jar 包复制到 jenkins 项目工作目录;

    2024年02月12日
    浏览(67)
  • ubuntu如何远程ssh登录Windows环境并执行测试命令

    在实际的开发中有时会遇到需要在ubuntu上远程登录Windows的电脑去执行一些比较特殊的命令。这个时候就需要使用python的paramiko模块,首先去远程登录,然后再去执行对应的cmd。 paramiko 是一个用于在Python中实现SSH(Secure Shell)协议的模块,它提供了客户端和服务器的功能,使得

    2024年02月04日
    浏览(45)
  • [漏洞复现] jenkins 远程代码执行 (CVE-2019-100300)

    拥有Overall/Read 权限的用户可以绕过沙盒保护,在jenkins可以执行任意代码。此漏洞需要一个账号密码和一个存在的job。 Jenkins的pipeline主要是通过一个配置文件或者job里面的pipeline脚本配置来设定每个job的步骤. pipeline定义了几乎所有要用到的流程, 比如执行shell, 存档, 生成测试

    2024年02月16日
    浏览(45)
  • jenkins执行shell命令权限不够

    jenkins执行shell命令及新建文件,报权限不够,网上试了很多方式都不行。 2.1 网上的解决方式,测试了下不行 2.2 问题解决 其实网上的方法的第一条是在配置文件中修改jenkins的启动用户,由jenkins修改为root,来解决权限问题; 通过whoami测试,发现执行账户一直是jenkins,说明配

    2024年02月12日
    浏览(49)
  • Jenkins :添加node权限获取凭据、执行命令

    拥有Jenkins agent权限的账号可以对node节点进行操作,通过添加不同的node可以让流水线项目在不同的节点上运行,安装Jenkins的主机默认作为master节点。 1.Jenkins 添加node获取明文凭据 通过添加node节点,本地监听ssh认证,选则凭据(明文)进行ssh认证,拿到密码。 1.新建节点-ma

    2024年02月07日
    浏览(36)
  • Jenkins基础篇--windows安装Jenkins

    Jenkins是一个用Java编写的开源的持续集成工具,可用于自动化各种任务,如构建,测试和部署软件。 持续集成 是强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。简单来讲持续集成就是频

    2024年02月11日
    浏览(34)
  • systemctl start jenkins执行命令之后报错

    报错阐述 在安装好jenkins和修改了jenkins配置文件之后,重启jenkins时报错,报错内容如下: 执行了 systemctl start jenkins 命令之后,出现的报错信息如下所示: 原因解析: 我报错的原因是jenkins的版本和java的版本不匹配导致的,更换了jenkins版本之后就可以了。

    2024年02月16日
    浏览(44)
  • jenkins构建pipline无法执行shell命令原因

    新的服务器上,新安装的jenkins,在上面创建了一个pipline项目,脚本里有shell命令,但是jenkins每次执行都卡住,经过尝试, 无论多简单的命令都执行不了 ,cp,mv等都不行,只有echo能执行。 以为是服务器问题,于是删除该虚拟机重装。 重新把环境安装好,再把一模一样的p

    2024年02月16日
    浏览(57)
  • Jenkins 执行远程shell脚本部署jar文件问题起不来

    如图:最开始的时候没有加: source /etc/profile 这一行, run.sh里面的java -jar xxxx.jar 一直执行不来。 一开始以为是Jenkins执行退出后会kill一切它启动的进程,所以加了在run.sh里面加了export BUILD_ID=dontKillMe,还是不行。后来考虑是环境变量问题,加上source /etc/profile就好了,同时最

    2024年02月07日
    浏览(49)
  • Jenkins 系列:Jenkins 安装(Windows、Mac、Centos)和简介

    Jenkins前身是 Hudson,使用 java 语言开发的自动化发布工具。在中大型金融等企业中普遍使用 Jenkins 来作为项目发布工具。 Jenkins 官方提供的插件使 Jenkins 更为强大。Jenkins 是一个自动化服务器,目前发展超过 15 年,比较成熟的 CI 工具(也可以 CD)能够实现自动化集成发布。建

    2024年02月03日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包