0

我正在做一个毕业项目,我应该在我工作的公司内自动化部署周期。他们想要使用的工具是 Microsoft Release Management

但是,当我进一步研究 Release Management 的功能时,它提出的问题多于答案。

一些背景资料。

公司拥有的所有环境都将转移到数据中心,并将在虚拟机 (VMware) 上运行。他们可以使用工具vCloud导向器来创建和管理虚拟机。

为简单起见,现在将有四个环境:1 个开发环境、2 个测试环境和 1 个验收环境。四个环境一直在运行,所以我想发布管理连接到这些服务器没有问题,我可以毫无问题地制作发布模板。

现在是棘手的部分。同时对他们想要创建一个新 VM(使用 powershell 脚本,某种开发副本)的开发环境进行部署,并对这个环境进行相同的部署。此脚本需要与第三方工具或托管服务提供商提供的 REST API 进行通信。我知道脚本需要在发布模板的服务器组件中运行。所以我知道2个已知的解决方法。当我部署到开发人员时,我可以在我的发布模板中运行此脚本,或者我可以使用专用服务器来运行所有脚本,以创建新的 VM。

问题是我如何在不手动告诉发布管理有新服务器的情况下部署到这个新环境?这个过程需要完全自动化。

4

1 回答 1

0

底线:Release Management 目前没有一种本地、简单的方法来配置新的 VM 并将其部署到它们。我自己已经达到了这个限制。您将无法使用部署程序来做到这一点。但是,您可以解决它。

我采用的方法是使用 Desired State Configuration 并将“跳板”服务器 (rm-dsc-launcher) 与我编写的自定义 PowerShell 脚本结合使用。就我而言,它是 Azure。在您的情况下,它是 VMWare。不管:

  1. 我创建了一个 Desired State Configuration 脚本和配置我的环境和安装我的软件所需的任何自定义 DSC 资源。这被检查到源代码控制并推送到构建放置,以便在部署时可用。
  2. 我创建了一个名为“Provision Environment”的自定义工具/操作,它采用所有必要的参数来创建一个新的 VM。
  3. 我创建了一个名为“执行 DSC 脚本”的自定义工具,并在我的应用程序二进制文件的组件中使用它。其中一个参数是部署脚本的路径。$(PackageLocation)您可以通过将值作为参数传递给组件来访问二进制文件/脚本的路径。

它不是世界上最漂亮的解决方案,但它很实用。

于 2014-12-12T13:36:04.117 回答