Een volledige virtuele Linux-machine maken met de Azure CLI

Van toepassing op: ✔️ Linux-VM's

Als u snel een virtuele machine (VM) wilt maken in Azure, kunt u één Azure CLI-opdracht gebruiken die standaardwaarden gebruikt om alle vereiste ondersteunende resources te maken. Resources zoals een virtueel netwerk, een openbaar IP-adres en regels voor netwerkbeveiligingsgroepen worden automatisch gemaakt. Voor meer controle over uw omgeving in productiegebruik, kunt u deze resources van tevoren maken en vervolgens uw VM's eraan toevoegen. In dit artikel wordt uitgelegd hoe u een virtuele machine en elk van de ondersteunende resources één voor één maakt.

Zorg ervoor dat u de nieuwste Azure CLI hebt geïnstalleerd en bent aangemeld bij een Azure-account in met az login.

In de volgende voorbeelden vervangt u voorbeeldparameternamen door uw eigen waarden. Voorbeelden van parameternamen zijn myResourceGroup, myVnet en myVM.

Een resourcegroep maken

Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd. Een resourcegroep moet worden gemaakt voordat een virtuele machine en ondersteunende virtuele netwerkresources worden gemaakt. Maak de resourcegroep met az group create. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie eastus:

az group create --name myResourceGroup --location eastus

De uitvoer van Azure CLI-opdrachten is standaard in JSON (JavaScript Object Notation). Als u bijvoorbeeld de standaarduitvoer wilt wijzigen in een lijst of tabel, gebruikt u az config set core.output=table. U kunt ook toevoegen --output aan een opdracht voor een eenmalige wijziging in de uitvoerindeling. In het volgende voorbeeld ziet u de JSON-uitvoer van de az group create opdracht:

