使用自定义脚本扩展程序自动执行 VM 自定义任务

在 Build 开发者大会上推出VM 扩展程序的其中一个称为“自定义脚本扩展程序”,它支持 PowerShell。如果这是您第一次访问这些博客,可能需要查看以前的博客,请单击此处此处,了解有关 VM Agent 和扩展程序的概述。

那么,此扩展程序有何用途?它与远程 PowerShell 或任何其他现有远程执行工具有什么不同?简而言之,自定义脚本扩展程序可以从 Azure 存储自动下载脚本和文件,并在 VM 上启动 PowerShell 脚本,进而安装更多软件组件。与任何其他 VM 扩展程序一样,可以在创建 VM 时或在运行 VM 后添加自定义脚本扩展程序。听起来很简单,但却非常有用!

使用此扩展程序运行 PowerShell 脚本的先决条件:

  • 此处安装 Azure PowerShell Cmdlets V0.8.0 或更高版本。
  • 如果脚本将在现有的 VM 上运行,请确保 VM 上已启用 VM Agent,如果没有,请按照博客文章中的说明进行安装。
  • 将要在 VM 上运行的脚本上传到 Azure 存储。这些脚本可以来自一个或多个存储容器。
  • 应该以这样一种方式编写脚本,即扩展程序启动的入口脚本可以转而启动其他脚本。

现在您已经满足必要的先决条件,让我们来演示几个用例,说明如何使用这些 cmdlet。此扩展程序的当前版本只支持 PowerShell cmdlet,但在未来可能会扩展到其他类型的脚本。

用例 1 :将文件上传到默认帐户的容器中。

如果您将脚本保存在默认订阅帐户的存储容器中,那么下面的 cmdlet 代码段将显示如何在 VM 上运行这些脚本。下面示例中的 ContainerName 是您要将脚本上传到的位置。默认存储帐户可通过 cmdlet“Get-AzureSubscription –Default”进行验证。

注意:此用例会创建一个新的 VM,但您也可以在现有 VM 上完成相同的操作。

用例 2 :使用非默认存储帐户。

此用例说明如何在相同或不同订阅中使用非默认存储上传脚本/文件。这里我们将使用现有的 VM,但在创建新 VM 时也可以完成相同的操作。

用例 3 :跨不同存储帐户将脚本上传到多个容器。

如果脚本文件存储在多个容器中,那么目前要运行这些脚本,您必须提供这些文件的完整 SAS URL。可以使用 Azure Storage Explorer 等工具生成 SAS URL。

希望这些 cmdlet 将帮助您自动执行某些 VM 自定义任务。如果您希望在此扩展程序即将发布的版本中看到您所希望的其他功能,欢迎您提供反馈。请将您的评论/问题发布到此处

 

本文翻译自:https://blogs.msdn.com/b/windowsazure/archive/2014/04/24/automating-vm-customization-tasks-using-custom-script-extension.aspx