我能够将我现有的Azure VM注册为VSTS中的构建代理。构建工作正常,但我只想在有任何工作的情况下打开和关闭机器。如果我看到一个队列中有一些工作要做,有没有办法打开虚拟机,然后如果队列空闲了5分钟,就把它关闭呢?
发布于 2019-05-16 19:24:11
将hosted agent作业添加到start以启动VM,并将代理作业或附加步骤添加到末尾以在完成时关闭VM。
添加代理作业以作为宿主运行此作业以启动VM。然后使用所有构建步骤作为自托管(私有)。
添加您的Azure订阅
选择内联脚本以添加以下内容,以使用虚拟机名称和资源组启动它
start-AzureRmVM -Name ""-ResourceGroupName ""
添加另一个代理作业或其他步骤,作为构建完成后关闭虚拟机的最后一步。使用以下脚本
stop-AzureRmVM -Name ""-ResourceGroupName "" -Force
发布于 2019-03-06 20:25:30
我想知道这是否对你有帮助,因为这不完全是你所要求的。我在构建之前和构建之后使用REST API调用来启动和停止特定的VM。请参见how to start and power off a VM in the API documentation。
作为第一步,我创建了一个无代理作业,任务名为Invoke REST API。该任务允许你向Azure帐户进行身份验证,因此你不必手动处理。您所要做的就是指定URL后缀。例如,要启动一个名为MyVm的VM,您需要添加一个类似于以下内容的后缀:
/subscriptions/subscription-id/resourceGroups/resource-group-name/providers/Microsoft.Compute/virtualMachines/MyVm/start?api-version=2018-06-01
可在Azure中的虚拟机的概述页中验证订阅ID和资源组的位置。
在构建之后,您可以添加另一个无代理作业,但这次使用powerOff端点的REST调用:
/subscriptions/subscription-id/resourceGroups/resource-group-name/providers/Microsoft.Compute/virtualMachines/MyVm/powerOff?api-version=2018-06-01
发布于 2017-09-04 16:04:41
在VSTS中构建时,没有启动/停止azure VM的好方法。关于WebHook,没有用于队列构建的事件,对于其他事件,它们不能满足许多要求(例如,非CI构建,手动队列构建)
我建议您使用托管代理,通过免费的托管管道,您每月可以获得4小时(240分钟),并且在Team Services中每个构建或部署的最大持续时间为30分钟。
How to buy more pipeline capacity for builds and releases in Visual Studio Team Services
解决方法:
在指定时间(例如,星期一和星期四上午7:00 )构建
更多信息,请访问:How to Create a Monster Build Agent in Azure for Cheap
https://stackoverflow.com/questions/46031408
复制相似问题