我可以创建一个新的 Jenkins 执行器节点或向现有节点提供用户/密码吗?

问题描述 投票:0回答:1

Jenkins 版本为 2.414.1。

用户将使用其 LDAP 凭据登录 Jenkins,并手动启动(构建)在内置(主)中运行的管道作业。

我想在远程 Linux 主机中执行一个(或全部)管道阶段。我可以使用管道即时构建一个 Jenkins 节点,而不是预先定义 Jenkins 节点吗?或者我可以重用预定义节点,但通过提供用户凭据(用户范围)以便节点可以作为用户进行 SSH?

jenkins jenkins-pipeline jenkins-job-dsl
1个回答
0
投票

我可以使用管道即时构建一个节点,而不是预先定义 Jenkins 节点吗?

是和不是。

如果您有 Kubernetes 集群,您可以设置 Kubernetes 插件。它可以根据需要启动代理 Pod - 可能是最接近您想要的东西。

如果您不使用 Kubernetes,管道需要执行一些自由代理。 因此,理论上,您可以首先在内置控制器节点上运行它,运行一些 Groovy 脚本来创建具有特定标签的代理,然后将该标签用于其余的管道阶段。但这至少意味着以下几点:

  • 您应该定义代理的创建位置和方式(例如节点名称、SSH 密钥、准备所有设置自动化);
  • 您必须批准从用户控制的管道执行具有潜在危险的 Groovy 方法签名;
  • 创建代理是一项耗时的任务。当然,您可以使用可以在几分钟内运行的预构建虚拟机映像,但这意味着您已经拥有一些高度自动化以及 VMware 或其他虚拟机管理程序之类的东西;
  • 允许用户立即访问构建节点会导致用户交互带来的不一致和配置漂移。它基本上违反了行业标准(请参阅基础设施/配置即代码)。

鉴于上面的列表,如果您真的想这样做,我建议您再考虑一下。如果您准备好使用基于虚拟机的代理并围绕它构建自动化,那么将其与管道本身耦合几乎没有任何意义。相反,只需创建一个具有严格访问策略但可供所有用户使用的标准化构建代理池。

话虽如此,为了实现构建的最大安全性和可重复性,请考虑使用 Docker 并在容器中运行阶段和/或整个管道。

© www.soinside.com 2019 - 2024. All rights reserved.