Azure:启动或关闭多个虚拟机的脚本

Azure:启动或关闭多个虚拟机的脚本

是否可以编写并保存某种脚本来启动 azure powershell,然后验证 azure 订阅,然后一步启动/关闭多个虚拟机?

我有 5 台虚拟机,我会在特定的非计划时间定期使用它们,所以我不想每次需要使用它们时都登录 Azure 门户,逐个启动虚拟机,然后执行相同的操作关闭它们!我需要自动化这个过程。

答案1

毫无疑问,您应该使用 Azure 自动化按计划运行 PowerShell 脚本来关闭或启动 Azure 中的 VM。Microsoft 网站上已经有了详尽的文档。

以下 3 个链接逐步解释了如何执行此操作

使用 Azure 自动化 Runbook 停止 Azure 虚拟机 https://gallery.technet.microsoft.com/scriptcenter/Stop-Azure-Virtual-Machine-0b1fea97

使用 Azure 自动化关闭 Azure VM http://blogs.technet.com/b/georgewallace/archive/2014/11/05/shutting-down-a-azure-vm-with-azure-automation.aspx

仅在办公时间使用 Azure 自动化运行虚拟机 https://blogs.endjin.com/2015/01/using-azure-automation-to-run-vms-during-office-hours-only/

问候

斯坦尼斯拉斯

答案2

有很多解决方案

您可以在 Azure 自动化中拥有一个 Powershell 脚本,它将连接到您的订阅并根据参数关闭或启动服务器。

然后,您可以将 webhook 附加到这些服务器,然后可以连接到某处的 HTTP Post 按钮来停止或启动它们。

或者,您可以使用 ac# 应用程序执行类似操作,并以类似的方式调用。这种方法的好处是,您可以在接受 webhook 之前在 HTTP 堆栈上进行身份验证

我个人有几台服务器是通过 API 应用管理的,这些服务器连接到我手机上的自动化应用。当我离开办公室时,它会关闭我的开发服务器(当我到达时,它会启动它!)

答案3

您可以使用数据中心中的任何服务器来运行预定的 PowerShell 脚本。Mark Hick 有一篇关于如何完成所有这些工作的精彩文章https://www.petri.com/manage-scheduled-tasks-windows-8-windows-server-2012-powershell-part-2。我想补充一点,您需要传入登录参数,如果您想关闭一台服务器上的所有服务器,那么可以使用 get-VM | stop-VM 之类的命令。如果您想先在虚拟机上停止服务,那么您将需要在每个虚拟机的 foreach(VM inVMList) {} 循环中进入远程 powershell,但如果虚拟机与服务器位于同一个域中,这并不难。如果不是,您需要使用 credssp 在服务器和虚拟机之间建立信任。

答案4

您还可以使用 SmiKar Software 的 Azure 虚拟机调度程序。众所周知,AVMS 将连接到您的 Azure 订阅,并允许您选择虚拟机以及合适的开启或关闭计划。

适用于 V1 和 V2 Azure 虚拟机

http://www.smikar.com/automate-scheduled-power-azure-vms/

相关内容