![从在外部服务器上运行的 PowerShell 停止和启动 Azure VM 实例](https://linux22.com/image/720298/%E4%BB%8E%E5%9C%A8%E5%A4%96%E9%83%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E8%BF%90%E8%A1%8C%E7%9A%84%20PowerShell%20%E5%81%9C%E6%AD%A2%E5%92%8C%E5%90%AF%E5%8A%A8%20Azure%20VM%20%E5%AE%9E%E4%BE%8B.png)
我正在设置 Azure VM 作为灾难恢复的热备份服务器,并且我希望每天自动从生产服务器启动和关闭 VM 几次,以便同步一些数据。我在以下问题中轻松找到了有关如何通过 Azure 自动化执行此操作的信息:Azure:启动或关闭多个虚拟机的脚本微软有在 Azure 平台中使用 Powershell 执行此操作的示例,但我找不到如何从远程机器执行此操作。
我想从生产服务器启动它的原因是 SQL/Server 中的一些数据更新应该快速推送到 VM,因此严格按照基于时间的计划执行并不理想。虽然我可能以错误的方式考虑了这个问题,但他们会使用 Azure 自动化以某种方式轮询生产服务器,以查看是否应该启动 VM?
答案1
Azure 自动化脚本可以在 Azure 中的 Azure 自动化服务器上运行,也可以在本地计算机上运行(如果您使用混合工作器)。使用混合工作器无法解决您的问题,因为您仍然需要调用 Azure 自动化来运行脚本,它恰好在本地计算机上运行。
对于您要做的事情,您有以下几种选择:
- 使用 Azure 自动化,让生产服务器调用它来运行脚本。这可以通过可以触发自动化脚本的 webhook 来完成。
- 直接在生产服务器上运行 PowerShell 脚本,您根本不会使用 Azure 自动化,只需在需要时在计算机上本地运行一些 Azure PowerShell
- 仍然使用 Azure 自动化,但让它轮询生产服务器,以了解是否需要启动机器。为此,您需要在网络上运行混合工作器(因为通常 Azure 自动化无法访问您的网络)。您通常不希望在生产服务器上运行此混合工作器,因为如果它发生故障,则不会触发 DR 机器。
使用 Azure 自动化的好处是可以提供一个运行脚本的中心位置,并能够安全地存储凭据等以访问 Azure,但随后您需要一些东西来触发该运行手册。