Übung: Steuern der Bereitstellungsreihenfolge von Ressourcen

Abgeschlossen

In diesem Teil führen Sie zunächst einige grundlegende Einrichtungsaufgaben aus. In Visual Studio Code verbinden Sie eine Terminalsitzung mit dem Azure-Abonnement, das von der kostenlosen Azure Sandboxumgebung bereitgestellt wird. Auf diese Weise können Sie Befehle in Azure authentifizieren.

Anschließend führen Sie eine einfache ARM-Vorlage aus, die einen virtuellen Linux-Computer (VM) bereitstellt. Nachdem die Bereitstellung abgeschlossen wurde, überprüfen Sie, ob die VM ausgeführt wird und verbunden ist.

Obwohl das Arbeiten mit VMs eine gängige Aufgabe ist, stellen Sie fest, dass eine VM-Ressource Netzwerk- und Speicherkomponenten erfordert, die vorhanden sein müssen, bevor die VM erstellt werden kann. Sie erkennen, wie das dependsOn-Konstrukt es Ihnen ermöglicht, die Reihenfolge festzulegen, in der die Ressourcen bereitgestellt werden.

Einrichten

Hier öffnen Sie Visual Studio Code, erstellen eine PowerShell-Sitzung und stellen eine Verbindung mit dem Azure-Abonnement her, das von der kostenlosen Azure-Sandboxumgebung bereitgestellt wird.

Diese Setupaufgaben müssen Sie in diesem Moduls ein Mal ausführen. Sie können auf diese Schritte zurückgreifen, wenn Sie sich in einer späteren Übung abmelden oder getrennt werden.

Öffnen von PowerShell in Visual Studio Code

  1. Öffnen Sie Visual Studio Code.

  2. Öffnen Sie über das Menü Terminal ein Terminalfenster.

  3. Wenn das Dropdownmenü rechts im Terminalfenster pwsh heißt, haben Sie die richtige Shell zum Arbeiten und können mit dem nächsten Abschnitt fortfahren.

    Screenshot of Terminal window, terminal type.

  4. Wenn dies nicht der Fall ist, wählen Sie das Dropdown aus und dann Standardshell auswählen.

  5. Klicken Sie auf pwsh.

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

  6. Wählen Sie das + im Terminal aus, um ein neues Terminal mit pwsh als Shell zu erstellen.

Anmelden bei Azure

  1. Führen Sie Connect-AzAccount aus, um sich bei Ihrem Konto anzumelden.

    Connect-AzAccount
    

    Ein Browserfenster wird geöffnet.

  2. Wählen Sie das Konto aus, das Sie zum Aktivieren der Sandbox verwendet haben, und schließen Sie das Browserfenster, wenn Sie dazu aufgefordert werden.

Festlegen des aktiven Abonnements

  1. Führen Sie Get-AzSubscription aus, um die Abonnement-ID für die Sandboxumgebung abzurufen.

    Get-AzSubscription
    

    Suchen Sie nach Concierge Subscription, und kopieren Sie die zweite Spalte. Dies sieht in etwa wie cf49fbbc-217c-4EB6-9eb5-a6a6c68295a0 aus.

  2. Führen Sie Set-AzContext aus, um Ihr aktives Abonnement in das Concierge-Abonnement zu ändern.

    Hinweis

    Stellen Sie sicher, dass Sie {Ihre Abonnement-ID} durch die ID des Concierge-Abonnements ersetzen, die Sie mit dem letzten Befehl erhalten haben.

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

Festlegen der Standardressourcengruppe

Wenn Sie einen Azure CLI-Befehl ausführen, müssen Sie normalerweise eine Ressourcengruppe angeben.

Die Sandbox stellt eine Standardressourcengruppe für Sie bereit. Legen Sie hier die Standardressourcengruppe fest, damit die folgenden Azure CLI-Befehle einfacher ausgeführt werden können.

Führen Sie das Cmdlet Set-AzDefault aus, um die Standardressourcengruppe festzulegen.

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

Hinweis

