Jenkins 入门:使用 docker 启动代理
这篇文章将引导你使用 docker 启动一个 Jenkins 代理来运行构建,接下来我们将在 docker 容器中运行 Jenkins 代理。本文假设我们已经运行了 Jenkins,所以先打开 Jenkins 主页 http://localhost:8080,然后按照以下步骤操作:单击左侧的Manage Jenkins 。在 System Configuration 部分下,单击 Manage N
这篇文章将引导你使用 docker 启动一个 Jenkins 代理来运行构建,接下来我们将在 docker 容器中运行 Jenkins 代理。
本文假设我们已经运行了 Jenkins,所以先打开 Jenkins 主页 http://localhost:8080
,然后按照以下步骤操作:
- 单击左侧的Manage Jenkins 。
- 在 System Configuration 部分下,单击 Manage Nodes and Clouds。
- 在左侧,单击 New Node。
- 起个名字
- 这里我起名叫
smith
。 - 这个名字在后面会用到所以我们现在需要记住它。
- 这里我起名叫
- 单击 Permenant Agent 单选框。
- 单击 OK。
现在我们将进一步配置代理,你可以尝试不同的设置;但为了让我们保持一致,请暂时按照以下步骤操作。
- 对于 Description 字段,请填写一些描述性的内容说明它的用途。
- 示例里我输入了
This is agent smith
,你可以输入任何你需要的描述内容。
- 示例里我输入了
- 将 Number of executors 的数量设置为
1
。- Executors 定义了一个代理可以同时运行多少个 Jenkins Job。
- 这个需要根据节点资源来配置, CPU/内存越多可以运行的并发作业就越多。
- 在 Remote root directory 字段中输入
/home/jenkins/agent/
。 - Label 允许我们将特定的工作与特定的代理联系起来。
- 例如拥有运行特定软件(如 iOS 版本)的 Mac、Windows 和 Linux 代理。
- 目前,这对我们来说不重要,因此我们将其留空。
- 继续并单击 Save。
完成上述操作并单击 Save 后,你将看到代理列表。如你所见,列出了 smith
。
点击smith
,我们可以看到连接细节。
你应该能够看到如下文本:
java -jar agent.jar -jnlpUrl http://localhost:8080/computer/smith/jenkins-agent.jnlp -secret 91af70f19b975b97eef81d42f624f1c44bl1d216b380905c9c27531d2259d823 -workDir "/home/jenkins/agent/"
复制-secret
选项中的值。在这种情况下,它是91af70f19b975b97eef81d42f624f1c44bl1d216b380905c9c27531d2259d823
,但你的秘密会有所不同。
在终端中,现在运行以下命令,替换
<secret-from-above>
替换成-secret
选项中的值。<agent-name-from-above>
替换成你输入的代理名称。http://jenkins-controller:8080
替换成你自己的链接地址。
docker run --rm \
-eJENKINS_SECRET=<secret-from-above> \
-eJENKINS_URL=http://jenkins-controller:8080 \
-eJENKINS_AGENT_NAME=<agent-name-from-above> \
--network jenkins \
--init \
-it \
jenkins/inbound-agent:jdk11
这会将 jenkins/inbound-agent
图像下拉到你的机器上并运行起来。所有不同类型的代理都可以在Docker Hub上找到。
现在让我们回到浏览器中的 Jenkins。你现在应该smith
在左侧看到一个代理。
如你所见,我们现在有两个构建执行器:master
和smith
。
下一步,我们不想在控制器容器 ( master
) 上运行任何构建,所以接下来我们配置 Jenkins 阻止构建在 master
运行。
- 单击左侧的 Manage Jenkins 。
- 在 System Configuration 部分下,单击 Configure System。
- 滚动到 # of executors 并将值从2更改为0。
- 单击 Save。
当 Jenkins 现在再次加载完成时,你将只看到smith
代理。
我们现在试着运行上一篇文章中的 hello-world 作业,看看它如何在代理smith
内部执行。
- 单击列表中的 hello-world 作业。
- 单击左侧的 Build Now。
- 稍等片刻,构建作业将出现在构建历史中。
- 单击蓝色的那个球,可以看到 “Hello World” 的输出。
更多推荐
所有评论(0)