jenkins增加服务子节点

在增加节点之前需要安装好SSH插件

jenkins 添加windows节点 从节点端口被禁用 jenkins限制项目运行节点_服务器

然后进入,jenkins节点管理–新建节点

jenkins 添加windows节点 从节点端口被禁用 jenkins限制项目运行节点_docker_02


节点名称随意,机器数量比较多的话,建议使用机器名,防止忘记
type选择固定节点就好,如果已配置好其他子节点,可以选择复制现有节点,在现有节点配置基础上进行修改

jenkins 添加windows节点 从节点端口被禁用 jenkins限制项目运行节点_服务器_03


jenkins 添加windows节点 从节点端口被禁用 jenkins限制项目运行节点_子节点_04

这里说一下几个选项含义

Number of executors 执行数量,依据机器配置选择,配置一般选择1就好
远程工作目录 指的是子节点服务器部署的工作目录,这里注意,工作目录需要有读写权限
标签 机器多的时候可以用来分组,我这里不填
启动方式 linux或者mac 选择SSH方式
主机 填字节点的ip地址 端口使用默认端口
证书 这里添加对这台机器有访问权限的用户信息
最后点保存即可,到这步成功的同学就完事啦,没成功的同学可能遇到了和我一样的坑,请继续往下看===

我在操作证书的时候踩了一个坑,下面和说一下我是怎么解决的:
一开始我选择的证书方式为用户名密码,但从日志看一直连不到子节点服务器,但是从服务器使用su命令切换jenkins使用的用户账密正常。

  • 第一步,先排查从本地使用ssh命令连接跳板机服务
  • jenkins 添加windows节点 从节点端口被禁用 jenkins限制项目运行节点_jenkins_05

  • 连接正常,但发现进到跳板机后,因为公司限制不能输入命令,只能输入数字去选择要连接的远程服务器。
  • 第二步,在本地ping远程服务器ip,发现可以正常ping通
  • jenkins 添加windows节点 从节点端口被禁用 jenkins限制项目运行节点_docker_06

  • 于是尝试直接使用ssh命令连接远程服务器,发现限制了只能使用密钥的方式去连接
  • jenkins 添加windows节点 从节点端口被禁用 jenkins限制项目运行节点_docker_07


  • 第三步,解决问题,创建密钥
    连接服务器切换账号
[work@qa ~]$ su xxx
Password: 
[xxx@qa work]$ ls
ls: cannot open directory .: Permission denied
[xxx@qa work]$ cd 
[xxx@qa ~]$ ls
生成密钥
[xxx@qa ~]$ ssh-keygen
进到生成密钥的目录查看
[xxx@qa ~]$ cd .ssh/
[xxx@qa .ssh]$ ls
id_rsa  id_rsa.pub
[xxx@qa .ssh]$ rm -rf *
[xxx@qa .ssh]$ ls
[xxx@qa .ssh]$ ssh-keygen
[xxx@qa .ssh]$ ls
id_rsa  id_rsa.pub
创建授权密钥文件
[xxx@qa .ssh]$ touch authorized_keys
[xxx@qa .ssh]$ ls
authorized_keys  id_rsa  id_rsa.pub
将公钥累加到授权密钥文件
[xxx@qa .ssh]$ cat id_rsa.pub >> authorized_keys 
[xxx@qa .ssh]$ ls
authorized_keys  id_rsa  id_rsa.pub
这时候密钥就生成成功了,查看私钥
[xxx@qa .ssh]$ cat id_rsa

接下来把测试私钥能否正常使用。
回来本机,打开终端,创建一个密钥文件,我这里命令为ida,把在服务器生成的私钥粘贴进去

touch ida
vim ida
ssh -i ida 用户名xxx@服务器ip地址

jenkins 添加windows节点 从节点端口被禁用 jenkins限制项目运行节点_子节点_08


连接失败,原因是我这边xxx用户为新建用户,生成的私钥需要重启服务器后才会生效,导致无法连接。但是服务器还在运行其他服务,于是决定在本地生成私钥,换账号再来一遍。

cd .ssh
ssh-keygen
ls
cat id_rsa.pub
把公钥文件复制到work账户的授权密钥文件中并保存
[work@qa ~]$ cd .ssh/
[work@qa .ssh]$ ls
authorized_keys
[work@qa .ssh]$ cat authorized_keys 
[work@qa .ssh]$ vim authorized_keys

回到本地测试,连接成功

jenkins 添加windows节点 从节点端口被禁用 jenkins限制项目运行节点_docker_09

  • 第四步,重新生成jenkins证书,连接子节点
cd .ssh
ssh-keygen
ls
cat id_rsa
把私钥复制到jenkins证书中
  • 找到节点服务器java位置,配置子节点java环境变量

    增加节点JAVA_HOME配置

    最后保存,可以看到已经连接成功