Jenkins配置agent

摘要:
一.通信协议为了master和agent能够正常通信,连接的建立必须是双向的。三.常用的四种配置方法PermanentagentsPermanentDockeragentsJenkinsSwarmagentsDynamicallyprovisionedDockeragents1.permanentagents依次点击--—,如下图持久agent的缺点就是需要针对不同项目类型维护多个slave类型。Jenkinsswarm允许去动态的添加slave在Jenkins中安装插件。运行JenkinsSwarmslave应用在要扮演Jenkinsslave的所有主机上。下载地址:https://wiki.jenkins-ci.org/display/JENKINS/Swarm+Plugin.$java-jarswarm-client.jar-master-username-password-namejenkins-swarm-slave-1在成功运行命令后,应该出现如下图所示:4.通过Dockeragent动态的提供。其它的办法就是在每次构建开始时,jenkins去动态的创建一个新的agent.根据构建工作的数量动态的调整slave的数量。

一. 通信协议

为了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】,如下图

T8QVF`EYBY9@[MOCKWRY(D2

持久agent的缺点就是需要针对不同项目类型维护多个slave 类型。解决方案如下图所示:

Jenkins配置agent第2张

2. Permanent Docker agents

这个解决方案的理想方法是永久的添加常规目的的slaves. 每个slave都有相同的配置。

这种方法就是在构建时在管道中指定需要的docker image.

pipeline {
agent {
docker {
image 'openjdk:8-jdk-alpine'
}
}
...
}

解决方案如下图所示:

Jenkins配置agent第3张

3. Jenkins Swarm agents

以上的添加在往往需要扩容大量的salve 主机时比较麻烦。Jenkins swarm允许去动态的添加slave(不需要在jenkins master中配置它们)

(1)在Jenkins中安装【Self-Organizing Swarm Plug-in Modules】插件

image

(2)运行Jenkins Swarm slave应用在要扮演Jenkins slave的所有主机上。 使用swarm-client.jar应用。下载地址:https://wiki.jenkins-ci.org/display/JENKINS/Swarm+Plugin.

$ java -jar swarm-client.jar -master <jenkins_master_url> -username <jenkins_master_user> -password <jenkins_master_password> -name jenkins-swarm-slave-1

(3)在成功运行命令后,应该出现如下图所示:

Jenkins配置agent第5张

4. 通过Docker agent动态的提供。

其它的办法就是在每次构建开始时,jenkins去动态的创建一个新的agent.根据构建工作的数量动态的调整slave的数量。

配置步骤:

(1)安装Docker插件

B{EORP}`_~0W0D0${T8OM06

(2)打开【Manage Jenkins】。
(3)点击【Configure System】链接。
(4)点击添加新的云,选择Docker.

image

(5)添加Docker 模板

0(~808(USZ25Y43MRQ8B5J6

免责声明:文章转载自《Jenkins配置agent》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇hdparm 命令使用;关闭硬盘 HDD cache; 硬盘读写性能测试;【九天教您南方cass 9.1】 05 打印出图下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Jenkins配置MSBuild时使用环境变量

【MSBuild Plugin】插件在使用环境变量有个很奇葩的方式,比如我们通常在Windows的节点机器上,使用WORKSPACE环境变量时,批处理应该这样写%WORKSPACE%,而有时插件确不能正常识别,那么只能换回Linux的写法${WORKSPACE}的形式。 【MSBuild Build File】和【Command Line Argument...

Elasticsearch集群角色类型node.master及node.data

在Elasticsearch当中,ES分为三种角色:master、data、client。 三种角色由elasticsearch.yml配置文件中的node.master、node.true来控制。 如果不修改elasticsearch的节点角色信息,那么默认就是node.master: true、node.data: true 默认情况下,es集群中的每...

自动化部署 jenkins 插件简介

一、什么是持续集成? (1)Continuous integration(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发...

Redis 5版本简介

1.redis特点 (1)基于内存 (2)可持久化数据 (3)具有丰富的数据结构类型,适应非关系型数据的存储需求 (4)支持绝大多数主流开发语言,如C、C++、Java、Python、R、JavaScript等。 (5)支持集群模式,高效、稳定。 2.数据类型 (1)键值对形式。 (2)Redis的数据结构类型,指的就是Redis值的结构类型。...

redis的主从复制

一、redis的五种数据类型: string是字符串类型,是redis最基本的数据类型。 哈希类型hash,hash特别适合存储对象 列表类型list,按照插入顺序排序 集合类型set,不允许有重复数据 有序集合类型zset,不允许有重复数据 二、redis主从复制 为了避免服务器停机导致数据库数据丢失,为了避免单点故障,我们需要将数据复制到多台服务器上,...

docker-compose 快速部署持续集成测试环境 Gitlab+Harbor+Jenkins pipeline 实现 tag run docker Images

环境 测试部署主机IP:192.168.1.1 Jenkins主机IP:192.168.1.2 Harbor主机IP:192.168.1.3 Gitlab主机IP:192.168.0.10 系统信息: 系统:CentOS 7.5 内核:4.18.7-1.el7.elrepo.x86_64 Docker版本:18.09 do...