教程:使用 Azure 容器实例作为 Jenkins 生成代理
重要
许多 Azure 服务都有 Jenkins 插件。其中一些插件将从 2024 年 2 月 29 日开始不受支持。 当前推荐通过 Azure CLI 将 Jenkins 与 Azure 服务集成。 有关详细信息,请参阅适用于 Azure 的 Jenkins 插件一文。
Azure 容器实例 (ACI) 提供按需、可迸发的隔离环境用于运行容器化工作负荷。 这些特性使得 ACI 成了大规模运行 Jenkins 生成作业的极佳平台。 本文介绍如何部署 ACI,以及如何将其添加为 Jenkins 控制器的永久生成代理。
有关 Azure 容器实例的详细信息,请参阅关于 Azure 容器实例。
先决条件
- Azure 订阅:如果还没有 Azure 订阅,可以在开始前创建一个免费 Azure 帐户。
- Jenkins 服务器:如果未安装 Jenkins 服务器,请在 Azure 上创建 Jenkins 服务器。
准备 Jenkins 控制器
浏览到 Jenkins 门户。
从菜单中选择“管理 Jenkins”。
在“系统配置”下,选择“配置系统”。
验证 Jenkins URL 是否设置为 Jenkins 安装的 HTTP 地址 -
http://<your_host>.<your_domain>:8080/
。从菜单中选择“管理 Jenkins”。
在“安全性”下选择“配置全局安全性”。
在“代理”下,指定固定端口并为环境输入适当的端口号。
选择“保存”。
创建 Jenkins 工作代理
浏览到 Jenkins 门户。
从菜单中选择“管理 Jenkins”。
在“系统配置”下,选择“管理节点和云”。
从菜单中选择“新节点”。
输入节点名称的值。
选择“永久代理”。
选择“确定”。
为远程根目录输入一个值。 例如:
/home/jenkins/work
添加标签(标签用于将多个代理分组到一个逻辑组中。标签的一个示例是
linux
,用于对 Linux 代理进行分组),其值为linux
。将启动方法设置为“通过连接到主服务器来启动代理”。
验证是否已指定或输入所有必填字段。
选择“保存”。
在“代理状态”页面上,应会看到
JENKINS_SECRET
和AGENT_NAME
。 以下屏幕截图显示了如何识别值。 创建 Azure 容器实例时需要这两个值。
使用 CLI 创建 Azure 容器实例
使用 az group create 创建 Azure 资源组。
az group create --name my-resourcegroup --location westus
使用 az container create 创建 Azure 容器实例。 将占位符替换创建工作代理时获取的值。
az container create \ --name my-dock \ --resource-group my-resourcegroup \ --ip-address Public --image jenkins/inbound-agent:latest \ --os-type linux \ --ports 80 \ --command-line "jenkins-agent -url http://jenkinsserver:port <JENKINS_SECRET> <AGENT_NAME>"
将
http://jenkinsserver:port
、<JENKINS_SECRET>
和<AGENT_NAME>
替换为 Jenkins 控制器和代理信息。 容器启动后,它会自动连接到 Jenkins 控制器服务器。返回到 Jenkins 仪表板并检查代理状态。
注意
Jenkins 代理通过端口
5000
连接到控制器,确保允许该端口入站连接到 Jenkins 控制器。
创建生成作业
现在,创建 Jenkins 生成作业来演示 Azure 容器实例中的 Jenkins 生成。
选择“新建项”,为生成项目命名(例如 aci-demo),选择“自由风格项目”,然后选择“确定”。
在“常规”下,确保已选择“限制可以运行此项目的位置”。 为标签表达式输入 linux。 此配置可确保此生成作业在 ACI 云中运行。
在“生成”下,选择“添加生成步骤”并选择“执行 Shell”。 输入
echo "aci-demo"
作为命令。选择“保存”。
运行生成作业
若要测试生成作业并观察 Azure 容器实例,请手动启动生成。
选择“立即生成”启动生成作业。 作业启动后,你会看到作业状态。
在“生成历史记录”中单击生成“#1”。
选择“控制台输出”查看生成输出。