2

我想在一个解决方案中使用 RM DSC 部署三个项目:

  • Windows 服务
  • 网页界面
  • 和一个数据库项目

对于部署,我有三个 Azure 服务器:

  • 一个 SQL 框
  • 和两个应用服务器

目前我能够在所有三台服务器上成功部署所有三个项目,但是对于老板的一些新方向,我必须按如下方式部署我的项目:

  1. Windows 服务项目到所有三台服务器
  2. WebUI 到其中一个应用服务器和
  3. 将 DB 项目放入 SQL 框中。

我的最终目标是仅复制每个目标服务器上需要的文件。例如,我只想将 DB 文件保留在 DB 服务器中,类似地将 WebUI 文件保留在 App 服务器中。

4

1 回答 1

0

您可能想要结帐:continuous-deployment-using-dsc-with-minimal-change

基本上,您可以使用配置来选择“服务器”角色类型并为每个角色安装不同的包。但是,我发现为每个角色类型(也称为 Web 角色与 DB 角色)拥有一个 DSC 来封装功能(即使以一些重复为代价)更容易。

Web 上有一些用于 DB 安装/等的示例,以下是网站安装示例:DSC Web 安装

但是,我同意@Graham Smith 的观点,将部署与配置(虚拟机创建和配置)分开。我会将您的 DSC 重点放在配置的配置方面,并在您的整个流程中使用第二步来部署msdeployfluentmigrator for DB 之类的工具。

编辑:添加了在 Azure 上运行良好的文件上传选项(非天蓝色 vm 也可以遵循此模式)

我发现上传文件的一种方法是将所需文件包装在 DSC 资源中。例如,

  1. 创建包含要访问的文件的 DSC 资源。我创建了一个示例,其中包含我在此处用于安装的 Erlang
  2. 在 DSC 中导入模块 DSC 资源:Import-DscResource -ModuleName Erlang
  3. 确保 DSC 资源在您的模块路径中
  4. 使用 Publish-AzureVMDscConfiguration 创建 zip(将包含导入的 DSC 资源)。
  5. 您的 DSC 资源将位于模块路径中"$env:ProgramFiles\WindowsPowerShell\Modules\Erlang\otp_win32_17.5.exe"
于 2015-05-13T00:11:52.980 回答