阅读时间:4分钟
詹金斯支持”主/从”模式,建设项目委托给多个工作负载的“奴隶”节点,允许单个詹金斯安装主机大量的项目,或提供构建/测试所需不同的环境。本文档描述了这种模式,以及如何使用它。
我们很高兴介绍我们的新Elastigroup詹金斯插件
这个插件可以帮助你做更多的詹金斯设置,通过允许您配置规模詹金斯自动指定的Amazon EC2虚拟机作为奴隶向上或向下取决于数量的工作完成。
Spotinst插件使您能够获得这些资源雷竞技rabet官网100%正常运行时间和80%的折扣。
它是如何工作的

Spotinst詹金斯插件(1)自动天平向上和向下基于实例的工作队列的数量。节点是(2)提供跨多个实例类型和阿兹优化储蓄在保证可用性。的节点配置运行启动脚本(3)作为从节点连接到主,马上开始工作。
在AWS如何开始
1。生成一个Spotinst API访问令牌
登录到你的Spotinst控制台然后去设置- >个人访问令牌- >生成

一旦生成API访问令牌,复制它,并将其保存供以后使用在詹金斯控制台。

2。创建一个Elastigroup适当的启动脚本
与你的首选地区,创建一个Elastigroup AMI实例类型。在一般选项卡下先进的设置容量单位来个vCPU。

添加以下启动脚本:
# !/bin/bash install_deps () {log_info #安装deps“安装依赖”。包= $ 1美元包中包;做安装= $(美元包)not_found = $ (echo $ (expr指数“美元安装”“没有美元包”))如果(安装美元- z) & & (" $ not_found " = = " 0 ");然后log_info“安装包”美元如果[- f /etc/redhat-release] | | (- f /etc/system-release);然后yum安装- y美元包elif [- f /etc/arch-release];然后吃豆子安装- y美元包elif [- f /etc/gentoo-release];然后出现安装- y美元包elif [- f /etc/SuSE-release];然后zypp安装- y美元包elif [- f /etc/debian_version];然后apt-get安装- y美元包fi log_info“美元包成功安装”fi做}EC2_INSTANCE_ID = " $ (curl http://169.254.169.254/latest/meta-data/instance-id) " JENKINS_MASTER_IP="IP:PORT" # Install Java If not already installed install_deps "jre" # Get The Jenkins Slave JAR file curl http://${JENKINS_MASTER_IP}/jnlpJars/slave.jar --output /tmp/slave.jar # Run the Jenkins slave JAR java -jar /tmp/slave.jar -jnlpCredentials user:password/token -jnlpUrl http://${JENKINS_MASTER_IP}/computer/${EC2_INSTANCE_ID}/slave-agent.jnlp &
的jnlpCredentials国旗是用来验证詹金斯,通过用户名和密码或令牌(如GitHub访问令牌如果GitHub托管服务用于身份验证过程)。
注意:为获得最佳性能,我们推荐使用亚马逊标准AMI(基于CentOS的)。
3所示。更改默认的奴隶连接端口
奴隶——主连接是基于JNLP协议。默认情况下,奴隶们尝试连接在一个随机的JNLP端口。因此,需要重新配置防火墙规则以允许所有端口开放,确保成功通信从主人的奴隶。
配置一个固定的JNLP港口詹金斯的奴隶,导航到管理詹金斯> >全球安全> >代理JNLP代理并设置一个静态的TCP端口。然后,配置网络可用专门为这个端口。

4所示。安装詹金斯插件并添加Spotinst API令牌和Elastigroup ID
詹金斯登录到控制台,安装Spotinst插件从可用的插件列表中。
安装插件之后,重启詹金斯。
导航到詹金斯> >配置管理系统向下滚动到Spotinst部分并添加API的令牌在步骤1中生成的,和一个合适的帐户ID(将被用作一个全球帐户ID,以防没有指定帐户ID为每个云在下一步中添加)。
然后点击验证令牌确保标记是有效的。

一旦Spotinst标记集,向下滚动到“云”部分底部。点击添加一个新的云并选择所使用的云提供商连接到Spotinst帐户(可以多个云,每个指定它自己的Elastigroup和帐户id)。
现在应该有更多领域可供选择。更多信息在每个字段悬停在按钮右侧的每个字段的信息。指定Elastigroup ID在第2步中创建的Elastigroup,适当的帐户ID与Elastigroup和有关空闲的几分钟前终止确定Elastigroup应该等多久之前终止懒懒的实例。

配置说明
- 在步骤4,詹金斯Spotinst插件安装后必须重新启动。
- 之间的连接詹金斯的奴隶和主人是至关重要的,确保这个连接是正常工作。
- 每个实例执行人:默认情况下,每个奴隶的执行人数量(并行工作的数量,节点可以运行)位于个vCpu实例的数量。您可以通过设置覆盖这个配置实例类型的重量。您定义的每个实例类型Elastigroup,添加所需的执行人。
这是所有!从现在开始,詹金斯主会自动启动新的实例通过Spotinst API,并将终止他们未使用。
最好的问候,
Spotinst团队。