Visual Studio 和发布经理
Visual Studio and Release Manager
我一直在研究 Visual Studio 和 Microsoft Release Manager。我发现了一些我没有预料到的行为,我希望有人能够证实这些(以防我弄错了方向)。
我的目标是:
- 在 Visual Studio 在线托管我的代码。
- 使用部署代理将所述代码部署到本地或 Azure 托管的 VM。
我的第一次尝试;使用作为 Visual Studio Online 的一部分提供的 Release Manager 服务。但是我发现我无法使用部署在本地(或 Azure VM 中)的代理连接到 Release Manager Online。
我后来在 https://www.visualstudio.com/en-us/get-started/release/manage-your-release-vs
找到了这篇文章
You have the following options for managing your releases:
Using Release Management as a service on Visual Studio Online: You
need a Visual Studio Online account. You cannot use Chef and you can
deploy only to vNext environments based on Azure IaaS services
Using an on-premises server: You need to install Release Management
Server; do that here.
这似乎表明 Visual Studio Online Release Manager 不能使用代理 - 这是否正确?
假设这是正确的,我的第二次尝试是在本地安装 Release Manager(可以说,它实际上是在 Azure VM 中)。
我从 https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs#d-release-management 安装了最新的 RM 版本(服务器、客户端、代理)。具体来说,Visual Studio 2013 年更新 4 (12.0.31101.0) 的发布管理。
但是我发现我无法将本地发布管理器连接到 Visual Studio 在线。错误消息指出我必须以 'domain\username' 格式提供用户名 - 这与在线 'username@domain.com' 格式不匹配。
这似乎表明 Release Manager 的本地安装无法连接到 Visual Studio 在线 - 这是否正确?
谢谢,
好的,这里有几块拼图:
- Release Management 客户端必须在 Update 4 上(或更高版本,当 RM 2015 在今年晚些时候发布时)。
- 如果您使用 Visual Studio 在线,本地发布管理 无法 与之对话。这是一个奇怪的限制,但确实如此。您可以将 RM 客户端连接到 VSO 中的 RM 服务,仅此而已。
- VSO 中的 RM 服务不支持部署代理。它仅支持 "vNext" 发布模板,这些模板通过 PowerShell 或 DSC 脚本运行以执行部署。
遗憾的是,代理很快就会被弃用,取而代之的是所谓的 "agentless" 或 "vNext" 部署。微软目前正在彻底改造发布管理部分,下一个版本(将在 TFS 2015 Update 1 中发布)将完全不支持代理。
如果您想将本地 RM 服务器与 VSO 一起使用,则必须在没有 TFS 集成的情况下使用 RM。仍然可以获得大部分的持续交付功能,只是需要多跳几圈。
- 您必须将组件设置为 "builds externally" 并使用本地构建服务器
- 您在 Azure 中的 RM 部署代理(显然)必须能够与您的 RM 服务器通信。这可能需要各种防火墙技巧,但这是与您的网络人员进行的对话。
- 如果您想进行持续交付(构建触发发布),您必须查看 ReleaseManagementBuild.exe 文件(它是 RM 客户端的一部分)。该工具负责作为构建的一部分启动发布。 "Release" 构建过程模板假定 TFS 集成,但 ReleaseManagementBuild.exe 应用程序具有 "package" 模式,您可以在其中指定要发布的 UNC 路径。这可以让您避免没有直接的 TFS 集成。可以对构建过程模板进行一些修改以利用这一点。
我一直在研究 Visual Studio 和 Microsoft Release Manager。我发现了一些我没有预料到的行为,我希望有人能够证实这些(以防我弄错了方向)。
我的目标是:
- 在 Visual Studio 在线托管我的代码。
- 使用部署代理将所述代码部署到本地或 Azure 托管的 VM。
我的第一次尝试;使用作为 Visual Studio Online 的一部分提供的 Release Manager 服务。但是我发现我无法使用部署在本地(或 Azure VM 中)的代理连接到 Release Manager Online。
我后来在 https://www.visualstudio.com/en-us/get-started/release/manage-your-release-vs
找到了这篇文章You have the following options for managing your releases:
Using Release Management as a service on Visual Studio Online: You need a Visual Studio Online account. You cannot use Chef and you can deploy only to vNext environments based on Azure IaaS services
Using an on-premises server: You need to install Release Management Server; do that here.
这似乎表明 Visual Studio Online Release Manager 不能使用代理 - 这是否正确?
假设这是正确的,我的第二次尝试是在本地安装 Release Manager(可以说,它实际上是在 Azure VM 中)。
我从 https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs#d-release-management 安装了最新的 RM 版本(服务器、客户端、代理)。具体来说,Visual Studio 2013 年更新 4 (12.0.31101.0) 的发布管理。
但是我发现我无法将本地发布管理器连接到 Visual Studio 在线。错误消息指出我必须以 'domain\username' 格式提供用户名 - 这与在线 'username@domain.com' 格式不匹配。
这似乎表明 Release Manager 的本地安装无法连接到 Visual Studio 在线 - 这是否正确?
谢谢,
好的,这里有几块拼图:
- Release Management 客户端必须在 Update 4 上(或更高版本,当 RM 2015 在今年晚些时候发布时)。
- 如果您使用 Visual Studio 在线,本地发布管理 无法 与之对话。这是一个奇怪的限制,但确实如此。您可以将 RM 客户端连接到 VSO 中的 RM 服务,仅此而已。
- VSO 中的 RM 服务不支持部署代理。它仅支持 "vNext" 发布模板,这些模板通过 PowerShell 或 DSC 脚本运行以执行部署。
遗憾的是,代理很快就会被弃用,取而代之的是所谓的 "agentless" 或 "vNext" 部署。微软目前正在彻底改造发布管理部分,下一个版本(将在 TFS 2015 Update 1 中发布)将完全不支持代理。
如果您想将本地 RM 服务器与 VSO 一起使用,则必须在没有 TFS 集成的情况下使用 RM。仍然可以获得大部分的持续交付功能,只是需要多跳几圈。
- 您必须将组件设置为 "builds externally" 并使用本地构建服务器
- 您在 Azure 中的 RM 部署代理(显然)必须能够与您的 RM 服务器通信。这可能需要各种防火墙技巧,但这是与您的网络人员进行的对话。
- 如果您想进行持续交付(构建触发发布),您必须查看 ReleaseManagementBuild.exe 文件(它是 RM 客户端的一部分)。该工具负责作为构建的一部分启动发布。 "Release" 构建过程模板假定 TFS 集成,但 ReleaseManagementBuild.exe 应用程序具有 "package" 模式,您可以在其中指定要发布的 UNC 路径。这可以让您避免没有直接的 TFS 集成。可以对构建过程模板进行一些修改以利用这一点。