Azure xplat在Windows VM中运行CustomScriptExtension

时间:2015-10-16 07:19:32

标签: windows powershell azure bootstrapping azure-xplat-cli

我正在使用以下命令从azure xplat cli创建Windows VM:

azure network vnet create --location "East US" testnet
azure vm create --vm-name xplattest3 --location "East US" --virtual-network-name testnet --rdp 3389 xplattest3 ad072bd3082149369c449ba5832401ae__Windows-Server-Remote-Desktop-Session-Host-on-Windows-Server-2012-R2-20150828-0350 username SAFEpassword!

创建Windows VM后,我想执行powershell脚本来配置服务器。据我所知,这是通过执行CustomScriptExtension来完成的。

我找到了几个PowerShell示例,但没有Xplat cli的示例。

例如,我希望运行以下HelloWorld PowerShell script

New-Item -ItemType directory -Path C:\HelloWorld

阅读文档后,我应该可以通过执行类似的操作来运行CustomExtensionScript(以下命令不起作用):

azure vm extension set xplattest3 CustomScriptExtension Microsoft.Compute 1.4 -i '{"URI":["https://gist.githubusercontent.com/tk421/8b7dd37145eaa8f82e2f/raw/36c11aafd3f5d6b4af97aab9ef5303d80e8ab29b/azureCustomScriptExtensionTest"] }'

我认为问题是参数-i。我无法在互联网上找到一个例子。有一些参考和文档,例如MSDNGithub,但没有示例。

因此,我的问题:如何在使用PowerShell在Azure中创建Windows VM后执行xplat cli脚本?

请注意,我当前的方法是CustomScriptExtension,但是会考虑允许引导配置脚本的任何

编辑我怎么知道它失败了?

运行命令azure vm extension ...后:

  1. xplat cli确认命令已正确执行。
  2. 根据MSDN documentation,创建了文件夹C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\,但没有脚本下载到C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\{version-number}\Downloads\{iteration}
  3. 未创建文件夹C:\HelloWorld,这意味着脚本的内容尚未执行。
  4. 我找不到任何类型的日志或跟踪来了解发生了什么。有谁知道我在哪里可以找到这些信息?

1 个答案:

答案 0 :(得分:0)

我在阅读MSDN文档后使用的参数(The Json)不正确。但是,您可以通过阅读C#代码获得正确参数的线索。

最后的命令是:

azure vm extension set xplattest3 CustomScriptExtension Microsoft.Compute 1.4 -i '{"fileUris":["https://macstoragetest.blob.core.windows.net/testcontainername/createFolder.ps1"], "commandToExecute": "powershell -ExecutionPolicy Unrestricted -file createFolder.ps1" }'

此命令成功创建C:\HelloWorld目录。

注意:我决定将脚本上传到Azure read in a post以及必需的文档中。但是我刚刚测试从Github下载原始脚本并且工作正常,所以我猜文档有点过时了。

编辑:我创建了一篇详细的文章,解释了how to provision windows servers with xplat-cli in Azure