【问题标题】:Automatic tool detection with Jenkins/Hudson?使用 Jenkins/Hudson 进行自动工具检测?
【发布时间】:2011-06-29 06:35:48
【问题描述】:

Jenkins/Hudson 中有哪些机制可以自动检测节点上安装的工具?

例如,.NET 框架、Visual Studio 版本、Setup-Builder 工具、已安装的脚本语言可执行文件等。

我目前正试图弄清楚 Jenkins 是否以及如何(以及是否有意义)可以自动检测我们必须在所有节点(Salves)上安装的工具。

由于我们的节点是 Windows 机器,由于路径不匹配 Windows 64 位与 32 位/XP 与 Windows 7/不同的语言版本,硬编码路径没有意义(恕我直言)。

另外,很多工具都需要安装,所以仅仅镜像文件也不是一个选项。

显然,我可以为我们的工具定义一组环境变量,并使用 Jenkins 中的这些变量。但我更喜欢使用/构建一些可以自动配置新节点/从属的东西。

您也可以将这个问题解读为:是否可以编写一个插件来自动检测 Windows 从属服务器上的“东西”并将其作为节点属性提供?(如果我从哪里开始?想这样做吗?)

【问题讨论】:

  • 好问题。 Kohsuke 写了一篇博文,可能会给你一些建议 (blog.cloudbees.com/2011/03/…)。
  • 您是否考虑过使用已经安装了您需要的所有工具的模板化虚拟机?
  • @adam - 虚拟机方法很有吸引力,但我们这里没有资源。
  • @Martin Xen Hypervisor 使您能够拥有几乎裸机的 vm 主机。编写从中心位置重新加载完全框架化的 vm 映像的脚本。这种技术通常用于计算集群,以使所有节点保持最新,所花费的资源不会超过已分配的铁,而且我认为会以更强大的方式解决您的问题。

标签: hudson build-automation jenkins nodes


【解决方案1】:

AFAIK,Jenkins 可以本地自动配置的唯一工具是 Java JDK、Ant 和 Maven。我不确定其他插件可以做什么。

您可能必须采用环境变量方式,或者您可以创建一个多配置作业,将您的工具安装到从属设备上(如果它们尚不存在)。这将假设您的工具可以进行静默安装,并且您可以指定安装目录(在所有平台上都相同)。

【讨论】:

  • 谢谢。我的意思不一定是开箱即用。你能评论我的编辑吗?有一个自定义插件吗?
【解决方案2】:

我选择了为所有节点设置一组通用环境变量的方法。 由于无论如何我都必须手动管理 Windows 节点上安装的内容——许多工具都有我需要在使用它们之前运行的安装程序——调整每个节点上的环境变量并不是什么大问题。 (我有一个小批量脚本,通过setx 设置所有内容。)

【讨论】:

    猜你喜欢
    • 2012-03-15
    • 1970-01-01
    • 2012-04-24
    • 2016-03-03
    • 2017-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多