一. 通信协议
为了master和agent能够正常通信,连接的建立必须是双向的。
- SSH: master通过标准的SSH协议连接slave。
- Java Web Start: Java 应用在agent 主机上启动,Master和agent通过TCP建立连接。 这种方法往往是在agnet在防火墙内部,master不能发起连接的情况下使用。
- Windows service: 这种方法是注册 agnet在远端主机上作为一个服务。该方法设置比较繁琐,且需要图形接口的支持。
二. 设置 agent
关联slaves到master的不同方式:
- 静态和动态对比:静态添加slave比较简单。但缺点就是假如需要更多或者更少的slave nodes的话,我们还需要手工修改。一个最好的方式就是动态的添加。
- 指定和通用目的:就是对某个agent去做某些特定的功能或者一个agent可以构建所有的任务。
三. 常 用的四种配置方法
- Permanent agents
- Permanent Docker agents
- Jenkins Swarm agents
- Dynamically provisioned Docker agents
1. permanent agents
依次点击【Manage Jenkins】–【Manage Nodes】—【New Node】,如下图
[
持久agent的缺点就是需要针对不同项目类型维护多个slave 类型。解决方案如下图所示:
1.1.1 VM方式启动
首先,我们点开agent页面,获取agent.jar和secret信息。
我们在一台Linux服务器中,下载agent.jar和启动连接。
wget http://192.168.1.200:30080/jnlpJars/agent.jar
java -jar agent.jar -jnlpUrl http://192.168.1.200:8080/computer/test01/slave-agent.jnlp -secret d5bd27fc1dfa4c5e886b95fc98538f4a7399c5d239783f89e4502a6e56f8a512 -workDir "/var/lib/jenkins"