2017-05-06 128 views
2

我正嘗試使用天藍色模板和打包器在Azure上自動部署。azure-arm模板中的環境變量

我已經建立了我的打包器ami(?),包含應用程序(java fat jar)。

現在,我的應用程序連接到與我的虛擬機同時部署並在相同的json模板中聲明的天藍色evnet集線器。

我想在我的arm模板中將連接屬性傳遞給vm作爲環境變量。天藍模板可能嗎?我發現了一個類似的問題,半年前問,沒有答案。但是從那以後可能有什麼變化?人們如何通過天藍色解決這些問題?可悲的是Terraform不是一種選擇,它不包括天藍色基礎設施的其他部分。

回答

2

我想將連接屬性傳遞給vm作爲環境 變量在我的arm模板中。天藍模板可能嗎?

由於4c74356b41表示,模板不直接支持此。根據你的情況,我建議你可以使用Custom Script Extension

自定義腳本擴展在Azure虛擬機上下載並執行腳本。該擴展對於部署後配置,軟件安裝或任何其他配置/管理任務很有用。

Azure自定義腳本擴展支持Linux和Windows,您可以編寫腳本將連接屬性配置爲vm並使用擴展在您的虛擬機上執行。自定義腳本擴展模板的例子是象下面這樣:

"resources": [ 
       { 
        "type": "extensions", 
        "name": "CustomScriptExtension", 
        "apiVersion": "2015-06-15", 
        "location": "[resourceGroup().location]", 
        "dependsOn": [ 
         "[variables('vmName')]" 
        ], 
        "properties": { 
         "publisher": "Microsoft.Compute", 
         "type": "CustomScriptExtension", 
         "typeHandlerVersion": "1.8", 
         "autoUpgradeMinorVersion": true, 
         "settings": { 
          "fileUris": [ 
           "[concat(parameters('_artifactsLocation'), '/', variables('ScriptFolder'), '/', variables('ScriptFileName'), parameters('_artifactsLocationSasToken'))]" 
          ], 
          "commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File ', variables('scriptFolder'), '/', variables('scriptFileName'), ' ', variables('scriptParameters'))]" 
         } 
        } 
       } 
      ] 

他們可以找到這個擴展上Git Hub例子很多。

+0

是的,我寫了內聯腳本,用於將屬性存儲到/ etc/environment中。謝謝。 – slnowak

3

不,你不能直接設置env。變量添加到使用ARM模板的虛擬機中,但是您可以使用ARM模板部署腳本擴展,該模板將爲您執行此操作。

+0

任何參考? – slnowak

+0

引用了什麼? – 4c74356b41

+0

有關如何創建此類擴展的參考。 – slnowak