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例子很多。
答
不,你不能直接设置env。变量添加到使用ARM模板的虚拟机中,但是您可以使用ARM模板部署脚本扩展,该模板将为您执行此操作。
是的,我写了内联脚本,用于将属性存储到/ etc/environment中。谢谢。 – slnowak