0

我正在尝试在 ARM 模板中传递带有 IP 地址前缀(例如 10.0.0.0/24)的参数以部署 VNET

在 ARM 模板中,我想将 10.0.0.0/24 替换为 10.0.0.123 并将其分配给我想稍后用于创建 VM 的 NIC。

我希望有什么方法可以使用 ARM 模板来实现这一点?

4

3 回答 3

1

好吧,没有漂亮的方法可以做到这一点,最简单的方法是:

"var1": "[first(split(parameters('addressPrefix'), '/'))]",
"var2": "[substring(variables('var1'), 0, sub(length(variables('var1'), 1)))]"
"var3": "[concat(variables('var2'), 'ipgoeshere')]"

或者,您可以只删除最后 4 个字符并连接 IP 地址,或者将部分拆分并连接成一个 IP 地址:

"var1": "[first(split(parameters('addressPrefix'), '/'))]",
"var2": "[concat(variables('var1')[0], '.', variables('var1')[1], '.', variables('var1')[2], '.ipgoeshere')]"
于 2018-04-10T08:42:06.107 回答
0

您可以使用"privateIPAllocationMethod": "Static"和指定私有 IP 地址,如下所示:

"ipConfigurations": [
          {
            "name": "ipconfig1",
            "properties": {
              "privateIPAllocationMethod": "Static",
              "privateIPAddress": "[parameters('privateIPAddress')]",
              "publicIPAddress": {
                "id": "[resourceId('Microsoft.Network/publicIPAddresses',parameters('publicIPAddressName'))]"
              },
              "subnet": {
                "id": "[parameters('subnetRef')]"
              }
            }
          }
        ]

这里有一个关于静态私有IP地址的示例模板,请参考。

于 2018-04-10T08:28:28.897 回答
0

我正在这样做

"variables" : {
    "subnetAddress" : "[first(split(parameters('subnetAddressWithMask'), '/'))]",
    "subnetOctets3" : "[take(split(variables('subnetAddress'), '.'), 3)]",
    "subnetNetwork" : "[concat(variables('subnetOctets3')[0], '.', variables('subnetOctets3')[1], '.', variables('subnetOctets3')[2])]"
  },
  "outputs": {
    "subnetAddress" : {
    "type": "string",
    "value" : "[variables('subnetAddress')]"
    },
    "subnetOctets3" : 
    {

    "type": "array",
    "value" :  "[variables('subnetOctets3')]"
    }
   ,
    "subnetNetwork" : {
"type" : "string",
"value" :     "[variables('subnetNetwork')]"

    }

带输出

  "Outputs": {
    "deploymentAppGw": {
      "Type": "Object",
      "Value": {
        "subnetAddress": {
          "type": "String",
          "value": "10.0.0.0"
        },
        "subnetOctets3": {
          "type": "Array",
          "value": [
            "10",
            "0",
            "0"
          ]
        },
        "subnetNetwork": {
          "type": "String",
          "value": "10.0.0"
        }
      }
    }
  },

后来我以这种方式使用它:"[concat(variables('subnetNetwork'), '.', copyIndex(10))]"或以类似的方式。

于 2021-04-17T18:43:09.387 回答