Jenkins windows slave 远程访问Linux问题

前提:我们公司的Jenkins服务器在windows上面,要求测试开发人员做CI,包括在jenkins上面拉源码,启动web,ui自动化测试。

问题:在Jenkins windows slave上面启动web是会一直占用executor,换句话说,job停不下来,需要手动停止。已经测试过start /min,call之类的,在Jenkins上执行表现有点类似多线程执行,此法行不通。

解决方案:首先想到的是用Linux nohup后台挂起命令,与领导沟通好,给了一个Linux虚拟机用来调试。

一、拉代码

     我在调试的时候发现公司的Jenkins中大部分的job configure都是用master or slave本地的工具,我配置了一下git,然后装了一个SCM插件方便我用checkout,方便全局使用。

 

 二、windows slave remote access linux vm

      需要在Windows slave上用ssh-keygen生成private/public公钥密钥对(slave本地配置)。

    1. Windows上打开cmd,输入ssh-keygen(这个命令没有,说明环境变量没有配置,直接用C:\Program Files\Git\usr\bin\ssh-keygen.exe)

    2. Windows上在打开的cmd中一路回车

    3. Windows上在c:\Users\admin\.ssh下找到*.pub(这个是公钥),把这个重命名renamed.pub后,传输到linux机器的.ssh文件夹里面。传输的话可以用Xshell,Xftp软件

    4. 在Linux上把它(renamed.pub)追加到authorized_keys文件中cat renamed.pub>> authorized_keys

# Linux
cd .ssh
cat renamed.pub>> authorized_keys

    5. 在Windows上打开cmd,输入

REM windows
ssh -o StrictHostKeyChecking=no user@ip_address 'pwd'

 

测试一下,打印出/home/user就对了。

    6.有可能在jenkins job中执行不成功,bash error,需要进行如下环境变量配置,可能是Jenkins slave没有找到ssh。

      这里要用到open ssh,需要把Jenkins slave配置一下环境变量,不需要在slave本地配置(测试过了)(如果可以的话也可以到configuration--Global properties--Environment variables里面配置)

 

 

 

=>调试成功,可以点击build下面的网址链接,访问web。

 

 

 

posted @ 2021-04-09 14:32  flying0dancing  阅读(151)  评论(0)    收藏  举报