Övning – Styra distributionsordningen för resurser

Slutförd

I den här delen börjar du med att utföra lite grundläggande konfiguration. Öppna Visual Studio Code och anslut en terminalsession till Azure-prenumerationen som ingår i den kostnadsfria sandbox-miljön i Azure. På så sätt kan du autentisera kommandon till Azure.

Sedan kör du en enkel ARM-mall som etablerar en virtuell Linux-dator (VM). När distributionen är klar kontrollerar du att den virtuella datorn körs och går att ansluta till.

Även om arbete med virtuella datorer är en vanlig uppgift upptäcker du att en VM-resurs behöver nätverks- och lagringskomponenter som måste finnas innan det går att skapa den virtuella datorn. Du ser hur konstruktionen dependsOn gör att du kan ange i vilken ordning resurserna etableras.

Ställ in

Öppna Visual Studio Code, skapa en PowerShell-session och anslut till Azure-prenumerationen som ingår i den kostnadsfria sandbox-miljön i Azure.

Du behöver bara utföra de här förberedande uppgifterna en gång under modulen. Om du skulle logga ut eller kopplas ned senare kan du gå tillbaka till de här stegen.

Öppna PowerShell i Visual Studio Code

  1. Öppna Visual Studio Code.

  2. Öppna ett terminalfönster via Terminal-menyn.

  3. Om listmenyn till höger om terminalfönstret visar pwsh har du rätt gränssnitt att arbeta från och kan gå vidare till nästa avsnitt.

    Screenshot of Terminal window, terminal type.

  4. Annars markerar du listrutan och väljer Välj standardgränssnitt.

  5. Välj pwsh.

    Screenshot that shows selecting a shell from the drop-down menu.

  6. Välj + i terminalen för att skapa en ny terminal med pwsh som gränssnitt.

Logga in på Azure

  1. Kör Connect-AzAccount för att logga in på ditt konto.

    Connect-AzAccount
    

    Ett webbläsarfönster öppnas.

  2. Välj det konto du använde till att aktivera sandbox-miljön och stäng webbläsarfönstret när du uppmanas till det.

Ange den aktiva prenumerationen

  1. Kör Get-AzSubscription för att hämta sandbox-miljöns prenumerations-ID.

    Get-AzSubscription
    

    Leta efter Concierge Subscription och kopiera den andra kolumnen. Det ser ut ungefär som cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0.

  2. Kör Set-AzContext för att ändra din aktiva prenumeration till Concierge Subscription.

    Kommentar

    Kom ihåg att ersätta {Your subscription ID} med ID:t för Concierge Subscription som du hämtade med det senaste kommandot.

    $subscription = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $subscription
    

Ange standardresursgruppen

När du kör ett Azure CLI-kommando måste du normalt ange en resursgrupp.

Det finns dock en standardresursgrupp i sandbox-miljön. Du kan göra följande Azure CLI-kommandon enklare att köra genom att ställa in standardresursgruppen.

Kör cmdleten Set-AzDefault för att ställa in standardresursgruppen.

Set-AzDefault -ResourceGroupName <rgn>resource group name</rgn>

Kommentar

När du distribuerar resurser i Azure med PowerShell behöver du normalt ange en resursgrupp. Du kringgår det här kravet genom att ange en kontext för distributionen med Set-AzDefault.

Vad ingår i en vanlig VM-distribution

När du distribuerar en virtuell dator måste du tänka på att flera andra resurser måste distribueras tillsammans med den för att den virtuella datorn ska fungera.

Här är en kort sammanfattning av de resurser som normalt behöver distribueras tillsammans med en virtuell dator:

  • Microsoft.Storage/storageAccounts. Ett lagringskonto tillhandahåller diskutrymme för operativsystem och filer.
  • Microsoft.Network/publicIPAddresses. En offentlig IP-adress gör att du kan ansluta till den virtuella datorn från internet.
  • Microsoft.Network/networkSecurityGroups. En nätverkssäkerhetsgrupp innehåller regler för hantering av inkommande och utgående trafik till och från det virtuella nätverket.
  • Microsoft.Network/virtualNetworks. Din virtuella dator måste placeras i ett virtuellt nätverk. Nätverkssäkerhetsgruppen måste distribueras innan den här resursen.
  • Microsoft.Network/networkInterfaces. Den här resursen är beroende av två andra resurser: den offentliga IP-adressen och det virtuella nätverket.
  • Microsoft.Compute/virtualMachines. Den virtuella datorn är den primära resurs du vill distribuera. Den är beroende av två olika resurser: lagringskontot och nätverksgränssnitten.

Distribuera en virtuell Linux-dator

