在来宾操作系统中停止并取消分配Azure VM

时间:2017-12-09 09:00:35

标签: azure cloud virtual-machine

VM信息:

  • 带有Ubuntu 16的基本A1 Serie VM

如何在Azure中关闭(或停止)和取消分配VM而无需转到Azure文档?

如果执行shutdown -h 0,请记住在Azure中;它会阻止VM,但不会解除分配。

我问这个是因为我没有直接连接到Azure门户,也没有登录它。我想仅使用来宾操作系统解除分配VM。

4 个答案:

答案 0 :(得分:1)

我明白你的情景是什么。您只能SSH到VM,但无法访问Azure。例如,您不知道Azure帐户的凭据。

对于此方案,您无法取消分配Azure VM。因为该操作必须使用Azure帐户完成,并且已在Azure中完成,而不仅仅是VM。取消分配Azure VM还链接到其他资源,例如公共IP地址,磁盘,网络接口等。

如果您仍想要取消分配Azure VM,我建议您调用可以访问azure门户的Azure VM的所有者。

另一个解决此问题的方法是使用Azure CLI在来宾VM中登录,然后控制VM。您仍然需要登录Azure,但这只需要一次。

  1. 按照指导here
  2. 下载并安装Azure CLI
  3. 使用以下命令生成验证码:

    az login

  4. 这将生成一个身份验证代码,可用于通过Azure所有者登录(仅需要一次)。使用该代码进行身份验证。

  5. 登录后,您可以发出此命令来停止和取消分配您的VM:

    az vm deallocate --resource-group myResourceGroup --name myVM

  6. 可以找到可用的azure CLI命令列表here

答案 1 :(得分:1)

您是否有登录订阅?如果是这样,您可以使用azure CLI取消分配。即使您没有,VM也始终可以访问Azure Fabric。

无需访问门户网站即可登录:

az login -u johndoe@contoso.com -p VerySecret

解除分配:

az vm deallocate --resource-group myResourceGroup --name myVM

答案 2 :(得分:0)

您可以使用任何自动化方式,Powershell \ CLI \ different SDK来关闭虚拟机。你可以创建一个脚本并执行它。 Azure Powershell的示例。

Stop-AzureRmVM -ResourceGroupName“ResourceGroup11” - 名称“VirtualMachine07”

答案 3 :(得分:0)

您可以考虑的另一种方法是在Azure自动化中创建一个Runbook,并添加PowerShell代码以从那里取消分配VM。

接下来,您可以从Azure自动化中创建一个Webhook到此Runbook,您可以从任何地方通过HTTP Post请求从外部调用(例如从Postman,或使用CURL,或者从可以发出HTTP Post的任何地方)到触发VM释放。

现在,只要您想要取消分配VM,就可以使用Posthman工具中的Webhook URL,发出HTTP Post请求,Runbook将解除分配VM。作为复杂工作流程的一部分,我已经在几个场景中完成了这项工作,并且它运行良好。

HTH