我尝试使用azure模板和打包器在azure上自动部署。
我的包装工ami(?)已经打造,包括应用程序(java fat jar)。
现在,我的应用程序连接到azure evnet hub,它与我的vm同时部署并在同一个json模板中声明。
我想在我的arm模板中将连接属性作为环境变量传递给vm。是否可以使用天蓝色模板?半年前,我在SO上发现了一个类似的问题,没有答案。但也许从那以后发生了一些变化?人们如何解决天蓝色的问题? Terraform不是一个可悲的选择,它不包括天蓝色基础设施的其他部分。
答案 0 :(得分:3)
不,你不能直接设置环境。使用ARM模板到VM的变量,但您可以使用ARM模板部署脚本扩展,这样就可以为您完成。
答案 1 :(得分:2)
我想将连接属性作为环境传递给vm 我的手臂模板中的变量。是否可以使用天蓝色模板?
正如4c74356b41所说,模板不直接支持这一点。根据您的情况,我建议您使用Custom Script Extension。
自定义脚本扩展在Azure虚拟机上下载并执行脚本。此扩展对于部署后配置,软件安装或任何其他配置/管理任务非常有用。
Azure自定义脚本扩展支持Linux和Windows,您可以编写一个脚本,将连接属性配置为vm,并使用扩展在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上找到有关此扩展程序的许多示例。