【问题标题】:In Azure DevOps Servvices, can we share a VM among different environment?在 Azure DevOps Services 中,我们可以在不同的环境之间共享一个虚拟机吗?
【发布时间】:2020-03-25 07:29:00
【问题描述】:

我目前有一个部署了多个应用程序的 DEV 服务器。 我想使用 Azure DevOps 管道自动部署这些应用程序,因此我现在正在寻找构建多阶段管道。

据我了解,我们现在应该使用环境的创建,而不是部署组。

但是,在项目中设置环境(指定 VM 资源)意味着执行 PowerShell 脚本,该脚本将为每个项目创建一个代理、一个 Windows 服务和一个“环境”部署组。 因此,如果我有一个包含 10 个项目的服务器,这将下载 10 次代理,在同一台服务器上安装 10 个 Windows 服务。

我了解并行化作业部署的兴趣,但这对我来说似乎有点矫枉过正。

我有什么遗漏吗? 我们可以为多个项目共享一个环境虚拟机资源(以及底层环境代理)吗?

谢谢!

【问题讨论】:

    标签: azure-devops


    【解决方案1】:

    我有什么遗漏吗?我们可以共享一个环境虚拟机吗 几个资源(以及底层环境代理) 项目?

    抱歉,目前不支持在不同环境之间共享虚拟机。

    您似乎有 10 个团队项目,这里有一些建议可能会有所帮助,具体取决于我们无法在环境之间共享 VM:

    1. 为每个项目指定资源,这意味着我们必须按照您上面提到的那样做 10 次。那么每个团队项目都应该有自己的 CI/CD 管道。(不是你最初想要的

    2. 使用来自一个团队项目的一个多阶段管道从十个项目中获取存储库,然后为它们执行 CI/CD 工作。这样,我们使用一个管道来构建和部署十个repos,因此我们只需要在当前项目中使用Environment即可。

      这样,我们只需要为当前项目指定一次VM资源。我们可以使用十个阶段或十个作业来部署十个项目。但这会使 yaml 文件复杂且难以维护。任何工作或阶段中的任何错误都可能使整个管道失败,这也不是一个好的工作流程。 (不推荐)。

    3. 您可以查看此博客:Sharing of Deployment Groups across projects。您可以考虑暂时使用经典 CI/CD 管道,以便您可以使用部署组,而不是环境。并且支持在不同的部署组之间共享一个虚拟机。

    由于目前不支持您想要的,我们必须使用临时解决方法。就像提到的博客一样:

    我们收到的一个重要反馈是,这仅部分解决了客户在多个应用程序之间共享其 IaaS 机器(部署目标)的情况。

    我同意支持在环境之间共享 VM 是个好主意,因此我建议您可以在我们的 User Voice forum 中发布功能请求 (Suggest a feaure) 以分享您的反馈。

    希望以上所有内容对您有所帮助。干杯!

    【讨论】:

    猜你喜欢
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 2016-02-10
    相关资源
    最近更新 更多