■ New-AzResourceGroupDeployment 명령 : TemplateFile 옵션을 사용해 리소스 배포하기

------------------------------------------------------------------------------------------------------------------------

 

New-AzResourceGroup -Name "TestResourceGroup" -Location "centralus"

                          -------------------           -----------

                          리소스 그룹명                 영역

 

New-AzResourceGroupDeployment `

    -ResourceGroupName "TestResourceGroup" `

    -adminUsername "appadmin" `

    -adminPassword "test123456." `

    -dnsLabelPrefix "testvm" `

    -TemplateFile "azuredeploy.json"

 

 

"TestResourceGroup" : 리소스 그룹명

   "appadmin"          : VM 계정명

   "test123456."       : VM 패스워드

   "testvm"            : DNS 레이블 접두사

   "azuredeploy.json"  : 템플리트 파일

 

azuredeploy.json

 

 

{

  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",

  "contentVersion": "1.0.0.0",

  "parameters": {

    "adminUsername": {

      "type": "string",

      "metadata": {

        "description": "Username for the Virtual Machine."

      }

    },

    "adminPassword": {

      "type": "securestring",

      "metadata": {

        "description": "Password for the Virtual Machine."

      }

    },

    "dnsLabelPrefix": {

      "type": "string",

      "metadata": {

        "description": "Unique DNS Name for the Public IP used to access the Virtual Machine."

      }

    },

    "windowsOSVersion": {

      "type": "string",

      "defaultValue": "2016-Datacenter",

      "allowedValues": [

        "2008-R2-SP1",

        "2012-Datacenter",

        "2012-R2-Datacenter",

        "2016-Nano-Server",

        "2016-Datacenter-with-Containers",

        "2016-Datacenter",

        "2019-Datacenter"

      ],

      "metadata": {

        "description": "The Windows version for the VM. This will pick a fully patched image of this given Windows version."

      }

    },

    "location": {

      "type": "string",

      "defaultValue": "[resourceGroup().location]",

      "metadata": {

        "description": "Location for all resources."

      }

    }

  },

  "variables": {

    "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'sawinvm')]",

    "nicName": "myVMNic",

    "addressPrefix": "10.0.0.0/16",

    "subnetName": "Subnet",

    "subnetPrefix": "10.0.0.0/24",

    "publicIPAddressName": "myPublicIP",

    "vmName": "testvm",

    "virtualNetworkName": "MyVNET",

    "subnetRef": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('virtualNetworkName'), variables('subnetName'))]"

  },

  "resources": [

    {

      "type": "Microsoft.Storage/storageAccounts",

      "apiVersion": "2018-11-01",

      "name": "[variables('storageAccountName')]",

      "location": "[parameters('location')]",

      "sku": {

        "name": "Standard_LRS"

      },

      "kind": "Storage",

      "properties": {}

    },

    {

      "type": "Microsoft.Network/publicIPAddresses",

      "apiVersion": "2018-11-01",

      "name": "[variables('publicIPAddressName')]",

      "location": "[parameters('location')]",

      "properties": {

        "publicIPAllocationMethod": "Dynamic",

        "dnsSettings": {

          "domainNameLabel": "[parameters('dnsLabelPrefix')]"

        }

      }

    },

    {

      "type": "Microsoft.Network/virtualNetworks",

      "apiVersion": "2018-11-01",

      "name": "[variables('virtualNetworkName')]",

      "location": "[parameters('location')]",

      "properties": {

        "addressSpace": {

          "addressPrefixes": [

            "[variables('addressPrefix')]"

          ]

        },

        "subnets": [

          {

            "name": "[variables('subnetName')]",

            "properties": {

              "addressPrefix": "[variables('subnetPrefix')]"

            }

          }

        ]

      }

    },

    {

      "type": "Microsoft.Network/networkInterfaces",

      "apiVersion": "2018-11-01",

      "name": "[variables('nicName')]",

      "location": "[parameters('location')]",

      "dependsOn": [

        "[resourceId('Microsoft.Network/publicIPAddresses/', variables('publicIPAddressName'))]",

        "[resourceId('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]"

      ],

      "properties": {

        "ipConfigurations": [

          {

            "name": "ipconfig1",

            "properties": {

              "privateIPAllocationMethod": "Dynamic",

              "publicIPAddress": {

                "id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))]"

              },

              "subnet": {

                "id": "[variables('subnetRef')]"

              }

            }

          }

        ]

      }

    },

    {

      "type": "Microsoft.Compute/virtualMachines",

      "apiVersion": "2018-10-01",

      "name": "[variables('vmName')]",

      "location": "[parameters('location')]",

      "dependsOn": [

        "[resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]",

        "[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]"

      ],

      "properties": {

        "hardwareProfile": {

          "vmSize": "Standard_A2"

        },

        "osProfile": {

          "computerName": "[variables('vmName')]",

          "adminUsername": "[parameters('adminUsername')]",

          "adminPassword": "[parameters('adminPassword')]"

        },

        "storageProfile": {

          "imageReference": {

            "publisher": "MicrosoftWindowsServer",

            "offer": "WindowsServer",

            "sku": "[parameters('windowsOSVersion')]",

            "version": "latest"

          },

          "osDisk": {

            "createOption": "FromImage"

          },

          "dataDisks": [

            {

              "diskSizeGB": 1023,

              "lun": 0,

              "createOption": "Empty"

            }

          ]

        },

        "networkProfile": {

          "networkInterfaces": [

            {

              "id": "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]"

            }

          ]

        },

        "diagnosticsProfile": {

          "bootDiagnostics": {

            "enabled": true,

            "storageUri": "[reference(resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob]"

          }

        }

      }

    }

  ],

  "outputs": {

    "hostname": {

      "type": "string",

      "value": "[reference(variables('publicIPAddressName')).dnsSettings.fqdn]"

    }

  }

}

 

 

"testvm" : 가상 머신명을 유일한 명칭으로 변경해서 저장해야 한다.

------------------------------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요