Vytvoření kompletního virtuálního počítače s Linuxem pomocí Azure CLI

Platí pro: ✔️ Virtuální počítače s Linuxem

Pokud chcete rychle vytvořit virtuální počítač v Azure, můžete použít jeden příkaz Azure CLI, který používá výchozí hodnoty k vytvoření požadovaných podpůrných prostředků. Prostředky, jako jsou virtuální síť, veřejná IP adresa a pravidla skupiny zabezpečení sítě, se vytvoří automaticky. Pokud chcete mít větší kontrolu nad prostředím při používání v produkčním prostředí, můžete tyto prostředky vytvořit předem a pak do nich přidat virtuální počítače. Tento článek vás provede postupem vytvoření virtuálního počítače a jednotlivých podpůrných prostředků jeden po druhém.

Ujistěte se, že jste nainstalovali nejnovější Rozhraní příkazového řádku Azure a přihlásili se k účtu Azure pomocí příkazu az login.

V následujících příkladech nahraďte příklady názvů parametrů vlastními hodnotami. Mezi příklady názvů parametrů patří myResourceGroup, myVnet a myVM.

Vytvoření skupiny prostředků

Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure. Skupina prostředků se musí vytvořit před vytvořením virtuálního počítače a podpůrných prostředků virtuální sítě. Vytvořte skupinu prostředků pomocí příkazu az group create. Následující příklad vytvoří skupinu prostředků myResourceGroup v umístění eastus :

az group create --name myResourceGroup --location eastus

Ve výchozím nastavení je výstup příkazů Azure CLI ve formátu JSON (JavaScript Object Notation). Pokud například chcete změnit výchozí výstup na seznam nebo tabulku, použijte příkaz az config set core.output=table. Můžete také přidat --output do libovolného příkazu jednorázovou změnu výstupního formátu. Následující příklad ukazuje výstup JSON z az group create příkazu :

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

Vytvoření virtuální sítě a podsítě

Dále vytvoříte virtuální síť v Azure a podsíť, ve které můžete vytvářet virtuální počítače. Pomocí příkazu az network vnet create vytvořte virtuální síť myVnet s předponou adresy 192.168.0.0/16 . Přidáte také podsíť s názvem mySubnet s předponou adresy 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

Výstup ukazuje, že podsíť je logicky vytvořená uvnitř virtuální sítě:

{
  "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
}

Vytvoření veřejné IP adresy

Teď vytvoříme veřejnou IP adresu pomocí příkazu az network public-ip create. Tato veřejná IP adresa umožňuje připojit se k virtuálním počítačům z internetu. Vzhledem k tomu, že výchozí adresa je dynamická, vytvořte pojmenovanou položku DNS s parametrem --domain-name-label . Následující příklad vytvoří veřejnou IP adresu myPublicIP s názvem DNS mypublicdns. Protože název DNS musí být jedinečný, zadejte vlastní jedinečný název DNS:

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

Výstup:

{
  "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"
  }
}

Vytvoření skupiny zabezpečení sítě

Pokud chcete řídit tok provozu do a z virtuálních počítačů, použijte skupinu zabezpečení sítě na virtuální síťovou kartu nebo podsíť. Následující příklad pomocí příkazu az network nsg create vytvoří skupinu zabezpečení sítě myNetworkSecurityGroup:

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

Definujete pravidla, která povolují nebo zakazují konkrétní provoz. Pokud chcete povolit příchozí připojení na portu 22 (pokud chcete povolit přístup SSH, vytvořte příchozí pravidlo pomocí příkazu az network nsg rule create. Následující příklad vytvoří pravidlo s názvem myNetworkSecurityGroupRuleSSH:

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

Pokud chcete povolit příchozí připojení na portu 80 (pro webový provoz), přidejte další pravidlo skupiny zabezpečení sítě. Následující příklad vytvoří pravidlo s názvem myNetworkSecurityGroupRuleHTTP:

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

Prozkoumejte skupinu zabezpečení sítě a pravidla pomocí příkazu az network nsg show:

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

Výstup:

{
  "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"
}

Vytvoření virtuální síťové karty

Virtuální síťové karty (NIC) jsou k dispozici prostřednictvím kódu programu, protože pro jejich použití můžete použít pravidla. V závislosti na velikosti virtuálního počítače můžete k virtuálnímu počítači připojit více virtuálních síťových karet. V následujícím příkazu az network nic create vytvoříte síťové rozhraní myNic a přidružíte ho ke skupině zabezpečení sítě. K virtuální síťové kartě je přidružená také veřejná IP adresa myPublicIP .

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

Výstup:

{
  "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
  }
}

Vytvoření skupiny dostupnosti

