通过Azure中的ARM模板部署Windows和Linux VM

时间:2018-07-22 17:34:52

标签: azure virtual-machine azure-virtual-machine azure-resource-manager

我想使用2个VM(一个Windows和另一个Linux)部署一个Azure资源管理器模板。我读到有关使用复制变量的信息,但这基本上是多次部署相同的资源。我想不出一种在同一模板中部署同一资源的2个不同实例的方法。需要你的帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

您可以为此使用一堆变量,但是由于Windows和linux vm输入是完全不同的,因此我建议您不要这样做,而是要进行大量自定义。只需将2个虚拟机作为2个单独的资源进行部署即可。

您可以使用数组来实现您的目标:

"osType": [
    "windows",
    "linux"
]

然后您将拥有一堆变量,例如osimagewindows和osimagelinux,您将像这样访问它们:

variables(concat('osimage', variables('osType')[copyIndex()]))

ps。那对于您获得的价值来说太麻烦了。不要打扰(除非您想作为练习来做)。

答案 1 :(得分:1)

如果除了OS磁盘外,您的VM基本相同,请看以下示例:

https://github.com/Azure/azure-quickstart-templates/blob/master/101-vm-simple-zones/azuredeploy.json#L194

如果您要添加密码与SSH身份验证之类的内容,请参见:https://github.com/Azure/azure-quickstart-templates/blob/master/100-marketplace-sample/azuredeploy.json#L298-L299

要使用复制循环,您需要为这些条件创建数组,但是当您开始添加重复资源时,您将拥有在复制循环中处理数组和条件的重复资源(例如nics,PublicIps)比复制资源要简单得多。

有帮助吗?

相关问题