2017-08-31 136 views
-2

必须对企业环境中的部署进行审计,这意味着部署到生产环境必须事先获得批准,并且必须记录审批的知情权 。如何确保在Visual Studio Team Services中审核部署?

我正在寻找一种解决方案,以确保每个部署都在Visual Studio Team Services中进行审核,而不会扭曲该工具的功能和灵活性。

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

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

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

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

任何关于如何实现基本上可以分析的控件的建议,以及如果需要的话阻止部署或构建,将不胜感激。

回答

0

看起来你想在部署完成后检查。

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

或者您可以通过在上次环境结束时添加Powershell任务来获取信息(审批者,环境等)。

对于PowerShell中,你可以做以下的事情:

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

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

2.搜索您需要的信息:

通过搜索关键字preDeployApprovals获取预部署审批者。获取环境信息,您可以在"environments": []中找到详细信息。

3。如果您想在设置的条件不符合时未能部署,则可以将审批者/环境信息与您设置的值进行比较,如果不相等,则以exit 1结束。

+0

问题是,当发布和部署已完成时会发生。我们的要求是,必须在执行前提前提供批准。 – zlogo

+0

然后您仍然可以使用REST API https://www.visualstudio.com/en-us/docs/integrate/api/rm/releases#get-a-release获取部署详细信息。 –

+0

实际上,我能想出的唯一解决方案是创建一个自动作业,不断分析构建和发布模板的内容,并在缺少某些内容时提升标志。 – zlogo

相关问题