Här laddar du ned en ARM-mall från en GitHub-lagringsplats som vi tillhandahåller. Mallen etablerar en virtuell Linux-dator och alla resurser som krävs för att köra den.

  1. Kör följande curl-kommando för att ladda ned ARM-mallen:

    curl -O 'https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-linux/azuredeploy.json'
    
  2. Kör cmdleten ConvertTo-SecureString och tilldela resultatet till en PowerShell-variabel med namnet $secure:

    $secure = "insecurepassword123!" | ConvertTo-SecureString -AsPlainText -Force
    

    Nu har du en krypterad version av lösenordet som du kan skicka via distributionsskriptet i nästa steg.

  3. Kör kommandot New-AzResourceGroupDeployment för att distribuera mallen:

    New-AzResourceGroupDeployment `
      -TemplateFile "./azuredeploy.json" `
      -adminUsername "azureuser" `
      -vmName "vm1" `
      -adminPasswordOrKey $secure
    

    Det kan ta några minuter att köra kommandot. Medan kommandot körs kan du granska ARM-mallen i en separat webbläsarflik om du vill.

    Observera resursberoendena genom att söka efter nyckeln dependsOn. Den virtuella datorresursen är till exempel beroende av nätverksgränssnittet:

    "type": "Microsoft.Compute/virtualMachines",
    "apiVersion": "2020-06-01",
    "name": "[parameters('vmName')]",
    "location": "[parameters('location')]",
    "dependsOn": [
      "[resourceId('Microsoft.Network/networkInterfaces/', variables('networkInterfaceName'))]"
    ],
    

Verifiera distributionen

Kontrollera att den virtuella datorn är etablerad och går att ansluta till via SSH. Så här gör du:

  1. Kör kommandot Invoke-Expression för att ansluta till den virtuella datorn via SSH:

    Invoke-Expression (Get-AzResourceGroupDeployment -Name azuredeploy -ResourceGroupName <rgn>your resource group</rgn>).outputs.sshCommand.value
    

    När du uppmanas till det anger du yes för att fortsätta ansluta. Ange sedan administratörslösenordet . insecurepassword123!

    Viktigt!

    I praktiken bör du använda säkra lösenord. Du kan också autentisera med offentlig nyckel, vilket normalt är säkrare än att använda lösenord.

  2. Utgå från SSH-anslutningen till den virtuella datorn och kör hostname för att skriva ut den virtuella datorns värdnamn:

    hostname
    

    Du ser den virtuella datorns interna värdnamn: vm1

    vm1
    
  3. Kör exit för att stänga SSH-sessionen.

    exit
    

Grattis, nu har du distribuerat en virtuell Linux-dator med hjälp av en ARM-mall. En virtuell dator är en vanlig resurstyp som är beroende av andra resurser.

Ställ in

Öppna Visual Studio Code, skapa en terminalsession och anslut till Azure-prenumerationen som ingår i den kostnadsfria sandbox-miljön i Azure.

Du behöver bara utföra de här förberedande uppgifterna en gång under modulen. Om du skulle logga ut eller kopplas ned senare kan du gå tillbaka till de här stegen.

Öppna en shell-miljö i Visual Studio Code

  1. Öppna Visual Studio Code.

  2. Öppna ett terminalfönster via Terminal-menyn.

  3. Om listrutan innehåller den shell-miljö du vill använda (som bash eller zsh) kan du gå vidare till nästa avsnitt.

  4. Annars markerar du listrutan och väljer Välj standardgränssnitt.

  5. Välj den shell-miljö du vill använda.

    Screenshot that shows selecting a shell from the drop-down menu.

  6. Välj + i terminalen för att skapa en ny terminal med önskad shell-miljö.

Logga in på Azure

  1. Från terminalen kör az login:

    az login
    

    Ett webbläsarfönster öppnas.

  2. Välj det konto du använde till att aktivera sandbox-miljön och stäng webbläsarfönstret när du uppmanas till det.

Ange den aktiva prenumerationen

Kör följande az account set-kommando för att ställa in sandbox-miljön i Azure som aktiv prenumeration:

az account set -s "Concierge Subscription"

Kommentar

Om kommandot misslyckas kör du az account list --refresh --all och sedan az account set-kommandot igen.

Ange standardresursgruppen

När du kör ett Azure CLI-kommando måste du normalt ange en resursgrupp.

Det finns dock en standardresursgrupp i sandbox-miljön. Du kan göra följande Azure CLI-kommandon enklare att köra genom att ställa in standardresursgruppen.

Kör följande az configure-kommando för att ställa in standardresursgruppen:

az configure --defaults group=<rgn>resource group name</rgn>

Vad ingår i en vanlig VM-distribution

