Jenkins - CI 与虚拟机
Jenkins - CI with Virtual Machines
目前,我的框架代码是用 Java/Maven 编写的,我想 运行 使用 Selenium 网格和 Jenkins 编写此代码。我已将 Jenkins 配置为从 SVN 中提取最新代码,并将 Jenkins 设置为充当集线器。
我想知道如何让 Jenkins 管理虚拟机?例如,如何让 Jenkins 使用 Windows 7 或 10 以及我需要测试的任何浏览器启动虚拟机,以及如何让虚拟机将自己声明为节点?
我是手动配置虚拟 machines/nodes 并让它们保持活动状态,还是有办法使用 Jenkins 自动执行此过程?
Jenkins 有许多虚拟机插件,但它们倾向于与每种不同的虚拟机技术(或 API)保持一致。例如这里是 OpenStack VM 插件。
这些插件中的每一个在功能和配置上都略有不同,但它们大多都提供相似的功能。他们应该能够在 Job 之前启动 VM,并在之后停止它。
我建议您扫描 Jenkins Plugins 页面以找到适用于您正在使用(或计划使用)的任何虚拟机技术的插件。
请注意,Jenkins 管理构建的某些方面(Java 库等),但在管理方面有很多重叠 space(Maven、Jenkins 等)。有些人使用专用管理工具来管理 VM 配置(如 SaltStack、Puppet 或 Chef)。如果这是你的成长方向,请记住,你必须在作业的工作流程中包含一项检查,以查看管理工具是否报告 VM 是最新的,因为它很可能会在大多数情况下关闭时间(因此未更新)。
目前,我的框架代码是用 Java/Maven 编写的,我想 运行 使用 Selenium 网格和 Jenkins 编写此代码。我已将 Jenkins 配置为从 SVN 中提取最新代码,并将 Jenkins 设置为充当集线器。
我想知道如何让 Jenkins 管理虚拟机?例如,如何让 Jenkins 使用 Windows 7 或 10 以及我需要测试的任何浏览器启动虚拟机,以及如何让虚拟机将自己声明为节点?
我是手动配置虚拟 machines/nodes 并让它们保持活动状态,还是有办法使用 Jenkins 自动执行此过程?
Jenkins 有许多虚拟机插件,但它们倾向于与每种不同的虚拟机技术(或 API)保持一致。例如这里是 OpenStack VM 插件。
这些插件中的每一个在功能和配置上都略有不同,但它们大多都提供相似的功能。他们应该能够在 Job 之前启动 VM,并在之后停止它。
我建议您扫描 Jenkins Plugins 页面以找到适用于您正在使用(或计划使用)的任何虚拟机技术的插件。
请注意,Jenkins 管理构建的某些方面(Java 库等),但在管理方面有很多重叠 space(Maven、Jenkins 等)。有些人使用专用管理工具来管理 VM 配置(如 SaltStack、Puppet 或 Chef)。如果这是你的成长方向,请记住,你必须在作业的工作流程中包含一项检查,以查看管理工具是否报告 VM 是最新的,因为它很可能会在大多数情况下关闭时间(因此未更新)。