Wenn Sie PowerShell verwenden, um Ressourcen in Azure bereitzustellen, müssen Sie normalerweise eine Ressourcengruppe angeben. Sie umgehen diese Anforderung, indem Sie den Kontext der Bereitstellung mit Set-AzDefault festlegen.

Was enthält eine typische VM-Bereitstellung?

Beachten Sie beim Bereitstellen einer VM, dass mehrere Ressourcen zusammen mit dieser bereitgestellt werden müssen, damit die VM funktioniert.

Im Folgenden finden Sie eine kurze Zusammenfassung der Ressourcentypen, die in der Regel zusammen mit einer VM bereitgestellt werden müssen:

  • Microsoft.Storage/storageAccounts. Ein Speicherkonto bietet Speicherplatz auf dem Datenträger für das Betriebssystem und Dateien.
  • Microsoft.Network/publicIPAddresses. Mit einer öffentlichen IP-Adresse können Sie über das Internet eine Verbindung mit der VM herstellen.
  • Microsoft.Network/networkSecurityGroups. Eine Netzwerksicherheitsgruppe enthält Regeln für die Verarbeitung von eingehendem und ausgehendem Datenverkehr für Ihr virtuelles Netzwerk.
  • Microsoft.Network/virtualNetworks. Ihre VM muss in einem virtuellen Netzwerk platziert werden. Diese Ressource erfordert, dass die Netzwerksicherheitsgruppe vor ihr bereitgestellt wird.
  • Microsoft.Network/networkInterfaces. Diese Ressource ist von zwei anderen Ressourcen abhängig: der öffentlichen IP-Adresse und dem virtuellen Netzwerk.
  • Microsoft.Compute/virtualMachines. Bei dem virtuellen Computer handelt es sich um die primäre Ressource, die Sie bereitstellen möchten. Sie ist von zwei verschiedenen Ressourcen abhängig: dem Speicherkonto und den Netzwerkschnittstellen.

Bereitstellen eines virtuellen Linux-Computers

Hier laden Sie eine ARM-Vorlage aus einem GitHub-Repository herunter, das wir für Sie bereitstellen. Die Vorlage stellt eine Linux-VM und alle erforderlichen Ressourcen für deren Ausführung bereit.

  1. Führen Sie den folgenden curl-Befehl aus, um die ARM-Vorlage herunterzuladen:

    curl -O 'https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-linux/azuredeploy.json'
    
  2. Führen Sie das Cmdlet ConvertTo-SecureString aus, und weisen Sie die Ergebnisse einer PowerShell-Variablen mit dem Namen $secure zu:

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

    Nun verfügen Sie über eine verschlüsselte Version Ihres Kennworts, die Sie im nächsten Schritt an das Bereitstellungsskript übergeben können.

  3. Führen Sie den New-AzResourceGroupDeployment-Befehl aus, um die Vorlage bereitzustellen:

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

    Die Ausführung des Befehls kann einige Minuten dauern. Wenn Sie möchten, können Sie sich die ARM-Vorlage ansehen (auf einer separaten Browserregisterkarte), während der Befehl ausgeführt wird.

    Beachten Sie die Ressourcenabhängigkeiten, indem Sie nach dem dependsOn-Schlüssel suchen. Beispielsweise ist die VM-Ressource von der Netzwerkschnittstelle abhängig:

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

Überprüfen der Bereitstellung

Vergewissern Sie sich, dass die VM bereitgestellt wird und über SSH verbunden werden kann. Gehen Sie folgendermaßen vor:

  1. Führen Sie den Befehl Invoke-Expression aus, um eine Verbindung mit der VM über SSH herzustellen:

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

    Wenn Sie dazu aufgefordert werden, geben Sie yes ein, um die Verbindungsherstellung fortzusetzen. Geben Sie dann das Administratorkennwort ein: insecurepassword123!.

    Wichtig

    Wählen Sie in der Praxis sichere Kennwörter aus. Sie können auch die Authentifizierung mit öffentlichem Schlüssel verwenden, die in der Regel sicherer als die Verwendung von Kennwörtern ist.

  2. Führen Sie hostname über die SSH-Verbindung mit der VM aus, um den Hostnamen der VM auszugeben:

    hostname
    

    Sie sehen den internen Hostnamen vm1 der VM:

    vm1
    
  3. Führen Sie exit aus, um Ihre SSH-Sitzung zu verlassen.

    exit
    

