windows下 Jenkins 主从节点通过SSH连接

之前已经介绍了在windows下,Jenkins通过启动agent.jar文件来进行主从节点配置(传送门:Jenkins 主从节点配置教程(windows10)_jenkins windows节点_町棠棠的博客-CSDN博客icon-default.png?t=N2N8https://blog.csdn.net/naturly/article/details/129819780?spm=1001.2014.3001.5501),这次介绍在windows下,Jenkins通过SSH来进行主从节点连接配置。

主机A    作为Jenkins主机点

主机B   作为Jenkins从节点

主机A,B在同一网段下,可以ping通

可以直接看文末红色字体

1 确保两台主机有SSH服务

可参考此文章:Windows 10 启动自带OpenSSH服务_兰以为佩的博客-CSDN博客icon-default.png?t=N2N8https://blog.csdn.net/qq_38328382/article/details/103731377

Windows 10 开启ssh服务_windows ssh_Mr.亮先生的博客-CSDN博客icon-default.png?t=N2N8https://blog.csdn.net/pariese/article/details/111604340

管理员身份运行cmd,输入如下命令,可开启sshd服务

net start sshd

windows下 Jenkins 主从节点通过SSH连接_第1张图片  

2  两台主机A,B通过SSH公钥连接

2.1 公钥生成

在jenkins主机点即主机A上,win+R,打开终端,生成一对ssh的公钥和私钥文件,输入如下命令,会提示公钥和私钥文件的路径(保存在  C:\Users\主机A用户名/.ssh/id_rsa.pub. ):

ssh-keygen -t rsa

Enter passphrase是指输入SSH连接时需要的密码。可以设置也可以不设置,不设置密码就直接回车。 

windows下 Jenkins 主从节点通过SSH连接_第2张图片

2.2 将主机A产生的公钥“复制”到 主机B上

ssh-copy-id -i id_rsa.pub 主机B的登录用户名@主机B的IP
如:ssh-copy-id -i id_rsa.pub [email protected]

此时可能会出错:

(1)connect to host port 22 connection refused

ssh服务没有开启,打开即可:

net start sshd

(2)ssh-copy-id 不是内部或外部命令

很有效的解决方案,传送门:

windows无法使用ssh-copy-id解决办法。_ssh-copy-id windows_我的征途是星辰大海。的博客-CSDN博客

2.3 测试连接

输入如下格式的命令,有密码的会提示输入密码,基本就完成A,B主机的SSH连接了

ssh 主机B的登录用户名@主机B的IP

3 windows下节点配置过程与问题

3.1 节点配置

(1) 点击+,新建节点 

windows下 Jenkins 主从节点通过SSH连接_第3张图片

windows下 Jenkins 主从节点通过SSH连接_第4张图片

 (2) 开始配置windows下 Jenkins 主从节点通过SSH连接_第5张图片

远程工作目录在下面解释,先配置其他的

windows下 Jenkins 主从节点通过SSH连接_第6张图片

 

 windows下 Jenkins 主从节点通过SSH连接_第7张图片

 

 windows下 Jenkins 主从节点通过SSH连接_第8张图片

 点击高级:

windows下配置jenkins从节点中的java路径,应该使用正斜杠(/)而不是反斜杠(\),例如:C:/Program Files/Java/jdk1.8.0_211/bin/java。

windows下 Jenkins 主从节点通过SSH连接_第9张图片

 

windows下 Jenkins 主从节点通过SSH连接_第10张图片 

 最后保存就可以测试连接是否成功了。

3.2 远程工作目录

(1) 这种方式填,默认在主机B的C盘下创建Jenkins目录,(当节点连接成功,这个目录下会有remoting.jar生成),这样填写可以节点连接成功。

windows下 Jenkins 主从节点通过SSH连接_第11张图片

windows下 Jenkins 主从节点通过SSH连接_第12张图片

 

 (2)若想放到C盘之外的盘,根据要求是可以填写如下的形式(注意时斜杆,不是反斜杠),但是这样会报错,连接失败:

 Error: Unable to access jarfile remoting.jar

windows下 Jenkins 主从节点通过SSH连接_第13张图片

windows下 Jenkins 主从节点通过SSH连接_第14张图片

 3.3 虽然远程工作目录填C盘可以SSH连接成功,但是当构建任务的时候,还是会出错:java.io.IOException: [ssh-agent] Could not find specified credentials

windows下 Jenkins 主从节点通过SSH连接_第15张图片 

 我猜测是因为无权限对C盘进行文件操作,还不太清楚,还在找解决办法。

但是看到有的文章说:

在linux下推荐使用SSH连接(应该就不会出现上面3.3的问题了吧)

在windows下推荐使用启动agent.jar文件进行主从节点的连接

 

你可能感兴趣的:(CI/CD,jenkins,ssh)