使用Microsoft Release Management持续交付

时间:2014-12-12 11:45:02

标签: ms-release-management

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

然而,当我进一步研究发布管理所具有的功能时,它提出的问题多于答案。

一些背景资料。

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

为了使事情变得简单,现在将有四个环境:1个开发,2个测试和1个接受。这四个环境总是在运行,所以我认为Release Management连接到这些服务器没有问题,我可以毫无问题地制作发布模板。

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

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

1 个答案:

答案 0 :(得分:0)

结论:发布管理目前没有本地,简单的方法来配置新VM并部署到它们。我自己也遇到了这个限制。你无法使用部署者来做到这一点。但是,你可以解决它。

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

  1. 我创建了一个Desired State Configuration脚本以及配置环境和安装我的软件所需的任何自定义DSC资源。这将被检入源代码控制并推送到构建代码,以便在部署时可用。
  2. 我创建了一个名为“Provision Environment”的自定义工具/操作,它采用了创建新VM所需的所有参数。
  3. 我创建了一个名为“Execute DSC script”的自定义工具,并在Component中为我的应用程序的二进制文件使用它。其中一个参数是部署脚本的路径。您可以通过将值$(PackageLocation)作为参数传递给组件来访问二进制文件/脚本的路径。
  4. 这不是世界上最漂亮的解决方案,但它具有功能性。