教程:使用 Azure 容器实例作为 Jenkins 生成代理

重要

许多 Azure 服务都有 Jenkins 插件。其中一些插件将从 2024 年 2 月 29 日开始不受支持。 当前推荐通过 Azure CLI 将 Jenkins 与 Azure 服务集成。 有关详细信息,请参阅适用于 Azure 的 Jenkins 插件一文。

Azure 容器实例 (ACI) 提供按需、可迸发的隔离环境用于运行容器化工作负荷。 这些特性使得 ACI 成了大规模运行 Jenkins 生成作业的极佳平台。 本文介绍如何部署 ACI,以及如何将其添加为 Jenkins 控制器的永久生成代理。

有关 Azure 容器实例的详细信息,请参阅关于 Azure 容器实例

先决条件

准备 Jenkins 控制器

  1. 浏览到 Jenkins 门户。

  2. 从菜单中选择“管理 Jenkins”

  3. 在“系统配置”下,选择“配置系统”

  4. 验证 Jenkins URL 是否设置为 Jenkins 安装的 HTTP 地址 - http://<your_host>.<your_domain>:8080/

  5. 从菜单中选择“管理 Jenkins”

  6. 在“安全性”下选择“配置全局安全性”

  7. 在“代理”下,指定固定端口并为环境输入适当的端口号

  8. 选择“保存”。

创建 Jenkins 工作代理

  1. 浏览到 Jenkins 门户。

  2. 从菜单中选择“管理 Jenkins”

  3. 在“系统配置”下,选择“管理节点和云”

  4. 从菜单中选择“新节点”

  5. 输入节点名称的值

  6. 选择“永久代理”

  7. 选择“确定”

  8. 为远程根目录输入一个值。 例如: /home/jenkins/work

  9. 添加标签(标签用于将多个代理分组到一个逻辑组中。标签的一个示例是 linux,用于对 Linux 代理进行分组),其值为 linux

  10. 将启动方法设置为“通过连接到主服务器来启动代理”

  11. 验证是否已指定或输入所有必填字段。

  12. 选择“保存”。

  13. 在“代理状态”页面上,应会看到 JENKINS_SECRETAGENT_NAME。 以下屏幕截图显示了如何识别值。 创建 Azure 容器实例时需要这两个值。

使用 CLI 创建 Azure 容器实例

  1. 使用 az group create 创建 Azure 资源组。

    az group create --name my-resourcegroup --location westus
    
  2. 使用 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 控制器服务器。

  3. 返回到 Jenkins 仪表板并检查代理状态。

    注意

    Jenkins 代理通过端口 5000 连接到控制器,确保允许该端口入站连接到 Jenkins 控制器。

创建生成作业

现在,创建 Jenkins 生成作业来演示 Azure 容器实例中的 Jenkins 生成。

  1. 选择“新建项”,为生成项目命名(例如 aci-demo),选择“自由风格项目”,然后选择“确定”

  2. 在“常规”下,确保已选择“限制可以运行此项目的位置”。 为标签表达式输入 linux。 此配置可确保此生成作业在 ACI 云中运行。

  3. 在“生成”下,选择“添加生成步骤”并选择“执行 Shell”。 输入 echo "aci-demo" 作为命令。

  4. 选择“保存”。

运行生成作业

若要测试生成作业并观察 Azure 容器实例,请手动启动生成。

  1. 选择“立即生成”启动生成作业。 作业启动后,你会看到作业状态。

  2. 在“生成历史记录”中单击生成“#1”

  3. 选择“控制台输出”查看生成输出

后续步骤