{
  "id": "/subscriptions/guid/resourceGroups/myResourceGroup",
  "location": "eastus",
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Een virtueel netwerk en een subnet maken

Vervolgens maakt u een virtueel netwerk in Azure en een subnet waarin u uw VIRTUELE machines kunt maken. Gebruik az network vnet create om een virtueel netwerk te maken met de naam myVnet met het adresvoorvoegsel 192.168.0.0/16 . U voegt ook een subnet toe met de naam mySubnet met het adresvoorvoegsel 192.168.1.0/24:

az network vnet create \
    --resource-group myResourceGroup \
    --name myVnet \
    --address-prefix 192.168.0.0/16 \
    --subnet-name mySubnet \
    --subnet-prefix 192.168.1.0/24

In de uitvoer ziet u dat het subnet logisch is gemaakt in het virtuele netwerk:

{
  "addressSpace": {
    "addressPrefixes": [
      "192.168.0.0/16"
    ]
  },
  "dhcpOptions": {
    "dnsServers": []
  },
  "etag": "W/\"e95496fc-f417-426e-a4d8-c9e4d27fc2ee\"",
  "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet",
  "location": "eastus",
  "name": "myVnet",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "resourceGuid": "ed62fd03-e9de-430b-84df-8a3b87cacdbb",
  "subnets": [
    {
      "addressPrefix": "192.168.1.0/24",
      "etag": "W/\"e95496fc-f417-426e-a4d8-c9e4d27fc2ee\"",
      "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet",
      "ipConfigurations": null,
      "name": "mySubnet",
      "networkSecurityGroup": null,
      "provisioningState": "Succeeded",
      "resourceGroup": "myResourceGroup",
      "resourceNavigationLinks": null,
      "routeTable": null
    }
  ],
  "tags": {},
  "type": "Microsoft.Network/virtualNetworks",
  "virtualNetworkPeerings": null
}

Een openbaar IP-adres maken

Laten we nu een openbaar IP-adres maken met az network public-ip create. Met dit openbare IP-adres kunt u verbinding maken met uw VIRTUELE machines via internet. Omdat het standaardadres dynamisch is, maakt u een benoemde DNS-vermelding met de --domain-name-label parameter . In het volgende voorbeeld wordt een openbaar IP-adres met de naam myPublicIP gemaakt met de DNS-naam van mypublicdns. Omdat de DNS-naam uniek moet zijn, geeft u uw eigen unieke DNS-naam op:

az network public-ip create \
    --resource-group myResourceGroup \
    --name myPublicIP \
    --dns-name mypublicdns

Uitvoer:

{
  "publicIp": {
    "dnsSettings": {
      "domainNameLabel": "mypublicdns",
      "fqdn": "mypublicdns.eastus.cloudapp.azure.com",
      "reverseFqdn": null
    },
    "etag": "W/\"2632aa72-3d2d-4529-b38e-b622b4202925\"",
    "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIP",
    "idleTimeoutInMinutes": 4,
    "ipAddress": null,
    "ipConfiguration": null,
    "location": "eastus",
    "name": "myPublicIP",
    "provisioningState": "Succeeded",
    "publicIpAddressVersion": "IPv4",
    "publicIpAllocationMethod": "Dynamic",
    "resourceGroup": "myResourceGroup",
    "resourceGuid": "4c65de38-71f5-4684-be10-75e605b3e41f",
    "tags": null,
    "type": "Microsoft.Network/publicIPAddresses"
  }
}

Een netwerkbeveiligingsgroep maken

Als u de verkeersstroom van en naar uw VM's wilt beheren, past u een netwerkbeveiligingsgroep toe op een virtuele NIC of subnet. In het volgende voorbeeld wordt az network nsg create gebruikt om een netwerkbeveiligingsgroep met de naam myNetworkSecurityGroup te maken:

az network nsg create \
    --resource-group myResourceGroup \
    --name myNetworkSecurityGroup

U definieert regels die specifiek verkeer toestaan of weigeren. Als u binnenkomende verbindingen op poort 22 wilt toestaan (als u SSH-toegang wilt inschakelen, maakt u een regel voor binnenkomend verkeer met az network nsg rule create. In het volgende voorbeeld wordt een regel met de naam myNetworkSecurityGroupRuleSSH gemaakt:

az network nsg rule create \
    --resource-group myResourceGroup \
    --nsg-name myNetworkSecurityGroup \
    --name myNetworkSecurityGroupRuleSSH \
    --protocol tcp \
    --priority 1000 \
    --destination-port-range 22 \
    --access allow

Als u binnenkomende verbindingen op poort 80 wilt toestaan (voor webverkeer), voegt u een andere regel voor de netwerkbeveiligingsgroep toe. In het volgende voorbeeld wordt een regel met de naam myNetworkSecurityGroupRuleHTTP gemaakt:

az network nsg rule create \
    --resource-group myResourceGroup \
    --nsg-name myNetworkSecurityGroup \
    --name myNetworkSecurityGroupRuleWeb \
    --protocol tcp \
    --priority 1001 \
    --destination-port-range 80 \
    --access allow

Bekijk de netwerkbeveiligingsgroep en -regels met az network nsg show:

az network nsg show --resource-group myResourceGroup --name myNetworkSecurityGroup

Uitvoer:

{
  "defaultSecurityRules": [
    {
      "access": "Allow",
      "description": "Allow inbound traffic from all VMs in VNET",
      "destinationAddressPrefix": "VirtualNetwork",
      "destinationPortRange": "*",
      "direction": "Inbound",
      "etag": "W/\"3371b313-ea9f-4687-a336-a8ebdfd80523\"",
      "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup/defaultSecurityRules/AllowVnetInBound",
      "name": "AllowVnetInBound",
      "priority": 65000,
      "protocol": "*",
      "provisioningState": "Succeeded",
      "resourceGroup": "myResourceGroup",
      "sourceAddressPrefix": "VirtualNetwork",
      "sourcePortRange": "*"
    },
    {
      "access": "Allow",
      "description": "Allow inbound traffic from azure load balancer",
      "destinationAddressPrefix": "*",
      "destinationPortRange": "*",
      "direction": "Inbound",
      "etag": "W/\"3371b313-ea9f-4687-a336-a8ebdfd80523\"",
      "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup/defaultSecurityRules/AllowAzureLoadBalancerInBou",
      "name": "AllowAzureLoadBalancerInBound",
      "priority": 65001,
      "protocol": "*",
      "provisioningState": "Succeeded",
      "resourceGroup": "myResourceGroup",
      "sourceAddressPrefix": "AzureLoadBalancer",
      "sourcePortRange": "*"
    },
    {
      "access": "Deny",
      "description": "Deny all inbound traffic",
      "destinationAddressPrefix": "*",
      "destinationPortRange": "*",
      "direction": "Inbound",
      "etag": "W/\"3371b313-ea9f-4687-a336-a8ebdfd80523\"",
      "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup/defaultSecurityRules/DenyAllInBound",
      "name": "DenyAllInBound",
      "priority": 65500,
      "protocol": "*",
      "provisioningState": "Succeeded",
      "resourceGroup": "myResourceGroup",
      "sourceAddressPrefix": "*",
      "sourcePortRange": "*"
    },
    {
      "access": "Allow",
      "description": "Allow outbound traffic from all VMs to all VMs in VNET",
      "destinationAddressPrefix": "VirtualNetwork",
      "destinationPortRange": "*",
      "direction": "Outbound",
      "etag": "W/\"3371b313-ea9f-4687-a336-a8ebdfd80523\"",
      "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup/defaultSecurityRules/AllowVnetOutBound",
      "name": "AllowVnetOutBound",
      "priority": 65000,
      "protocol": "*",
      "provisioningState": "Succeeded",
      "resourceGroup": "myResourceGroup",
      "sourceAddressPrefix": "VirtualNetwork",
      "sourcePortRange": "*"
    },
    {
      "access": "Allow",
      "description": "Allow outbound traffic from all VMs to Internet",
      "destinationAddressPrefix": "Internet",
      "destinationPortRange": "*",
      "direction": "Outbound",
      "etag": "W/\"3371b313-ea9f-4687-a336-a8ebdfd80523\"",
      "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup/defaultSecurityRules/AllowInternetOutBound",
      "name": "AllowInternetOutBound",
      "priority": 65001,
      "protocol": "*",
      "provisioningState": "Succeeded",
      "resourceGroup": "myResourceGroup",
      "sourceAddressPrefix": "*",
      "sourcePortRange": "*"
    },
    {
      "access": "Deny",
      "description": "Deny all outbound traffic",
      "destinationAddressPrefix": "*",
      "destinationPortRange": "*",
      "direction": "Outbound",
      "etag": "W/\"3371b313-ea9f-4687-a336-a8ebdfd80523\"",
      "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup/defaultSecurityRules/DenyAllOutBound",
      "name": "DenyAllOutBound",
      "priority": 65500,
      "protocol": "*",
      "provisioningState": "Succeeded",
      "resourceGroup": "myResourceGroup",
      "sourceAddressPrefix": "*",
      "sourcePortRange": "*"
    }
  ],
  "etag": "W/\"3371b313-ea9f-4687-a336-a8ebdfd80523\"",
  "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup",
  "location": "eastus",
  "name": "myNetworkSecurityGroup",
  "networkInterfaces": null,
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "resourceGuid": "47a9964e-23a3-438a-a726-8d60ebbb1c3c",
  "securityRules": [
    {
      "access": "Allow",
      "description": null,
      "destinationAddressPrefix": "*",
      "destinationPortRange": "22",
      "direction": "Inbound",
      "etag": "W/\"9e344b60-0daa-40a6-84f9-0ebbe4a4b640\"",
      "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup/securityRules/myNetworkSecurityGroupRuleSSH",
      "name": "myNetworkSecurityGroupRuleSSH",
      "priority": 1000,
      "protocol": "Tcp",
      "provisioningState": "Succeeded",
      "resourceGroup": "myResourceGroup",
      "sourceAddressPrefix": "*",
      "sourcePortRange": "*"
    },
    {
      "access": "Allow",
      "description": null,
      "destinationAddressPrefix": "*",
      "destinationPortRange": "80",
      "direction": "Inbound",
      "etag": "W/\"9e344b60-0daa-40a6-84f9-0ebbe4a4b640\"",
      "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup/securityRules/myNetworkSecurityGroupRuleWeb",
      "name": "myNetworkSecurityGroupRuleWeb",
      "priority": 1001,
      "protocol": "Tcp",
      "provisioningState": "Succeeded",
      "resourceGroup": "myResourceGroup",
      "sourceAddressPrefix": "*",
      "sourcePortRange": "*"
    }
  ],
  "subnets": null,
  "tags": null,
  "type": "Microsoft.Network/networkSecurityGroups"
}

Een virtuele NIC maken

Virtuele netwerkinterfacekaarten (NIC's) zijn programmatisch beschikbaar omdat u regels kunt toepassen op het gebruik ervan. Afhankelijk van de VM-grootte kunt u meerdere virtuele NIC's aan een VM koppelen. In de volgende az network nic create-opdracht maakt u een NIC met de naam myNic en koppelt u deze aan uw netwerkbeveiligingsgroep. Het openbare IP-adres myPublicIP is ook gekoppeld aan de virtuele NIC.

az network nic create \
    --resource-group myResourceGroup \
    --name myNic \
    --vnet-name myVnet \
    --subnet mySubnet \
    --public-ip-address myPublicIP \
    --network-security-group myNetworkSecurityGroup

Uitvoer:

{
  "NewNIC": {
    "dnsSettings": {
      "appliedDnsServers": [],
      "dnsServers": [],
      "internalDnsNameLabel": null,
      "internalDomainNameSuffix": "brqlt10lvoxedgkeuomc4pm5tb.bx.internal.cloudapp.net",
      "internalFqdn": null
    },
    "enableAcceleratedNetworking": false,
    "enableIpForwarding": false,
    "etag": "W/\"04b5ab44-d8f4-422a-9541-e5ae7de8466d\"",
    "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic",
    "ipConfigurations": [
      {
        "applicationGatewayBackendAddressPools": null,
        "etag": "W/\"04b5ab44-d8f4-422a-9541-e5ae7de8466d\"",
        "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic/ipConfigurations/ipconfig1",
        "loadBalancerBackendAddressPools": null,
        "loadBalancerInboundNatRules": null,
        "name": "ipconfig1",
        "primary": true,
        "privateIpAddress": "192.168.1.4",
        "privateIpAddressVersion": "IPv4",
        "privateIpAllocationMethod": "Dynamic",
        "provisioningState": "Succeeded",
        "publicIpAddress": {
          "dnsSettings": null,
          "etag": null,
          "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIP",
          "idleTimeoutInMinutes": null,
          "ipAddress": null,
          "ipConfiguration": null,
          "location": null,
          "name": null,
          "provisioningState": null,
          "publicIpAddressVersion": null,
          "publicIpAllocationMethod": null,
          "resourceGroup": "myResourceGroup",
          "resourceGuid": null,
          "tags": null,
          "type": null
        },
        "resourceGroup": "myResourceGroup",
        "subnet": {
          "addressPrefix": null,
          "etag": null,
          "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet",
          "ipConfigurations": null,
          "name": null,
          "networkSecurityGroup": null,
          "provisioningState": null,
          "resourceGroup": "myResourceGroup",
          "resourceNavigationLinks": null,
          "routeTable": null
        }
      }
    ],
    "location": "eastus",
    "macAddress": null,
    "name": "myNic",
    "networkSecurityGroup": {
      "defaultSecurityRules": null,
      "etag": null,
      "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup",
      "location": null,
      "name": null,
      "networkInterfaces": null,
      "provisioningState": null,
      "resourceGroup": "myResourceGroup",
      "resourceGuid": null,
      "securityRules": null,
      "subnets": null,
      "tags": null,
      "type": null
    },
    "primary": null,
    "provisioningState": "Succeeded",
    "resourceGroup": "myResourceGroup",
    "resourceGuid": "b3dbaa0e-2cf2-43be-a814-5cc49fea3304",
    "tags": null,
    "type": "Microsoft.Network/networkInterfaces",
    "virtualMachine": null
  }
}

Een beschikbaarheidsset maken

Beschikbaarheidssets helpen uw VM's te spreiden over foutdomeinen en updatedomeinen. Hoewel u op dit moment slechts één virtuele machine maakt, is het best practice om beschikbaarheidssets te gebruiken om het in de toekomst gemakkelijker uit te breiden.

Foutdomeinen definiëren een groep virtuele machines die een gemeenschappelijke voedingsbron en netwerkswitch delen. De virtuele machines die in uw beschikbaarheidsset zijn geconfigureerd, worden standaard verdeeld over maximaal drie foutdomeinen. Een hardwareprobleem in een van deze foutdomeinen is niet van invloed op elke VM waarop uw app wordt uitgevoerd.

Updatedomeinen geven groepen virtuele machines en onderliggende fysieke hardware aan die tegelijkertijd opnieuw kunnen worden opgestart. Tijdens gepland onderhoud is de volgorde waarin updatedomeinen opnieuw worden opgestart mogelijk niet opeenvolgend, maar wordt slechts één updatedomein tegelijk opnieuw opgestart.

Azure distribueert vm's automatisch over de fout- en updatedomeinen wanneer ze in een beschikbaarheidsset worden geplaatst. Zie De beschikbaarheid van VM's beheren voor meer informatie.

Maak een beschikbaarheidsset voor uw VM met az vm availability-set create. In het volgende voorbeeld wordt een beschikbaarheidsset met de naam myAvailabilitySet gemaakt:

az vm availability-set create \
    --resource-group myResourceGroup \
    --name myAvailabilitySet

De uitvoer noteert foutdomeinen en updatedomeinen:

{
  "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/myAvailabilitySet",
  "location": "eastus",
  "managed": null,
  "name": "myAvailabilitySet",
  "platformFaultDomainCount": 2,
  "platformUpdateDomainCount": 5,
  "resourceGroup": "myResourceGroup",
  "sku": {
    "capacity": null,
    "managed": true,
    "tier": null
  },
  "statuses": null,
  "tags": {},
  "type": "Microsoft.Compute/availabilitySets",
  "virtualMachines": []
}

Een virtuele machine maken

U hebt de netwerkbronnen gemaakt ter ondersteuning van via internet toegankelijke VM's. Maak nu een virtuele machine en beveilig deze met een SSH-sleutel. In dit voorbeeld gaan we een Ubuntu-VM maken op basis van de meest recente LTS. U vindt aanvullende installatiekopieën met az vm image list, zoals beschreven in Het zoeken naar Azure VM-installatiekopieën.

Geef een SSH-sleutel op die moet worden gebruikt voor verificatie. Als u geen openbaar SSH-sleutelpaar hebt, kunt u deze maken of de --generate-ssh-keys parameter gebruiken om ze voor u te maken. Als u al een sleutelpaar hebt, gebruikt deze parameter bestaande sleutels in ~/.ssh.

Maak de VM door alle resources en informatie samen te brengen met de opdracht az vm create . In het volgende voorbeeld wordt een VM met de naam myVM gemaakt:

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --location eastus \
    --availability-set myAvailabilitySet \
    --nics myNic \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys

SSH naar uw VM met de DNS-vermelding die u hebt opgegeven bij het maken van het openbare IP-adres. Dit fqdn wordt weergegeven in de uitvoer wanneer u de virtuele machine maakt:

{
  "fqdns": "mypublicdns.eastus.cloudapp.azure.com",
  "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "eastus",
  "macAddress": "00-0D-3A-13-71-C8",
  "powerState": "VM running",
  "privateIpAddress": "192.168.1.5",
  "publicIpAddress": "13.90.94.252",
  "resourceGroup": "myResourceGroup"
}
ssh azureuser@mypublicdns.eastus.cloudapp.azure.com

Uitvoer:

The authenticity of host 'mypublicdns.eastus.cloudapp.azure.com (13.90.94.252)' can't be established.
ECDSA key fingerprint is SHA256:SylINP80Um6XRTvWiFaNz+H+1jcrKB1IiNgCDDJRj6A.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'mypublicdns.eastus.cloudapp.azure.com,13.90.94.252' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.11.0-1016-azure x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  Get cloud support with Ubuntu Advantage Cloud Guest:
    https://www.ubuntu.com/business/services/cloud

0 packages can be updated.
0 updates are security updates.


The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

azureuser@myVM:~$

U kunt NGINX installeren en de verkeersstroom naar de VM bekijken. Installeer NGINX als volgt:

sudo apt-get install -y nginx

Als u de standaard NGINX-site in actie wilt zien, opent u uw webbrowser en voert u uw FQDN in:

Standaard NGINX-site op uw VM

Exporteren als sjabloon

Wat gebeurt er als u nu een extra ontwikkelomgeving wilt maken met dezelfde parameters, of een productieomgeving die hierop overeenkomt? Resource Manager gebruikt JSON-sjablonen waarmee alle parameters voor uw omgeving worden gedefinieerd. U bouwt volledige omgevingen op door te verwijzen naar deze JSON-sjabloon. U kunt handmatig JSON-sjablonen bouwen of een bestaande omgeving exporteren om de JSON-sjabloon voor u te maken. Gebruik az group export om uw resourcegroep als volgt te exporteren:

az group export --name myResourceGroup > myResourceGroup.json

Met deze opdracht maakt u het myResourceGroup.json bestand in uw huidige werkmap. Wanneer u een omgeving maakt op basis van deze sjabloon, wordt u gevraagd om alle resourcenamen. U kunt deze namen in het sjabloonbestand vullen door de --include-parameter-default-value parameter toe te voegen aan de az group export opdracht . Bewerk de JSON-sjabloon om de resourcenamen op te geven of maak een parameter.json-bestand waarin de resourcenamen worden opgegeven.

Als u een omgeving wilt maken van uw sjabloon, gebruikt u az deployment group create als volgt:

az deployment group create \
    --resource-group myNewResourceGroup \
    --template-file myResourceGroup.json

Misschien wilt u meer lezen over het implementeren vanuit sjablonen. Meer informatie over het incrementeel bijwerken van omgevingen, het gebruik van het parameterbestand en het openen van sjablonen vanaf één opslaglocatie.

Volgende stappen

Nu bent u klaar om aan de slag te gaan met meerdere netwerkonderdelen en VM's. U kunt deze voorbeeldomgeving gebruiken om uw toepassing uit te bouwen met behulp van de kernonderdelen die hier worden geïntroduceerd.