Skupiny dostupnosti pomáhají rozprostřít virtuální počítače mezi domény selhání a aktualizační domény. I když právě teď vytváříte jenom jeden virtuální počítač, osvědčeným postupem je používat skupiny dostupnosti, které vám v budoucnu usnadní rozšíření.

Domény selhání definují seskupení virtuálních počítačů, které sdílejí společný zdroj napájení a síťový přepínač. Ve výchozím nastavení jsou virtuální počítače nakonfigurované v rámci vaší skupiny dostupnosti rozdělené až do tří domén selhání. Problém s hardwarem v jedné z těchto domén selhání nemá vliv na všechny virtuální počítače, na kterých je spuštěná vaše aplikace.

Aktualizační domény označují skupiny virtuálních počítačů a základního fyzického hardwaru, které je možné restartovat současně. Během plánované údržby nemusí být pořadí, ve kterém se aktualizační domény restartují, sekvenční, ale současně se restartuje jenom jedna aktualizační doména.

Azure při umísťování virtuálních počítačů do skupiny dostupnosti automaticky distribuuje virtuální počítače napříč doménami selhání a aktualizačními doménami. Další informace najdete v tématu správa dostupnosti virtuálních počítačů.

Vytvořte skupinu dostupnosti pro virtuální počítač pomocí příkazu az vm availability-set create. Následující příklad vytvoří skupinu dostupnosti myAvailabilitySet:

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

Výstup zaznamená domény selhání a aktualizační domény:

{
  "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": []
}

Vytvoření virtuálního počítače

Vytvořili jste síťové prostředky pro podporu virtuálních počítačů přístupných z internetu. Teď vytvořte virtuální počítač a zabezpečte ho pomocí klíče SSH. V tomto příkladu vytvoříme virtuální počítač s Ubuntu na základě nejnovější verze LTS. Další image můžete najít pomocí příkazu az vm image list, jak je popsáno v tématu Vyhledání imagí virtuálních počítačů Azure.

Zadejte klíč SSH, který se má použít k ověřování. Pokud nemáte pár veřejných klíčů SSH, můžete je vytvořit nebo použít --generate-ssh-keys parametr a vytvořit je za vás. Pokud už pár klíčů máte, používá tento parametr existující klíče v nástroji ~/.ssh.

Vytvořte virtuální počítač tak, že pomocí příkazu az vm create spojíte všechny prostředky a informace. Následující příklad vytvoří virtuální počítač myVM:

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

K virtuálnímu počítači se přes SSH připojíte pomocí položky DNS, kterou jste zadali při vytváření veřejné IP adresy. To fqdn se zobrazí ve výstupu při vytváření virtuálního počítače:

{
  "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

Výstup:

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:~$

Můžete nainstalovat NGINX a zobrazit tok provozu do virtuálního počítače. Nainstalujte NGINX následujícím způsobem:

sudo apt-get install -y nginx

Pokud chcete vidět výchozí web NGINX v akci, otevřete webový prohlížeč a zadejte svůj plně kvalifikovaný název domény:

Výchozí web NGINX na virtuálním počítači

Exportovat jako šablonu

Co když teď chcete vytvořit další vývojové prostředí se stejnými parametry nebo produkční prostředí, které mu odpovídá? Resource Manager používá šablony JSON, které definují všechny parametry pro vaše prostředí. Celá prostředí sestavíte pomocí odkazu na tuto šablonu JSON. Šablony JSON můžete vytvořit ručně nebo exportovat existující prostředí a vytvořit šablonu JSON za vás. Pomocí příkazu az group export vyexportujte skupinu prostředků následujícím způsobem:

az group export --name myResourceGroup > myResourceGroup.json

Tento příkaz vytvoří myResourceGroup.json soubor v aktuálním pracovním adresáři. Při vytváření prostředí z této šablony se zobrazí výzva k zadání všech názvů prostředků. Tyto názvy můžete do souboru šablony naplnit přidáním --include-parameter-default-value parametru do az group export příkazu . Upravte šablonu JSON a zadejte názvy prostředků nebo vytvořte soubor parameters.json , který určuje názvy prostředků.

K vytvoření prostředí ze šablony použijte příkaz az deployment group create následujícím způsobem:

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

Možná si budete chtít přečíst další informace o nasazení ze šablon. Zjistěte, jak postupně aktualizovat prostředí, používat soubor parametrů a přistupovat k šablonům z jednoho umístění úložiště.

Další kroky

Teď můžete začít pracovat s několika síťovými komponentami a virtuálními počítači. Toto ukázkové prostředí můžete použít k sestavení aplikace pomocí zde uvedených základních komponent.