以前博主写过一篇win7+win7的,现在终于有时间(有设备)来搞一搞linux+linux的持续集成平台了。
以下命令行中出现的changge为博主mater主机名,agent为slave agent主机名。

生成SSH 密钥对

因为我们是希望master主机控制slave agent,也就是master->agent的访问,那么我们就在master主机下生成密钥对,如果希望master和slave agent互相通信,以下过程在agent主机反方向再来一遍即可。
mater主机:

ssh-keygen -t rsa

可以使用-t选项选择加密方式,包括 RSA 和 DSA 两种密钥,例如:$ssh-keygen -t dsa 或者ssh-keygen -t rsa,加密方式不同,key的名称不同,其他没有区别,如果没有指定密钥,默认RSA

密钥存放的位置,默认在用户目录的.ssh文件夹下,输入以上指令后,默认我们按三次回车即可。过程如下图所示:

jenkins执行ssh脚本的时候使用root用户 jenkins ssh agent_ubuntu

从上图也可以看到,我们的密钥id_rsa和公钥id_rsa.pub存放于/home/changge/.ssh目录下。

生成authorized_keys

然后输入指令:

cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys

拷贝authorized_keys文件到slave agent主机

同样的我们在slave agent主机下也进入用户目录下的.ssh文件夹下,将我们刚刚拷贝的authorized_keys文件拷贝到该文件夹下。

jenkins执行ssh脚本的时候使用root用户 jenkins ssh agent_ubuntu_02

测试SSH通信建立

master主机下 我们输入指令,ssh agent主机名@agent IP地址

ssh agent@192.168.xxx.xxx

然后我们同意将指纹添加到本地。输入 yes

jenkins执行ssh脚本的时候使用root用户 jenkins ssh agent_主机名_03


可见我们成功的在master上登录了slave agent主机。

Jenkins新建节点

打开Jenkins之后,在系统管理->管理节点下添加新节点。

配置从节点信息

jenkins执行ssh脚本的时候使用root用户 jenkins ssh agent_ssh_04

这里就比较简单了,主机部分是slave agent主机的ip地址,然后点击下方的Add,添加Credentials,我们选择用户名密码的方式

jenkins执行ssh脚本的时候使用root用户 jenkins ssh agent_ubuntu_05


username是我们slave agent的主机名,password自然就是它的登录密码了。添加完成后,就可以看到我们的agent已经成功连上了。

jenkins执行ssh脚本的时候使用root用户 jenkins ssh agent_ssh_06


如果没有成功脸上,这个电脑logo会有红色X提示。

测试节点机器

接下来我们新建一个test项目测试一下节点机器。注意我们在运行项目的时候最好给每一台接点机器加辨识度高的标签,方便管理。当然博主这里一共就两台机器,一台master 一台linux-agent足以。新建项目的时候,我们这里选择linux-agent,也就是我们的slave agent主机了

jenkins执行ssh脚本的时候使用root用户 jenkins ssh agent_主机名_07

构建命令很简单,只是检查一下Java的版本

jenkins执行ssh脚本的时候使用root用户 jenkins ssh agent_ubuntu_08

保存完成后,我们点击立即构建 ,查看一下运行结果输出,test项目运行成功,说明我们的节点挂载成功。

jenkins执行ssh脚本的时候使用root用户 jenkins ssh agent_ssh_09