Herzlichen Glückwunsch, Sie haben erfolgreich eine Linux-VM mithilfe einer ARM-Vorlage bereitgestellt. Eine VM ist ein allgemeiner Ressourcentyp, der abhängige Ressourcen enthält.

Einrichten

Hier öffnen Sie Visual Studio Code, erstellen eine Terminalsitzung und stellen eine Verbindung mit dem Azure-Abonnement her, das von der kostenlosen Azure-Sandboxumgebung bereitgestellt wird.

Diese Setupaufgaben müssen Sie in diesem Moduls ein Mal ausführen. Sie können auf diese Schritte zurückgreifen, wenn Sie sich in einer späteren Übung abmelden oder getrennt werden.

Öffnen einer Shell in Visual Studio Code

  1. Öffnen Sie Visual Studio Code.

  2. Öffnen Sie über das Menü Terminal ein Terminalfenster.

  3. Wenn das Dropdownmenü Ihre bevorzugte Shell anzeigt (z. B. bash oder zsh), können Sie mit dem nächsten Abschnitt fortfahren.

  4. Wenn dies nicht der Fall ist, wählen Sie das Dropdown aus und dann Standardshell auswählen.

  5. Wählen Sie den gewünschten Shelltyp aus.

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

  6. Wählen Sie + im Terminal aus, um ein neues Terminal mit dem ausgewählten Shelltyp zu erstellen.

Anmelden bei Azure

  1. Führen Sie im Terminal az login aus:

    az login
    

    Ein Browserfenster wird geöffnet.

  2. Wählen Sie das Konto aus, das Sie zum Aktivieren der Sandbox verwendet haben, und schließen Sie das Browserfenster, wenn Sie dazu aufgefordert werden.

Festlegen des aktiven Abonnements

Führen Sie den folgenden az account set-Befehl aus, um die Azure-Sandboxumgebung als aktives Abonnement festzulegen:

az account set -s "Concierge Subscription"

Hinweis

Wenn der Befehl fehlschlägt, führen Sie az account list --refresh --all aus, und führen Sie den Befehl az account set dann erneut aus.

Festlegen der Standardressourcengruppe

Wenn Sie einen Azure CLI-Befehl ausführen, müssen Sie normalerweise eine Ressourcengruppe angeben.

Die Sandbox stellt eine Standardressourcengruppe für Sie bereit. Legen Sie hier die Standardressourcengruppe fest, damit die folgenden Azure CLI-Befehle einfacher ausgeführt werden können.

Führen Sie den folgenden Befehl az configure aus, um die Standardressourcengruppe festzulegen:

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

Was enthält eine typische VM-Bereitstellung?

Beachten Sie beim Bereitstellen einer VM, dass mehrere Ressourcen zusammen mit dieser bereitgestellt werden müssen, damit die VM funktioniert.

Im Folgenden finden Sie eine kurze Zusammenfassung der Ressourcentypen, die in der Regel zusammen mit einer VM bereitgestellt werden müssen:

  • Microsoft.Storage/storageAccounts. Ein Speicherkonto bietet Speicherplatz auf dem Datenträger für das Betriebssystem und Dateien.
  • Microsoft.Network/publicIPAddresses. Mit einer öffentlichen IP-Adresse können Sie über das Internet eine Verbindung mit der VM herstellen.
  • Microsoft.Network/networkSecurityGroups. Eine Netzwerksicherheitsgruppe enthält Regeln für die Verarbeitung von eingehendem und ausgehendem Datenverkehr für Ihr virtuelles Netzwerk.
  • Microsoft.Network/virtualNetworks. Ihre VM muss in einem virtuellen Netzwerk platziert werden. Diese Ressource erfordert, dass die Netzwerksicherheitsgruppe vor ihr bereitgestellt wird.
  • Microsoft.Network/networkInterfaces. Diese Ressource ist von zwei anderen Ressourcen abhängig: der öffentlichen IP-Adresse und dem virtuellen Netzwerk.
  • Microsoft.Compute/virtualMachines. Bei dem virtuellen Computer handelt es sich um die primäre Ressource, die Sie bereitstellen möchten. Sie ist von zwei verschiedenen Ressourcen abhängig: dem Speicherkonto und den Netzwerkschnittstellen.

