教程:使用 Azure 中运行的 VM 缩放 Jenkins 部署
重要
许多 Azure 服务都有 Jenkins 插件。其中一些插件将从 2024 年 2 月 29 日开始不受支持。 当前推荐通过 Azure CLI 将 Jenkins 与 Azure 服务集成。 有关详细信息,请参阅适用于 Azure 的 Jenkins 插件一文。
本教程介绍如何在 Azure 中创建 Linux 虚拟机,以及如何将 VM 作为工作节点添加到 Jenkins。
在本教程中,你将执行下列操作:
- 创建代理计算机
- 将代理添加到 Jenkins
- 创建新的 Jenkins 自由风格作业
- 在 Azure VM 代理上运行作业
先决条件
- Jenkins 安装:如果无权访问 Jenkins 安装, 请使用 Azure CLI 配置 Jenkins
配置代理虚拟机
使用 az group create 创建 Azure 资源组。
az group create --name <resource_group> --location <location>
使用 az vm create 创建虚拟机。
az vm create --resource-group <resource-group> --name <vm_name> --image UbuntuLTS --admin-username azureuser --admin-password "<password>"
要点:
- 还可通过命令
--ssh-key-value <ssh_path>
上传 ssh 密钥。
- 还可通过命令
安装 JDK。
配置 Jenkins URL
如果使用 JNLP,则需要配置 Jenkins URL。
从菜单中选择“管理 Jenkins”。
在“系统配置”下,选择“配置系统”。
验证 Jenkins URL 是否设置为 Jenkins 安装的 HTTP 地址 -
http://<your_host>.<your_domain>:8080/
。选择“保存”。
将代理添加到 Jenkins
从菜单中选择“管理 Jenkins”。
在“系统配置”下,选择“管理节点和云”。
从菜单中选择“新节点”。
输入节点名称的值。
选择“永久代理”。
选择“确定”。
为以下字段指定值:
名称:指定用于标识新 Jenkins 安装中的代理的唯一名称。 此值可以与代理主机名不同。 不过,将这两个值设为相同很便利。 可在名称值中使用以下列表中的任何特殊字符:
?*/\%!@#$^&|<>[]:;
。远程根目录:代理需要有一个专用于 Jenkins 的目录。 指定代理上此目录的路径。 最好使用绝对路径,例如
/home/azureuser/work
或c:\jenkins
。 这应该是代理计算机的本地路径。 不需要在主服务器中显示此路径。 如果使用相对路径(如 ./jenkins-agent),则该路径将相对于启动方法提供的工作目录。标签:标签用于将语义上相关的代理分组到一个逻辑组中。 例如,可为运行 Linux Ubuntu 发行版的所有代理定义
UBUNTU
标签。启动方法:有两个选项可用于启动远程 Jenkins 节点: 通过 SSH 启动代理,并通过 在主节点上执行命令启动代理:
通过 SSH 启动代理:指定以下字段的值:
主机:VM 公共 IP 地址或域名。 例如,
123.123.123.123
或example.com
凭据:选择要用于登录到远程主机的凭据。 还可选择“添加”按钮来定义新的凭据,然后在凭据创建后将其选中。
主机密钥验证策略:控制 Jenkins 在连接时如何验证远程主机提供的 SSH 密钥。
通过在主服务器上执行命令来启动代理:
从中下载 。
agent.jar
https://<your_jenkins_host_name>/jnlpJars/agent.jar
例如https://localhost:8443/jnlpJars/agent.jar
。将
agent.jar
上传到虚拟机使用命令
ssh <node_host> java -jar <remote_agentjar_path>
启动 Jenkins。 例如ssh azureuser@99.99.999.9 java -jar /home/azureuser/agent.jar
。
选择“保存”。
定义配置后,Jenkins 会将虚拟机添加为新的工作节点。
在 Jenkins 中创建作业
从菜单中选择“新建项”。
对于名称,请输入
demoproject1
。选择“自由风格项目”。
选择“确定”。
在“常规”选项卡中,选择“限制可运行项目的位置”,并在“标签表达式”中键入
ubuntu
。 将看到一条消息,确认标签由上一步创建的云配置提供。在“源代码管理”选项卡中,选择“Git”,然后将以下 URL 添加到“存储库 URL”字段:
https://github.com/spring-projects/spring-petclinic.git
在“生成”选项卡中,选择“添加生成步骤”,再选择“调用顶级 Maven 目标”。 在“目标”字段中输入
package
。选择“保存”。
在 Azure VM 代理上生成新作业
选择上一步中创建的作业。
选择“立即生成”。 新的生成会加入队列但不会启动,除非已在 Azure 订阅中创建代理 VM。
生成完成后,转到“控制台输出”。 可看到该生成在 Azure 代理上远程执行。