【问题标题】:Azure Virtual Machine Start-Up taskAzure 虚拟机启动任务
【发布时间】:2013-04-01 16:28:52
【问题描述】:

我们正在创建一个多租户应用程序并将其托管在 Window Azure IaaS 平台上。 我们希望使用 PowerShell 远程配置和配置我们所有的虚拟机。 我们不想为任何配置将 RDP 引入虚拟机。

Azure VM 是否支持启动任务以执行类似于 Web-Role 和 Worker-Role 的 power shell 脚本?

如果没有,那么是否有任何替代方案(如 PsExec 之类的工具)可以帮助执行启动脚本?

【问题讨论】:

    标签: azure azure-vm-role


    【解决方案1】:

    您的 VM 只是虚拟化的 Windows/Linux 机器,它像往常一样支持启动任务。

    对于 Windows 虚拟机,您需要:

    1. 下载基础 Azure Windows Server 来宾虚拟机。
    2. 自定义机器的启动过程为execute a startup script
    3. 将您的自定义 VM 推送回 Azure。
    4. 配置 Azure 以启动您的自定义 VM。

    注意:您还可以访问远程 VM using PowerShell remoting 上的 PowerShell,其方式类似于使用 SSH 访问远程 [LI|U]N[U|I]X 框/VM 的控制台。

    FWIW,Git 是用于下拉和执行 VM 配置脚本的好工具:您的虚拟机启动脚本可以使用 Chocolatey 安装最新版本的 GIT(如果尚未安装),然后使用Git 从 GitHub/similar 下载最新版本的启动脚本并执行它。这样您就不需要在每次脚本更改时都不断地重建 VM 映像。

    【讨论】:

    • 不需要第 1 步和第 3 步,因为这是针对旧 VM 角色的。对于虚拟机,只需从库中创建一个新的并选择 Windows Server 或 Linux 变体之一作为启动映像。您的新 VHD 将被创建,您的虚拟机将在几分钟后启动。您在该点所做的每一项更改都是持久且持久的(写入到存储在 Blob 存储中的 vhd 的所有更改)。进一步:您可以对您创建的 vhd 进行 sysprep,并将其添加到您自己的初始映像集。这些都驻留在 Azure 中,无需在本地下载或推送回 Azure。
    • @David:公平点。然而,有时,让事情在本地工作比在云端更容易、更便宜、更快捷。
    • 感谢您的回复。如果 Microsoft 可以在配置和启动 VM 时添加对执行 PowerShell 脚本的支持,那就太好了。刚刚对Azure wishlist中的类似项目进行了投票
    • 同意——你不能做类似于 AWS UserData diaryofaninja.com/blog/2013/07/24/…