Bereitstellen eines virtuellen Linux-Computers

Hier laden Sie eine ARM-Vorlage (Azure Resource Manager) aus einem GitHub-Repository herunter, das wir für Sie bereitstellen. Die Vorlage stellt eine Linux-VM und alle erforderlichen Ressourcen für deren Ausführung bereit.

  1. Führen Sie den folgenden wget-Befehl aus, um die ARM-Vorlage herunterzuladen:

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

    Wenn Sie wget nicht installiert haben, können Sie diesen curl-Befehl ausführen:

    curl https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-linux/azuredeploy.json > azuredeploy.json
    
  2. Führen Sie den az deployment group create-Befehl aus, um die Vorlage bereitzustellen:

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

    Die Ausführung des Befehls kann einige Minuten dauern. Wenn Sie möchten, können Sie sich die ARM-Vorlage ansehen (auf einer separaten Browserregisterkarte), während der Befehl ausgeführt wird.

    Beachten Sie die Ressourcenabhängigkeiten, indem Sie nach dem dependsOn-Schlüssel suchen. Beispielsweise ist die VM-Ressource von der Netzwerkschnittstelle abhängig:

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

Überprüfen der Bereitstellung

Vergewissern Sie sich, dass die VM bereitgestellt wird und über SSH verbunden werden kann. Gehen Sie folgendermaßen vor:

  1. Führen Sie den folgenden az deployment group list-Befehl aus, um die Bereitstellungsgruppen in Ihrem Abonnement aufzulisten:

    az deployment group list --output table
    

    Eine Bereitstellungsgruppe mit dem Namen azuredeploy wird angezeigt:

    Name         ResourceGroup                               State      Timestamp                         Mode
    -----------  ------------------------------------------  ---------  --------------------------------  -----------
    azuredeploy  learn-1ef901aa-3f6a-46aa-8e93-a7f11e5192b8  Succeeded  2020-11-24T17:55:39.762517+00:00  Incremental
    
  2. Führen Sie den folgenden az deployment group show-Befehl aus, um den SSH-Befehl anzuzeigen, mit dem Sie eine Verbindung mit der VM herstellen können:

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

    Die ARM-Vorlage definiert diese Eigenschaft im Abschnitt output. Hier sehen Sie ein Beispiel:

    ssh azureuser@simplelinuxvm-a33zb3sc332ue.westus.cloudapp.azure.com
    
  3. Führen Sie den Befehl erneut aus, und verwenden Sie dieses Mal die $()-Syntax, um den SSH-Befehl auszuführen:

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

    Wenn Sie dazu aufgefordert werden, geben Sie yes ein, um die Verbindungsherstellung fortzusetzen. Geben Sie dann das Administratorkennwort ein: insecurepassword123!.

    Wichtig

    Wählen Sie in der Praxis sichere Kennwörter aus. Sie können auch die Authentifizierung mit öffentlichem Schlüssel verwenden, die in der Regel sicherer als die Verwendung von Kennwörtern ist.

  4. Führen Sie hostname über die SSH-Verbindung mit der VM aus, um den Hostnamen der VM auszugeben:

    hostname
    

    Sie sehen den internen Hostnamen vm1 der VM:

    vm1
    
  5. Führen Sie exit aus, um Ihre SSH-Sitzung zu verlassen.

    exit
    

Herzlichen Glückwunsch, Sie haben erfolgreich eine Linux-VM mithilfe einer ARM-Vorlage bereitgestellt. Eine VM ist ein allgemeiner Ressourcentyp, der abhängige Ressourcen enthält.