持续集成高级篇之Jenkins windows/linux混合集群搭建(二)
前面我们说过,要使用ssh方式来配置windows从节点,如果采用ssh方式,则windows和linux配置从节点几乎没有区别,目前发现的惟一的区别在于windows从节点上目录要设置在c盘里,linux则可以是任意位置.原因是因为windows环境下,cd命令在没有参数的情况下,无法cd到c盘以外的其它盘.
Jenkins从节点配置
打开jenkins界面,选择左侧的Manage Jenkins
标签,在出现的界面里选择Manage Nodes
,然后在出现的界面左侧点击New node
在出现的界面里Node name
,可以是任意名称,但是强烈建议是容易辨识的名称.
单选框选择第一项Permanent Agent
此时点击OK
会出现一个更为详细的信息填写页面
-
Description
为对此节点的一个自定义描述 -
# of executors
执行器个数,默认为1,如果指定为多个,则jenkins将会并行向此节点调度多个任务(同一时间执行多个任务).此项设置要根据节点主机的配置和实际工作情况而定. -
Remote root directory
远程工作目录,实际上是此从节点的工作目录,为必填项,填写后,调度到此节点的任务将在这个目录下执行. -
Labels
标签,大家初看到标签可能让为它类似Description
描述,没什么功能性的特征,实际上恰恰相反,它在资源调度中起着非常关键的作用.使得Label可以把多个节点组成一个逻辑单元.比如说传统.net项目必须在windows上构建,我们可以给所有集群中的windows节点都添加一个名叫windows
(这里windows并没有特殊含义,可以是任意名字,但是要方便管理).这样在创建任务的时候可以指定只在windows
机器上执行,这样master节点创建任务时,只会将任务调度到含有windows
标签的机器上.这里仅仅是一个例子,标签不仅仅可以标识机器系统的类型,还可以标识其它信息,比如说有些java项目允许在windows和linux上编译,但是jdk环境必须是1.7,我们就可以给包含jdk 1.7的主机打上标签,创建此类任务时指定标签,jenkins就只会将任务调度到这些节点上.
从名称
Lables
上就可以看出,一个节点可以指定多个label,多个之间用空格
分割.
Usage
用途,是复选类型,共有两个选项
-
Use this node as much as possible 默认选项,jenkins将自由使用此节点,当有任务可以调度到此节点时(如果创建任务时没有限制,并且没有达到最大并行度,则jenkins可以将任务调度到此节点),jenkins就可能会将任务调度到此节点.
-
Only build jobs with label expressions matching this node
仅调度label与此节点匹配的任务.这种模式下,仅当创建任务时指定了标签并且标签匹配此节点时jenkins才会将任务调度到此节点上来.
这种模式下jenkins将为特定的任务预留节点,比如你想要进行性能测试时,你可能仅仅想把此任务运行在特定配置的机器上.这时候可以使用这种模式,只有指定了标签的任务才会调度到这些机器上运行
仍以性能测试为例,你在特定机器上运行性能测试时,使用标签能保证任务被分配到正确的节点上,但是可能会产生多个性能测试被分配到同一节点的情况,这种情况会严重影响性能测试结果,是 需要避免的,我们可以把
# of executors
值设置为1,则当此节点有任务在运行时,jenkins就不会再分配任务到此节点.
-
Launch method
启动方式,这里我们选择Launch agent agents via SSH
通过ssh方式启动. -
Host
,填写主机的Ip -
Credentials
密钥,如果没有密钥,可以点击后面的add
添加一个,会出现一个添加对话框.kind
选择ssh username with private key
,username
为主节点
的用户名,Private Key
勾选enter directly
.我们把c:/Users/当前用户名/.ssh/id_rsa
里的内容复制粘贴到这里.
同时,我们需要把master节点上的
c:/Users/当前用户/.ssh/id_rsa.pub
里的内容复制到从节点c:/Users/当前用户/.ssh/authorized_keys
里面.不了解ssh登陆的用户可以查阅相关资料.
注意,如果在生成ssh key的时候指定了Passphrase和
id
,这里也需要配置.
完了之后点击OK
添加完成后Credentials
里选择刚添加的key.
其它的都是默认选项,完了点击Save
,如果节点正常启动,则在jenkins首页左侧列出来,并且图标上没有红叉
标识,如果有红叉标识的,则需要看配置哪里有问题,然后做处理
完整的配置如下
配置成功的节点展示如下