2015-10-16 24 views
0

我從蔚藍的xplat CLI創建Windows虛擬機,使用下面的命令:天青xplat運行在CustomScriptExtension一個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的虛擬機創建後,我想執行一個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,但沒有例子。

因此,我的問題:如何使用xplat cli在Azure中創建Windows VM後執行PowerShell腳本?

請注意,我目前的做法是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. 我找不到任何類型的日誌或跟蹤來了解發生了什麼。有誰知道我在哪裏可以找到這些信息?
+0

如果包括爲什麼它不起作用,它可能會有所幫助。您是否在通過cli工具進行呼叫時遇到錯誤,或者正在添加的擴展名以及腳本本身沒有運行? – MikeWo

+0

@MikeWo描述已更新。該擴展程序已添加,該腳本未運行,並且找不到任何種類的日誌或跟蹤原因。 – Tk421

回答

0

閱讀MSDN文檔後使用的參數(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