Rychlý start: Nasazení virtuálního počítače ve veřejném mec Azure pomocí šablony ARM
V tomto rychlém startu se dozvíte, jak pomocí šablony Azure Resource Manageru (ARM) nasadit virtuální počítač s Ubuntu Linuxem ve veřejných výpočetních prostředcích Azure s více přístupy (MEC).
Šablona Azure Resource Manageru je soubor JSON (JavaScript Object Notation), který definuje infrastrukturu a konfiguraci projektu. Tato šablona používá deklarativní syntaxi. Popíšete zamýšlené nasazení, aniž byste museli psát posloupnost programovacích příkazů pro vytvoření nasazení.
Požadavky
Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Přidejte do svého účtu Azure povolené předplatné, které umožňuje nasadit prostředky ve veřejném mec Azure. Pokud nemáte aktivní povolené předplatné, obraťte se na veřejný produktový tým MEC Azure.
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Poznámka:
Veřejná nasazení MEC Azure se podporují v Azure CLI verze 2.26 a novější.
Kontrola šablony
Projděte si následující příklad šablony ARM.
Každý prostředek, který nasadíte ve veřejném mec Azure, má další atribut s názvem
extendedLocation
, který Azure přidá k poskytovateli prostředků. Ukázková šablona ARM nasadí tyto prostředky:- Virtuální síť
- Veřejná IP adresa
- Síťové rozhraní
- Skupina zabezpečení sítě
- Virtuální počítač
V tomto příkladu šablony ARM:
- ID zóny Azure Edge se liší od zobrazovaného názvu veřejného mec Azure.
- Skupina zabezpečení sítě Azure má příchozí pravidlo, které umožňuje přístup přes SSH a HTTPS odkudkoli.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-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." } }, "vmSize": { "defaultValue": "Standard_D2s_v3", "type": "String", "metadata": { "description": "Size of the virtual machine." } }, "location": { "defaultValue": "[resourceGroup().location]", "type": "String", "metadata": { "description": "Location for all resources." } }, "EdgeZone": { "type": "String" }, "publisher": { "type": "string", "defaultValue": "Canonical", "metadata" : { "description": "Publisher for the VM Image" } }, "offer": { "type": "string", "defaultValue": "UbuntuServer", "metadata" : { "description": "Offer for the VM Image" } }, "sku": { "type": "string", "defaultValue": "18.04-LTS", "metadata" : { "description": "SKU for the VM Image" } }, "osVersion": { "type": "string", "defaultValue": "latest", "metadata" : { "description": "version for the VM Image" } }, "vmName": { "defaultValue": "myEdgeVM", "type": "String", "metadata": { "description": "VM Name." } } }, "variables": { "nicName": "myEdgeVMNic", "addressPrefix": "10.0.0.0/16", "subnetName": "Subnet", "subnetPrefix": "10.0.0.0/24", "publicIPAddressName": "myEdgePublicIP", "virtualNetworkName": "MyEdgeVNET", "subnetRef": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('virtualNetworkName'), variables('subnetName'))]", "networkSecurityGroupName": "default-NSG" }, "resources": [ { "type": "Microsoft.Network/publicIPAddresses", "apiVersion": "2018-11-01", "name": "[variables('publicIPAddressName')]", "location": "[parameters('location')]", "extendedLocation": { "type": "EdgeZone", "name": "[parameters('EdgeZone')]" }, "sku": { "name": "Standard" }, "properties": { "publicIPAllocationMethod": "Static", "dnsSettings": { "domainNameLabel": "[parameters('dnsLabelPrefix')]" } } }, { "type": "Microsoft.Network/networkSecurityGroups", "apiVersion": "2019-08-01", "name": "[variables('networkSecurityGroupName')]", "location": "[parameters('location')]", "properties": { "securityRules": [ { "name": "AllowHttps", "properties": { "description": "HTTPS is allowed", "protocol": "*", "sourcePortRange": "*", "destinationPortRange": "443", "sourceAddressPrefix": "*", "destinationAddressPrefix": "*", "access": "Allow", "priority": 130, "direction": "Inbound", "sourcePortRanges": [], "destinationPortRanges": [], "sourceAddressPrefixes": [], "destinationAddressPrefixes": [] } }, { "name": "AllowSSH", "properties": { "description": "HTTPS is allowed", "protocol": "*", "sourcePortRange": "*", "destinationPortRange": "22", "sourceAddressPrefix": "*", "destinationAddressPrefix": "*", "access": "Allow", "priority": 140, "direction": "Inbound", "sourcePortRanges": [], "destinationPortRanges": [], "sourceAddressPrefixes": [], "destinationAddressPrefixes": [] } } ] } }, { "type": "Microsoft.Network/virtualNetworks", "apiVersion": "2018-11-01", "name": "[variables('virtualNetworkName')]", "location": "[parameters('location')]", "extendedLocation": { "type": "EdgeZone", "name": "[parameters('EdgeZone')]" }, "dependsOn": [ "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]" ], "properties": { "addressSpace": { "addressPrefixes": [ "[variables('addressPrefix')]" ] }, "subnets": [ { "name": "[variables('subnetName')]", "properties": { "addressPrefix": "[variables('subnetPrefix')]", "networkSecurityGroup": { "id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]" } } } ] } }, { "type": "Microsoft.Network/networkInterfaces", "apiVersion": "2018-11-01", "name": "[variables('nicName')]", "location": "[parameters('location')]", "extendedLocation": { "type": "EdgeZone", "name": "[parameters('EdgeZone')]" }, "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": "2020-06-01", "name": "[parameters('vmName')]", "location": "[parameters('location')]", "extendedLocation": { "type": "EdgeZone", "name": "[parameters('EdgeZone')]" }, "dependsOn": [ "[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]" ], "properties": { "hardwareProfile": { "vmSize": "[parameters('vmSize')]" }, "osProfile": { "computerName": "[parameters('vmName')]", "adminUsername": "[parameters('adminUsername')]", "adminPassword": "[parameters('adminPassword')]" }, "storageProfile": { "imageReference": { "publisher": "[parameters('publisher')]", "offer": "[parameters('offer')]", "sku": "[parameters('sku')]", "version": "[parameters('osVersion')]" }, "osDisk": { "createOption": "FromImage", "managedDisk": { "storageAccountType": "StandardSSD_LRS" } } }, "networkProfile": { "networkInterfaces": [ { "id": "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]" } ] } } } ], "outputs": { "hostname": { "type": "String", "value": "[reference(variables('publicIPAddressName')).dnsSettings.fqdn]" }, "sshCommand": { "type": "string", "value": "[format('ssh {0}@{1}', parameters('adminUsername'), reference(resourceId('Microsoft.Network/publicIPAddresses', variables('publicIPAddressName'))).dnsSettings.fqdn)]" } } }
Nasazení šablony ARM pomocí Azure CLI
Uložte obsah ukázkové šablony ARM z předchozí části do souboru s názvem azurepublicmecDeploy.json.
Přihlaste se k Azure pomocí příkazu az login a nastavte předplatné Azure pomocí příkazu az account set .
az login az account set --subscription <subscription name>
Vytvořte skupinu prostředků Azure pomocí příkazu az group create. Skupina prostředků je logický kontejner, ve kterém se nasazují a spravují prostředky Azure. Následující příklad vytvoří skupinu prostředků myResourceGroup:
az group create --name myResourceGroup --location <location>
Poznámka:
Každý veřejný web MEC Azure je přidružený k oblasti Azure. Na základě veřejného umístění MEC Azure, kde je potřeba prostředek nasadit, vyberte pro parametr odpovídající hodnotu
--location
oblasti. Další informace najdete v tématu Klíčové koncepty veřejného MEC Azure.Pomocí příkazu az deployment group create nasaďte šablonu ARM ve skupině prostředků.
az deployment group create --resource-group myResourceGroup --template-file azurepublicmecDeploy.json
Please provide string value for 'adminUsername' (? for help): <username> Please provide securestring value for 'adminPassword' (? for help): <password> Please provide string value for 'dnsLabelPrefix' (? for help): <uniqueDnsLabel> Please provide string value for 'EdgeZone' (? for help): <edge zone ID>
Počkejte několik minut, než se nasazení spustí.
Po dokončení provádění příkazu uvidíte nové prostředky ve skupině prostředků myResourceGroup. Tady je ukázkový výstup:
{ "id": "/subscriptions/xxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Resources/deployments/edgeZonesDeploy", "location": null, "name": "edgeZonesDeploy", "properties": { "correlationId": "<xxxxxxxx>", "debugSetting": null, "dependencies": [ { "dependsOn": [ { "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroup /providers/Microsoft.Network/networkSecurityGroups/default-NSG", "resourceGroup": " myResourceGroup ", "resourceName": "default-NSG", "resourceType": "Microsoft.Network/networkSecurityGroups" } ], "id": "/subscriptions/xxxxxx/resourceGroups/ myResourceGroup /providers/Microsoft.Network/virtualNetworks/MyEdgeTestVnet", "resourceGroup": " myResourceGroup ", "resourceName": " MyEdgeTestVnet ", "resourceType": "Microsoft.Network/virtualNetworks" }, "outputs": { "hostname": { "type": "String", "value": "xxxxx.cloudapp.azure.com" }, "sshCommand": { "type": "String", "value": "ssh <adminUsername>@<publicIPFQDN>" } }, ... }
Přístup k virtuálnímu počítači
Pokud se chcete pomocí SSH připojit k virtuálnímu počítači ve veřejném prostředí MEC Azure, je nejlepší metodou nasazení jump boxu v nadřazené oblasti Azure.
Postupujte podle pokynů v části Vytvoření virtuálního počítače v oblasti.
Pomocí SSH se připojte k virtuálnímu počítači jump boxu nasazeného v dané oblasti.
ssh <username>@<regionVM_publicIP>
Z jump boxu se pomocí SSH připojte k virtuálnímu počítači vytvořenému ve veřejném mec Azure.
ssh <username>@<edgezoneVM_publicIP>
Vyčištění prostředků
V tomto rychlém startu jste pomocí Azure CLI nasadili šablonu ARM ve veřejném mec Azure. Pokud v budoucnu tyto prostředky nepotřebujete, pomocí příkazu az group delete odeberte skupinu prostředků, škálovací sadu a všechny související prostředky. Použití parametru --yes
odstraní prostředky bez výzvy k potvrzení.
az group delete \--name myResourceGroup \--yes
Další kroky
Pokud chcete nasadit virtuální počítač ve veřejném mec Azure pomocí Azure CLI, přejděte k následujícímu článku: