重要
虽然许多 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。
使用 SSH 工具登录到虚拟机。
ssh username@123.123.123.123
使用 apt 安装 JDK。 还可以使用其他包管理器工具(如 yum 或 pacman)进行安装。
sudo apt-get install -y default-jdk
安装完成后,运行
java -version
以验证 Java 环境。 输出将包括与 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),则路径将相对于 Launch 方法提供的工作目录。标签:标签用于将语义上相关的代理分组到一个逻辑组中。 例如,可以为运行 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
名称。选择 Freestyle 项目。
选择“确定”。
在“常规”选项卡中,选择“限制项目可在何处运行并键入
ubuntu
标签表达式”。 会看到一条消息,确认标签由上一步中创建的云配置提供。在 “源代码管理 ”选项卡中,选择 “Git ”,并将以下 URL 添加到 “存储库 URL ”字段中:
https://github.com/spring-projects/spring-petclinic.git
在生成选项卡中,选择添加生成步骤,然后选择调用顶级 Maven 目标。 在
package
”字段中输入。选择“保存”。
在 Azure VM 代理上生成新作业
选择在上一步中创建的任务。
选择“ 立即生成”。 新的构建已排队,但在 Azure 订阅中创建一个代理 VM 之前不会启动。
生成完成后,转到 控制台输出。 你会看到生成是在 Azure 代理上远程执行的。