azure-arm模板中的环境变量

问题描述:

我正尝试使用天蓝色模板和打包器在Azure上自动部署。azure-arm模板中的环境变量

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

现在,我的应用程序连接到与我的虚拟机同时部署并在相同的json模板中声明的天蓝色evnet集线器。

我想在我的arm模板中将连接属性传递给vm作为环境变量。天蓝模板可能吗?我发现了一个类似的问题,半年前问,没有答案。但是从那以后可能有什么变化?人们如何通过天蓝色解决这些问题?可悲的是Terraform不是一种选择,它不包括天蓝色基础设施的其他部分。

我想将连接属性传递给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

不,你不能直接设置env。变量添加到使用ARM模板的虚拟机中,但是您可以使用ARM模板部署脚本扩展,该模板将为您执行此操作。

+0

任何参考? – slnowak

+0

引用了什么? – 4c74356b41

+0

有关如何创建此类扩展的参考。 – slnowak