简介
Jenkins 可以在不同的节点上运行构建任务。标签(Label)用于描述节点的功能,例如 linux-build,作业可以在调度前要求匹配特定的标签。Jenkins 还可以存储工具安装路径(例如 Git),这样作业和插件就可以引用已命名的工具,而无需依赖硬编码的路径。
在本实验中,你将使用 Jenkins 控制面板查看内置节点、添加节点标签、配置本地 Git 工具、创建一个受标签限制的自由风格作业,并确认构建输出。
打开内置节点页面
在此步骤中,你将在控制面板中找到 Jenkins 内置节点。节点是 Jenkins 执行构建任务的地方。本实验使用内置节点,因为它在 LabEx Jenkins 控制器中已处于在线状态。
打开桌面界面。Firefox 会自动打开 Jenkins。如果没有打开,请访问 http://localhost:8080。
在 Jenkins 控制面板中:
点击左侧边栏的 Manage Jenkins,然后点击 Nodes。打开名为 Built-In Node 的节点。
节点页面应显示内置节点的状态以及诸如 Configure 和 Build History 等导航选项。

在终端中运行以下命令,记录内置节点页面是否可访问:
curl -fsS http://localhost:8080/computer/%28built-in%29/ | grep -o 'Built-In Node' | head -1 | tee /home/labex/project/built-in-node-page.txt
你应该看到:
Built-In Node
为内置节点添加标签
在此步骤中,你将为内置节点添加 linux-build 标签。标签是一种调度标记。要求 linux-build 的作业只能在拥有该标签的节点上运行。
在 Built-In Node 页面上,点击 Configure。
找到 Labels 字段并输入:
linux-build
点击 Save。
保存后,Jenkins 会返回到内置节点页面。页面应显示 linux-build 标签。

配置本地 Git 工具
在此步骤中,你将注册一个名为 Local Git 的 Jenkins Git 工具。工具配置允许 Jenkins 引用已命名的安装路径,而不是猜测使用哪个可执行文件。
在 Jenkins 控制面板中:
点击 Manage Jenkins,然后点击 Tools。
滚动到 Git installations 部分。如果已经存在 Git 安装配置,请更新第一个。如果该部分没有安装配置,请点击 Add Git。
使用以下值填写 Git 安装信息:
Name:Local GitPath to Git executable:git
点击 Save。
Jenkins 会将此工具定义存储在其控制器配置中。

运行以下命令以检查已保存的 Git 工具配置:
docker exec jenkins sh -lc "grep -n -E '<name>Local Git</name>|<home>git</home>' /var/jenkins_home/hudson.plugins.git.GitTool.xml" | tee /home/labex/project/git-tool-lines.txt
输出应包含工具名称和可执行文件路径:
...<name>Local Git</name>
...<home>git</home>
创建受标签限制的作业
在此步骤中,你将创建一个名为 labeled-tool-demo 的自由风格作业。该作业将限制在拥有 linux-build 标签的节点上运行,因此 Jenkins 必须将其调度到带有该标签的内置节点上。
在 Jenkins 控制面板中:
点击 New Item,输入 labeled-tool-demo,选择 Freestyle project,然后点击 OK。
在配置页面上:
勾选 Restrict where this project can be run。在 Label Expression 中输入:
linux-build
滚动到 Build Steps,点击 Add build step,然后选择 Execute shell。
输入以下 shell 脚本:
echo "Running on label: linux-build"
git --version
echo "Local Git is available to this build"
点击 Save。
保存后应跳转到作业页面。

运行以下命令以记录重要的已保存作业设置:
docker exec jenkins sh -lc "grep -n -E '<assignedNode>linux-build</assignedNode>|Running on label: linux-build|git --version' /var/jenkins_home/jobs/labeled-tool-demo/config.xml" | tee /home/labex/project/labeled-job-config.txt
运行带标签的作业
在此步骤中,你将运行该作业并读取控制台输出。这证明了 Jenkins 接受了标签限制,并且构建任务可以在配置的环境中运行 Git。
在 labeled-tool-demo 作业页面上,点击 Build Now。
当构建 #1 出现在构建历史中时,打开它并点击 Console Output。控制台应显示标签消息、git version 行以及 Finished: SUCCESS。

在终端中运行以下命令,保存相同的控制台证据以供验证:
curl -fsS http://localhost:8080/job/labeled-tool-demo/1/consoleText | grep -E 'Running on label|git version|Finished: SUCCESS' | tee /home/labex/project/labeled-job-console.txt
你应该看到如下输出:
Running on label: linux-build
git version ...
Finished: SUCCESS
总结
你查看了 Jenkins 内置节点,从控制面板添加了 linux-build 标签,配置了名为 Local Git 的本地工具,创建了一个受标签限制的自由风格作业,并验证了构建输出是否成功。