Vytváření virtuálních počítačů (VM) – Azure CLI | Microsoft Docs
V tomto kurzu se naučíte všechny kroky, které se týkají vytváření virtuálních počítačů pomocí Azure CLI. Tento kurz se věnuje také výstupním dotazům, znovupoužití prostředků Azure a vyčištění prostředků.
Tento kurz můžete dokončit v interaktivním prostředí, které nabízí Azure Cloud Shell, nebo můžete nainstalovat rozhraní příkazového řádku místně.
Pomocí klávesové zkratky Ctrl + Shift + V (Cmd + Shift + V v systému macOS) vložíte text z kurzu do služby Azure Cloud Shell.
Přihlášení
Pokud používáte místní instalaci rozhraní příkazového řádku, před provedením dalších kroků se musíte přihlásit.
az login
Dokončete proces ověřování podle kroků zobrazených v terminálu.
Vytvoření skupiny prostředků
V Azure se prostředky přidělují v rámci skupiny správy prostředků. Skupiny prostředků zajišťují logické seskupení prostředků a tím usnadňují práci s nimi jako s kolekcí. Pro účely tohoto kurzu se všechny vytvořené prostředky umisťují do jedné skupiny TutorialResources.
az group create --name TutorialResources --location eastus
Vytvoření virtuálního počítače
Virtuální počítače v Azure mají velký počet závislostí. Rozhraní příkazového řádku vytvoří tyto prostředky za vás na základě argumentů příkazového řádku, které zadáte.
Vytvořte nový virtuální počítač s Ubuntu, který pro přihlašování využívá ověřování SSH.
az vm create --resource-group TutorialResources \
--name TutorialVM1 \
--image UbuntuLTS \
--generate-ssh-keys \
--output json \
--verbose
Poznámka
Pokud již máte k dispozici klíč SSH id_rsa, místo generování nového klíče se k ověřování použije tento klíč.
Kvůli použití možnosti --verbose se při vytváření virtuálního počítače zobrazí použité místní hodnoty a vytvářené prostředky Azure.
Jakmile bude virtuální počítač připravený, služba Azure vrátí JSON obsahující veřejnou IP adresu.
{
"fqdns": "",
"id": "...",
"location": "eastus",
"macAddress": "...",
"powerState": "VM running",
"privateIpAddress": "...",
"publicIpAddress": <PUBLIC_IP_ADDRESS>,
"resourceGroup": "TutorialResources",
"zones": ""
}
Připojením přes SSH ověřte, že je virtuální počítač spuštěný.
ssh <PUBLIC_IP_ADDRESS>
Pokračujte a odhlaste se z virtuálního počítače.
Po spuštění virtuálního počítače můžete tuto IP adresu získat několika jinými způsoby. V další části se dozvíte, jak získat podrobné informace o virtuálním počítači a jak je filtrovat.
Získání informací o virtuálním počítači pomocí dotazů
Když je teď virtuální počítač vytvořený, můžete o něm načíst podrobné informace. Společným příkazem pro získání informací z prostředku je show.
az vm show --name TutorialVM1 --resource-group TutorialResources
Zobrazí se velké množství informací, které může být obtížné analyzovat vizuálně. Vrácený JSON obsahuje informace o ověřování, síťových rozhraních, úložišti a řadu dalších. Co je nejdůležitější, obsahuje ID objektů Azure pro prostředky, ke kterým je virtuální počítač připojený. ID objektů umožňují přímý přístup k těmto prostředkům za účelem získání dalších informací o konfiguraci a možnostech daného virtuálního počítače.
K extrakci požadovaného ID objektu se používá argument --query. Dotazy se zapisují v dotazovacím jazyku JMESPath. Začněte získáním ID objektu řadiče síťového rozhraní (NIC).
az vm show --name TutorialVM1 \
--resource-group TutorialResources \
--query 'networkProfile.networkInterfaces[].id' \
--output tsv
Pouhým přidáním dotazu tady dochází k mnoha věcem. Každá část dotazu odkazuje na klíč ve výstupním kódu JSON nebo je operátorem JMESPath.
networkProfileje klíč JSON nejvyšší úrovně, který má jako podklíčnetworkInterfaces. Pokud je hodnota JSON slovník, odkazuje se na její klíče z nadřazeného klíče pomocí operátoru..- Hodnota
networkInterfacesje pole, takže se pomocí operátoru[]zploští. Tento operátor spustí zbývající část dotazu pro každý prvek pole. V tomto případě získá hodnotuidkaždého prvku pole.
Formát výstupu tsv (hodnoty oddělené tabulátory) zaručuje, že výstup bude obsahovat pouze výsledná data a prázdné znaky v podobě tabulátorů a nových řádků.
Vzhledem k tomu, že vrácená hodnota je jeden prostý řetězec, můžete ji bez obav přiřadit přímo do proměnné prostředí.
Pokračujte a přiřaďte teď ID objektu NIC do proměnné prostředí.
NIC_ID=$(az vm show -n TutorialVM1 -g TutorialResources \
--query 'networkProfile.networkInterfaces[].id' \
-o tsv)
Tento příklad ukazuje také použití krátkých argumentů. Můžete použít -g místo --resource-group, -n místo --name a -o místo --output.
Nastavení proměnných prostředí z výstupu rozhraní příkazového řádku
Když teď máte ID NIC, spuštěním příkazu az network nic show o něm získejte informace. Všimněte si, že tady nepotřebujete skupinu prostředků, protože název skupiny prostředků je obsažený v rámci ID prostředku Azure.
az network nic show --ids $NIC_ID
Tento příkaz zobrazí všechny informace o síťovém rozhraní virtuálního počítače. Tato data zahrnují nastavení DNS, informace o IP adrese, nastavení zabezpečení a adresu MAC. Právě teď je cílem získat veřejnou IP adresu a ID objektů podsítě.
az network nic show --ids $NIC_ID \
--query '{IP:ipConfigurations[].publicIpAddress.id, Subnet:ipConfigurations[].subnet.id}' \
-o json
{
"IP": [
"/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/publicIPAddresses/TutorialVM1PublicIP"
],
"Subnet": [
"/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/virtualNetworks/TutorialVM1VNET/subnets/TutorialVM1Subnet"
]
}
Tento příkaz zobrazí objekt JSON s vlastními klíči (IP a Subnet) pro extrahované hodnoty. Přestože tento styl výstupu nemusí být užitečný pro nástroje příkazového řádku, je přehlednější pro člověka a dá se použít ve vlastních skriptech.
Pokud chcete použít nástroje příkazového řádku, změňte příkaz tak, aby se odebraly vlastní klíče JSON a výstup byl ve formátu tsv. Tento styl výstupu může zpracovat příkaz prostředí read a načíst výsledky do více proměnných. Vzhledem k tomu, že se zobrazí dvě hodnoty na samostatných řádcích, musí se použít oddělovač příkazu read, který místo výchozího prázdného znaku, který není novým řádkem, nastaví prázdný řetězec.
read -d '' IP_ID SUBNET_ID <<< $(az network nic show \
--ids $NIC_ID \
--query '[ipConfigurations[].publicIpAddress.id, ipConfigurations[].subnet.id]' \
-o tsv)
ID podsítě nepoužijete hned, ale měli byste ho uložit, abyste ho nemuseli znovu hledat později. Prozatím použijte ID objektu veřejné IP adresy k vyhledání veřejné IP adresy a uložte ji do proměnné prostředí.
VM1_IP_ADDR=$(az network public-ip show --ids $IP_ID \
--query ipAddress \
-o tsv)
Teď máte IP adresu virtuálního počítače uloženou v proměnné prostředí. Pokračujte a zkontrolujte, že je to stejná hodnota, jakou jste použili k počátečnímu připojení k virtuálnímu počítači.
echo $VM1_IP_ADDR
Vytvoření nového virtuálního počítače v existující podsíti
Druhý virtuální počítač využívá existující podsíť. Rovnou můžete přeskočit několik kroků k uložení veřejné IP adresy nového virtuálního počítače do proměnné prostředí, protože se vrátí v informacích o vytvoření virtuálního počítače. Pokud budete později potřebovat další informace o virtuálním počítači, můžete je kdykoli získat příkazem az vm show.
VM2_IP_ADDR=$(az vm create -g TutorialResources \
-n TutorialVM2 \
--image UbuntuLTS \
--generate-ssh-keys \
--subnet $SUBNET_ID \
--query publicIpAddress \
-o tsv)
S použitím uložené IP adresy se připojte přes SSH k nově vytvořenému virtuálnímu počítači.
ssh $VM2_IP_ADDR
Pokračujte a odhlaste se z virtuálního počítače.
Vyčištění
Po dokončení kurzu je teď čas vyčistit vytvořené prostředky. Můžete odstranit jednotlivé prostředky pomocí příkazu delete, ale nejbezpečnější způsob, jak odebrat všechny prostředky ve skupině prostředků, je použít příkaz group delete.
az group delete --name TutorialResources --no-wait
Tento příkaz odebere prostředky vytvořené během kurzu a zaručí jejich uvolnění ve správném pořadí. Parametr --no-wait zajišťuje, aby se během odstraňování neblokovalo rozhraní příkazového řádku. Pokud chcete čekat na dokončení odstraňování nebo sledovat jeho průběh, použijte příkaz group wait.
az group wait --name TutorialResources --deleted
Po dokončení vyčištění je kurz u konce. Pokračujte k souhrnu všeho, co jste se naučili, a odkazům na zdroje informací, které vám pomůžou v dalších krocích.
Souhrn
Blahopřejeme! Naučili jste se vytvářet virtuální počítače s využitím nových nebo existujících prostředků, pomocí argumentů --query a --output jste zachytili data k uložení do proměnných prostředí a prohlédli jste si několik prostředků, které se generují pro virtuální počítače Azure.
Kam budou směřovat vaše další kroky záleží na tom, k čemu chcete rozhraní příkazového řádku použít. Existuje široká škála materiálů, které podrobněji popisují funkce zmíněné v tomto kurzu.
ukázky
Pokud chcete rovnou začít s konkrétními úlohami, prohlédněte si některé ukázkové skripty.
- Práce s virtuálními počítači s Linuxem a virtuálními počítači s Windows
- Práce s webovými aplikacemi a Azure Functions
- Práce s databázemi – Databáze Azure SQL, PostgreSQL, MySQL a CosmosDB
Podrobná dokumentace k rozhraní příkazového řádku
Existují také témata, která se podrobněji zabývají funkcemi rozhraní příkazového řádku ukázanými v tomto kurzu.
- Další informace o formátech výstupu
- Další informace o výstupních dotazech
- Další informace o autorizaci v Azure
Další užitečná dokumentace
Možná budete chtít věnovat trochu času prozkoumání pokročilejších funkcí rozhraní příkazového řádku, jako jsou konfigurace výchozích hodnot nebo rozšíření.
Váš názor
Pokud se chcete podělit o své zkušenosti a návrhy nebo položit dotazy týkající se rozhraní příkazového řádku, můžete se s námi spojit několika způsoby.
az feedbackje integrovaný příkaz pro rozhraní příkazového řádku, který umožňuje poskytování zpětné vazby týmu bez použití formuláře.- Podat žádost o funkci nebo nahlásit chybu v rozhraní příkazového řádku můžete v úložišti Azure CLI.
- Položit dotaz nebo získat další informace můžete založením problému v úložišti dokumentace k Azure CLI.
Doufáme, že jste s novým Azure CLI spokojeni.
Máte s touto částí nějaké problémy? Pokud ano, dejte nám prosím vědět, abychom tuto část mohli vylepšit.