直接在宿主机上部署 Jenkins 的分布式架构过程

2020-07-31 0 By admin

将 Jenkins 的 Master/Agent 分布式架构直接部署在宿主机上,不是一个很好的选择;但是它作为一个向容器化过度的中间阶段,是必要学习掌握的。
整个 Jenkins 服务分布式部署是很简单的;分为一些步骤:

  1. 部署一个 Jenkins Master 节点。
  2. 通过 Jenkins 的 WEB 页面,在 Master 节点上添加 Agent node 节点。
  3. 添加完 Agent Node 节点后,Jenkins Master 会提供部署 Agent Node 服务的软件包和启动方式;直接找台服务器,根据提示运行就行。

一、Jenkins Master 节点部署

Jenkins 服务的部署方式可以选择源码安装,也可以选择使用系统支持的包管理工具安装。

1.1、Centos 系统安装Jenkins

Centos 系统使用 YUM 工具安装 Jenkins 和 Jenkins 服务配置、启动的操作可以参考:

Jenkins 服务安装过程和介绍

1.2、使用 jenkins.war 安装Jenkins

使用 Jenkins.war 的方式安装 Jenkins 的话,需要在宿主机上部署 Jdk 环境。如果希望通过 tomcat 来管理Jenkins 的进程的话,还需要配置上tomcat。
Jenkins 进程启动的方式很简单: java -jar jenkins.war
不过使用这种方式,如果修改Jenkins 的默认启动配置,没有找到文档介绍。比如更改工作目录、设置内存使用等。

二、在 Master 节点中添加 Agent

在 Jenkins 节点上配置 Agent 节点的操作步骤如下:

2.1、新建节点页面的访问路径

在 Jenkins 服务的页面上,找到”新建节点“的页面;它的访问路径如下:
Manage Jenkins -》Manage Nodes and Clouds(管理节点)-》New Node(新建节点)

2.2、节点名称和节点类型

通过上面的访问路径,进入添加节点的第一个页面。在这里需要填写一下【节点名称】和选择节点类型,一般选择永久节点[Permanent Agent]即可。永久节点的说明:

给 Jenkins 增加了一个普通的永久代理人。
这被称为“永久的”,因为Jenkins没有提供与这些代理的更高级别的集成,比如动态供应。
如果没有其他代理类型,请选择此类型—例如,当您添加物理计算机、在Jenkins外部管理的虚拟机等。

三、填写节点的更多信息

在节点的详细设置页面中填写更多信息。

配置项 配置项说明/配置信息
Name/名称 Jenkins Agent 的名称
of executors / 并发执行数 Agent 节点可以同时执行几个 Job
Remote root directory / 远程工作目录 从节点上jenkins agent的工作目录,推荐只用绝对路径,如/home//jenkins-agent。注意jenkins要有该目录的读写权限
Labels / 标签 给Agent节点设置标签;Job 任务可以根据标签选择特定的 Agent 节点执行。
Usage / Agent 节点的使用方法 有两种方式:1、尽量使用此Agent执行任务;2、只执行标签匹配的任务。
Lanuch method / Agent 启动方法 有多种选择,这里使用”Launch agent by connecting it to the master“/通过将 Agent 连接到 Master 来启动它

其他的配置项可以选择默认状态,也可以更加自己的理解设置。

四、获取部署 Agent 的方法

上面的步骤操作完成后,就会有个展示配置 Agent 节点的页面。其中提供了两中部署 Agent 的方式,我们选择第二种。

4.1、在 Agent 服务器的命令行执行启动命令

java -jar agent.jar -jnlpUrl http://jenkins.example.com/computer/agent-test/slave-agent.jnlp -secret d4abba3f13324b85ab2997e22c3442045bb86fcd213f79fa01416a5fd0399a18 -workDir ""
将密码信息写入到文件中,Agent 启动方式:
echo d4abba3f13324b85ab2997e22c3442045bb86fcd213f79fa01416a5fd0399a18 > secret-file
java -jar agent.jar -jnlpUrl http://jenkins.example.com/computer/agent-test/slave-agent.jnlp -secret @secret-file -workDir ""