【问题标题】:How to ensure deployments are audited in Visual Studio Team Services?如何确保在 Visual Studio Team Services 中审核部署?
【发布时间】:2017-08-31 15:25:52
【问题描述】:

企业环境中的部署必须经过审核,这意味着生产环境中的部署必须提前获得批准,并且批准的环境必须经过审核 被记录下来。

我正在寻找一种解决方案,如何确保在 Visual Studio Team Services 中审核每个部署,而不会影响工具的功能和灵活性。

理想的解决方案可以让专门的项目团队成员使用必要的任务和设置来定义发布或构建模板。但是,在可以执行构建或发布模板之前,会运行验证。验证可以检查批准、定义的目标环境和其他几个可以帮助确定部署是预先批准还是必须被拒绝的迹象。

VSTS 的构建和发布模板的安全方案具有一定的灵活性,但它们不能提供足够的控制。实际上,由于部署任务可用于构建模板,因此发布管理批准功能并不能保证部署已提前获得批准,因为它可以从简单的构建计划中执行。

如果可以使服务挂钩同步,则可以采用一种方法。每次构建和发布之前都会触发事件,并且在事件有效负载中将提供所有详细信息。分析将在有效负载上执行,并根据结果让构建或发布继续或停止。但是,服务挂钩是异步的,因此不能用于此目的。

如果我可以在每次执行的代理上安装任务并且可以在执行之前验证构建或部署,那么其他虽然不太灵活的选择是。这似乎也不可能,因为任务必须由团队定义,因此不可靠。

任何关于如何实现基本上可以分析并在必要时阻止部署或构建的控件的建议将不胜感激。

【问题讨论】:

    标签: deployment azure-devops azure-pipelines azure-pipelines-release-pipeline


    【解决方案1】:

    看来你要在部署完成后检查一下。

    实际上有部署后审批者,您可以指定在部署环境后进行审计。

    或者您可以通过在最后一个环境的末尾添加 Powershell 任务 来获取信息(审批者、环境等)。

    对于 powershell,您可以执行以下操作:

    1.通过REST API获取当前版本的详细信息:

    GET https://account.vsrm.visualstudio.com/project/_apis/Release/releases/$(Release.ReleaseId)
    

    2. 搜索您需要的信息:

    通过搜索关键字preDeployApprovals 获取部署前批准者。获取环境信息,详情请见"environments": []

    3.如果你想在你设置的条件不满足的情况下部署失败,你可以将批准者/环境信息与你设置的值进行比较,如果不相等,则以@987654326结束@。

    【讨论】:

    • 问题是当发布和部署已经完成时会发生这种情况。我们的要求是在执行之前必须提前提供批准。
    • 那么您仍然可以使用 REST api visualstudio.com/en-us/docs/integrate/api/rm/… 获取部署详细信息。
    • 实际上,我能想到的唯一解决方案是创建一个自动化作业,持续分析构建和发布模板的内容,并在缺少某些内容时引发标记。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    相关资源
    最近更新 更多