首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在VSTS中自动启动/停止作为生成代理的现有Azure VM

在VSTS中自动启动/停止作为生成代理的现有Azure VM
EN

Stack Overflow用户
提问于 2017-09-04 14:28:47
回答 4查看 5.3K关注 0票数 10

我能够将我现有的Azure VM注册为VSTS中的构建代理。构建工作正常,但我只想在有任何工作的情况下打开和关闭机器。如果我看到一个队列中有一些工作要做,有没有办法打开虚拟机,然后如果队列空闲了5分钟,就把它关闭呢?

EN

回答 4

Stack Overflow用户

发布于 2019-05-16 19:24:11

将hosted agent作业添加到start以启动VM,并将代理作业或附加步骤添加到末尾以在完成时关闭VM。

添加代理作业以作为宿主运行此作业以启动VM。然后使用所有构建步骤作为自托管(私有)。

添加您的Azure订阅

选择内联脚本以添加以下内容,以使用虚拟机名称和资源组启动它

代码语言:javascript
运行
复制
start-AzureRmVM -Name ""-ResourceGroupName ""

添加另一个代理作业或其他步骤,作为构建完成后关闭虚拟机的最后一步。使用以下脚本

代码语言:javascript
运行
复制
stop-AzureRmVM -Name ""-ResourceGroupName "" -Force
票数 6
EN

Stack Overflow用户

发布于 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

票数 5
EN

Stack Overflow用户

发布于 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 )构建

  1. 队列,然后您可以自动启动和自动关闭在托管代理上运行的虚拟机
  2. (执行Powershell以启动虚拟机)在专用代理上运行的=>

更多信息,请访问:How to Create a Monster Build Agent in Azure for Cheap

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46031408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档