我想使用2个VM(一个Windows和另一个Linux)部署一个Azure资源管理器模板。我读到有关使用复制变量的信息,但这基本上是多次部署相同的资源。我想不出一种在同一模板中部署同一资源的2个不同实例的方法。需要你的帮助。谢谢!
答案 0 :(得分:1)
您可以为此使用一堆变量,但是由于Windows和linux vm输入是完全不同的,因此我建议您不要这样做,而是要进行大量自定义。只需将2个虚拟机作为2个单独的资源进行部署即可。
您可以使用数组来实现您的目标:
"osType": [
"windows",
"linux"
]
然后您将拥有一堆变量,例如osimagewindows和osimagelinux,您将像这样访问它们:
variables(concat('osimage', variables('osType')[copyIndex()]))
ps。那对于您获得的价值来说太麻烦了。不要打扰(除非您想作为练习来做)。
答案 1 :(得分:1)
如果除了OS磁盘外,您的VM基本相同,请看以下示例:
如果您要添加密码与SSH身份验证之类的内容,请参见:https://github.com/Azure/azure-quickstart-templates/blob/master/100-marketplace-sample/azuredeploy.json#L298-L299
要使用复制循环,您需要为这些条件创建数组,但是当您开始添加重复资源时,您将拥有在复制循环中处理数组和条件的重复资源(例如nics,PublicIps)比复制资源要简单得多。
有帮助吗?