När du distribuerar en virtuell dator måste du tänka på att flera andra resurser måste distribueras tillsammans med den för att den virtuella datorn ska fungera.

Här är en kort sammanfattning av de resurser som normalt behöver distribueras tillsammans med en virtuell dator:

  • Microsoft.Storage/storageAccounts. Ett lagringskonto tillhandahåller diskutrymme för operativsystem och filer.
  • Microsoft.Network/publicIPAddresses. En offentlig IP-adress gör att du kan ansluta till den virtuella datorn från internet.
  • Microsoft.Network/networkSecurityGroups. En nätverkssäkerhetsgrupp innehåller regler för hantering av inkommande och utgående trafik till och från det virtuella nätverket.
  • Microsoft.Network/virtualNetworks. Din virtuella dator måste placeras i ett virtuellt nätverk. Nätverkssäkerhetsgruppen måste distribueras innan den här resursen.
  • Microsoft.Network/networkInterfaces. Den här resursen är beroende av två andra resurser: den offentliga IP-adressen och det virtuella nätverket.
  • Microsoft.Compute/virtualMachines. Den virtuella datorn är den primära resurs du vill distribuera. Den är beroende av två olika resurser: lagringskontot och nätverksgränssnitten.

Distribuera en virtuell Linux-dator

Här laddar du ned en ARM-mall från en GitHub-lagringsplats som vi tillhandahåller. Mallen etablerar en virtuell Linux-dator och alla resurser som krävs för att köra den.

  1. Kör följande wget-kommando för att ladda ned ARM-mallen:

    wget https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-linux/azuredeploy.json
    

    Om du inte har wget installerat kan du köra det här curl-kommandot:

    curl https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-linux/azuredeploy.json > azuredeploy.json
    
  2. Kör kommandot az deployment group create för att distribuera mallen:

    az deployment group create \
      --template-file azuredeploy.json \
      --parameters adminUsername=azureuser vmName=vm1 adminPasswordOrKey='insecurepassword123!'
    

    Det kan ta några minuter att köra kommandot. Medan kommandot körs kan du granska ARM-mallen i en separat webbläsarflik om du vill.

    Observera resursberoendena genom att söka efter nyckeln dependsOn. Den virtuella datorresursen är till exempel beroende av nätverksgränssnittet:

    "type": "Microsoft.Compute/virtualMachines",
    "apiVersion": "2020-06-01",
    "name": "[parameters('vmName')]",
    "location": "[parameters('location')]",
    "dependsOn": [
      "[resourceId('Microsoft.Network/networkInterfaces/', variables('networkInterfaceName'))]"
    ],
    

Verifiera distributionen

Kontrollera att den virtuella datorn är etablerad och går att ansluta till via SSH. Så här gör du:

  1. Kör följande az deployment group list-kommando för att visa distributionsgrupperna i prenumerationen:

    az deployment group list --output table
    

    Du ser en distributionsgrupp med namnet azuredeploy:

    Name         ResourceGroup                               State      Timestamp                         Mode
    -----------  ------------------------------------------  ---------  --------------------------------  -----------
    azuredeploy  learn-1ef901aa-3f6a-46aa-8e93-a7f11e5192b8  Succeeded  2020-11-24T17:55:39.762517+00:00  Incremental
    
  2. Kör följande az deployment group show-kommando för att visa SSH-kommandot du kan använda för att ansluta till den virtuella datorn:

    az deployment group show \
      --name azuredeploy \
      --query properties.outputs.sshCommand.value \
      --output tsv
    

    ARM-mallen definierar den här egenskapen i avsnittet output. Här är ett exempel:

    ssh azureuser@simplelinuxvm-a33zb3sc332ue.westus.cloudapp.azure.com
    
  3. Kör kommandot igen och använd syntaxen $() för att köra SSH-kommandot:

    $(az deployment group show \
      --name azuredeploy \
      --query properties.outputs.sshCommand.value \
      --output tsv)
    

    När du uppmanas till det anger du yes för att fortsätta ansluta. Ange sedan administratörslösenordet . insecurepassword123!

    Viktigt!

    I praktiken bör du använda säkra lösenord. Du kan också autentisera med offentlig nyckel, vilket normalt är säkrare än att använda lösenord.

  4. Utgå från SSH-anslutningen till den virtuella datorn och kör hostname för att skriva ut den virtuella datorns värdnamn:

    hostname
    

    Du ser den virtuella datorns interna värdnamn: vm1

    vm1
    
  5. Kör exit för att stänga SSH-sessionen.

    exit
    

Grattis, nu har du distribuerat en virtuell Linux-dator med hjälp av en ARM-mall. En virtuell dator är en vanlig resurstyp som är beroende av andra resurser.