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。


浙公网安备 33010602011771号