Übung: Hinzufügen eines Datenträgers zu einer VM

Abgeschlossen

Ihre Anwaltskanzlei ist dabei, ihre Fallzahl zu erhöhen, weshalb Sie mit der Einrichtung eines neuen Linux-Webservers beauftragt wurden, auf dem vertrauliche Dokumente aus verschiedenen Quellen gespeichert werden sollen. Dies können Klienten, andere Kanzleien und Strafverfolgungsbehörden sein. Mithilfe des Webservers können Sie Dokumente hochladen und auf dem Datenträger speichern.

Tipp

In dieser Übung wird Linux als Beispiel verwendet, aber der grundlegende Prozess der Erstellung von VMs und des Hinzufügens von Datenträgern ist für Windows identisch. Der Hauptunterschied besteht in der Partitionierung und Formatierung des Datenträgers. Unter Windows können Sie sich über Remotedesktop mit Ihrer VM verbinden und die integrierten Tools für die Datenträgerverwaltung verwenden oder ein PowerShell-Skript bereitstellen, das dem Bash-Skript ähnelt, das Sie hier verwenden werden.

Ihr Ziel ist es, eine Linux-VM zu erstellen und eine neue virtuelle Festplatte (Virtual Hard Disk, VHD) namens uploadDataDisk1 anzufügen, auf der das Verzeichnis /uploads gespeichert wird.

Festlegen von Azure CLI-Standardwerten

Mit der Azure CLI können Sie Standardwerte festlegen, sodass Sie diese nicht jedes Mal wiederholen müssen, wenn Sie einen Befehl ausführen.

Sie geben den standardmäßigen Azure-Standort bzw. die Azure-Region an. An diesem Standort wird Ihre Azure-VM platziert.

Idealerweise befindet sich dieser Standort in der Nähe Ihrer Kund*innen. Wählen Sie in diesem Fall die Region aus, die den für die Azure-Sandbox verfügbaren Standorten am nächsten ist.

Mit der kostenlosen Sandbox können Sie Ressourcen in einem Teil der globalen Azure-Regionen erstellen. Wählen Sie eine Region aus dieser Liste aus, wenn Sie Ressourcen erstellen:

  • westus2
  • southcentralus
  • centralus
  • eastus
  • westeurope
  • southeastasia
  • japaneast
  • brazilsouth
  • australiasoutheast
  • centralindia
  1. Führen Sie az configure aus, um den gewünschten Standardstandort festzulegen. Ersetzen Sie eastus durch den im letzten Schritt bestimmten Standort.

    az configure --defaults location=eastus
    

    Tipp

    Mit der Schaltfläche Kopieren können Sie Befehle in die Zwischenablage kopieren. Klicken Sie zum Einfügen im Cloud Shell-Terminal mit der rechten Maustaste auf eine neue Zeile, und wählen Sie dann Einfügen aus, oder verwenden Sie die Tastenkombination UMSCHALT+EINFG (⌘+V unter macOS).

  2. Legen Sie den Standardnamen für die Ressourcengruppe auf die vorkonfigurierte Ressourcengruppe fest, die für Sie über die Azure-Sandbox erstellt wurde: [Sandboxressourcengruppe]

    az configure --defaults group="<rgn>[sandbox Resource Group]</rgn>"
    

Erstellen eines virtuellen Linux-Computers

Hier erstellen Sie eine Linux-VM zum Hosten Ihres Webservers.

  1. Führen Sie den folgenden az vm create-Befehl aus, um die Ubuntu Linux-VM zu erstellen.

    az vm create \
      --name support-web-vm01 \
      --image Canonical:UbuntuServer:16.04-LTS:latest \
      --size Standard_DS1_v2 \
      --admin-username azureuser \
      --generate-ssh-keys
    
    • Der Name der VM lautet support-web-vm01.
    • Ihre Größe ist Standard_DS1_v2.
    • Der Administratorbenutzername lautet azureuser. In der Praxis können Sie hierfür einen beliebigen Namen verwenden.
    • Das Argument --generate-ssh-keys generiert für Sie ein SSH-Schlüsselpaar, mit dem Sie eine Verbindung zu Ihrer VM über SSH herstellen können.

    Die Bereitstellung des virtuellen Computers dauert einige Minuten. Wenn die VM einsatzbereit ist, erhalten Sie eine entsprechende Meldung im JSON-Format. Hier sehen Sie ein Beispiel:

    {
      "fqdns": "",
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/680469d8-edB7-42ec-b118-cd80d51741e7/providers/Microsoft.Compute/virtualMachines/support-web-vm01",
      "location": "eastus",
      "macAddress": "00-0D-3A-10-63-0A",
      "powerState": "VM running",
      "privateIpAddress": "10.0.0.4",
      "publicIpAddress": "104.211.38.211",
      "resourceGroup": "680469d8-edB7-42ec-b118-cd80d51741e7",
      "zones": ""
    }
    

    Hinweis

    In dieser Lektion verwenden Sie diese VM, um sich mit der Verwaltung von Datenträgern vertraut zu machen. Tatsächlich können Sie auch Webserver und andere Software installieren und dann az vm open-port ausführen, um die benötigten Ports extern verfügbar zu machen.

Hinzufügen eines leeren Datenträgers zur VM

Hier erstellen Sie einen leeren Datenträger und fügen ihn an die VM an. Der Datenträger hat zunächst eine Größe von 64 GB. Später werden Sie diesen Datenträger in das Verzeichnis /uploads auf der VM einbinden.

Tipp

Zu Lernzwecken erstellen Sie in diesem Beispiel die VM und den Datenträger in separaten Schritten. In der Praxis können Sie das Argument --data-disk-sizes-gb für den Befehl az vm create angeben, um Datenträger hinzuzufügen, wenn die VM erstellt ist.

  1. Führen Sie den Befehl az vm disk attach aus, um einen neuen leeren Datenträger zur VM hinzuzufügen.

    az vm disk attach \
      --vm-name support-web-vm01 \
      --name uploadDataDisk1 \
      --size-gb 64 \
      --sku Premium_LRS \
      --new
    

    Mit diesem Befehl wird Folgendes erreicht:

    • Benennen des Datenträgers in uploadDataDisk1
    • Legt die Größe auf 64 GB fest.
    • Geben Sie Storage Premium mit lokaler Redundanz an.

Sie müssen den Datenträger partitionieren und formatieren, um ihn verwenden zu können. Das erledigen Sie als Nächstes.

Initialisieren und Formatieren des Datenträgers

Ihr leeres Datenlaufwerk muss initialisiert und formatiert werden. Der Prozess ist dabei derselbe wie bei einem physischen Datenträger.

Für einmalige Aufgaben können Sie sich manuell über SSH mit Ihrer VM verbinden und die erforderlichen Befehle ausführen. Um den Prozess jedoch wiederholbarer und weniger fehleranfälliger zu machen, können Sie Ihre Befehle in einem Bash-Skript oder einem PowerShell-Skript (sofern verfügbar) angeben.

Die Verwendung eines Skripts zur Automatisierung des Prozesses hat einen weiteren Vorteil: Ihr Skript dient als Dokumentation für die Ausführung des Prozesses. Andere können das Skript lesen, um zu verstehen, wie das System konfiguriert ist. Wenn Sie den Prozess ändern müssen, können Sie Ihr Skript einfach bearbeiten und es auf einer temporären VM testen, bevor Sie Ihre Änderung in der Produktion bereitstellen.

Verwenden Sie die benutzerdefinierte Skripterweiterung, um den Prozess in dieser Lerneinheit zu automatisieren. Die benutzerdefinierte Skripterweiterung ist eine einfache Möglichkeit zum Herunterladen und Ausführen von Skripts auf Ihren Azure-VMs. Sie ist nur eine von vielen Möglichkeiten zum Konfigurieren des Systems, nachdem Ihr virtueller Computer aktiv ist und ausgeführt wird.

Sie können Ihre Skripts in Azure Storage oder an einem öffentlichen Speicherort wie GitHub speichern. Sie können Skripts manuell oder als Teil einer automatisierten Bereitstellung ausführen. Hier führen Sie einen Azure CLI-Befehl zum Herunterladen eines vorkonfigurierten Bash-Skripts von GitHub aus, um es dann auf Ihrer VM auszuführen.

Zu Lernzwecken werden Sie noch einige Befehle auf Ihrer VM ausführen, um zu prüfen, ob die VM wie erwartet konfiguriert ist.

  1. Führen Sie az vm show aus, um die öffentliche IP-Adresse der VM abzurufen und die IP-Adresse als Bash-Variable zu speichern.

    ipaddress=$(az vm show \
      --name support-web-vm01 \
      --show-details \
      --query [publicIps] \
      --output tsv)
    
  2. Führen Sie den folgenden ssh-Befehl aus, um mithilfe der Daten der gerade erstellten Variable ipaddress den Befehl lsblk auf der VM über eine SSH-Verbindung auszuführen. Denken Sie daran, dass wir beim Erstellen der VM den Administratorbenutzernamen azureuser verwendet haben. Wenn Sie einen anderen Namen ausgewählt haben, verwenden Sie diesen. Geben Sie yes (Ja) ein, wenn Sie dazu aufgefordert werden.

    ssh azureuser@$ipaddress lsblk
    

    Die Ausgabe des Befehls sollte in etwa wie folgt aussehen.

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdb       8:16   0    7G  0 disk 
    └─sdb1    8:17   0    7G  0 part /mnt
    sr0      11:0    1  628K  0 rom  
    sdc       8:32   0   64G  0 disk 
    sda       8:0    0   30G  0 disk 
    ├─sda14   8:14   0    4M  0 part 
    ├─sda15   8:15   0  106M  0 part /boot/efi
    └─sda1    8:1    0 29.9G  0 part /
    

    Beachten Sie, dass das von Ihnen erstellte Laufwerk sdc mit 64 GB nicht eingebunden ist. Das Laufwerk wird auf diese Weise aufgeführt, da es noch nicht initialisiert wurde.

  3. Führen Sie den folgenden az vm extension set-Befehl aus, um das vorkonfigurierte Bash-Skript auf der VM auszuführen.

    Warnung

    /etc/fstab wird durch das Skript geändert. Eine fehlerhafte Änderung der /etc/fstab-Datei kann zu einem nicht startfähigen System führen. Testen Sie Konfigurationsänderungen immer auf einem temporären System, bevor Sie sie in der Produktion bereitstellen. Informationen zum Ändern der Datei finden Sie in der Dokumentation Ihrer Distribution. Zudem wird bei der Verwendung in der Produktionsumgebung empfohlen, eine Sicherungskopie dieser Datei zu erstellen, damit Sie die Konfiguration bei Bedarf wiederherstellen können.

    az vm extension set \
      --vm-name support-web-vm01 \
      --name customScript \
      --publisher Microsoft.Azure.Extensions \
      --settings '{"fileUris":["https://raw.githubusercontent.com/MicrosoftDocs/mslearn-add-and-size-disks-in-azure-virtual-machines/master/add-data-disk.sh"]}' \
      --protected-settings '{"commandToExecute": "./add-data-disk.sh"}'
    

    Während der Befehl ausgeführt wird, können Sie sich auf einer separaten Browserregisterkarte das Bash-Skript ansehen.

    Zusammengefasst führt das Skript folgende Aktionen aus:

    • Partitionieren des Laufwerks /dev/sdc
    • Erstellen eines ext4-Dateisystems auf dem Laufwerk
    • Erstellt das Verzeichnis /uploads, das als Bereitstellungspunkt verwendet wird.
    • Anfügen des Datenträgers an den Bereitstellungspunkt
    • Aktualisieren von /etc/fstab zum automatischen Einbinden des Laufwerks nach dem Neustart des Systems
  4. Zur Überprüfung der Konfiguration führen Sie den gleichen ssh-Befehl aus wie zuvor, um den lsblk-Befehl auf der VM über eine SSH-Verbindung auszuführen.

    ssh azureuser@$ipaddress lsblk
    

    Sie sehen, dass sdc/sdc1 partitioniert und wie erwartet in das Verzeichnis /uploads eingebunden ist.

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdb       8:16   0    7G  0 disk 
    └─sdb1    8:17   0    7G  0 part /mnt
    sr0      11:0    1  628K  0 rom  
    sdc       8:32   0   64G  0 disk 
    └─sdc1    8:33   0   64G  0 part /uploads
    sda       8:0    0   30G  0 disk 
    ├─sda14   8:14   0    4M  0 part 
    ├─sda15   8:15   0  106M  0 part /boot/efi
    └─sda1    8:1    0 29.9G  0 part /
    

Tipp

Einige Linux-Kernel unterstützen TRIM zum Verwerfen ungenutzter Blöcke auf dem Datenträger. Mit diesem für Azure-Datenträger verfügbaren Feature können Sie Geld sparen, wenn Sie große Dateien erstellen und diese dann löschen. Erfahren Sie in der Azure-Dokumentation, wie dieses Feature aktiviert wird.

Zusammenfassung

In dieser Lerneinheit haben Sie einen Datenträger erstellt und an Ihre VM angefügt. Sie haben die benutzerdefinierte Skripterweiterung zum Ausführen eines vorkonfigurierten Bash-Skripts auf Ihrer VM verwendet, damit der Prozess besser wiederholt werden kann. Der Datenträger wird durch das Bash-Skript partitioniert, formatiert und eingebunden, sodass der Webserver darauf schreiben kann.

Da Sie nun den Datenträger auf der VM vorbereitet haben, erfahren Sie als Nächstes etwas mehr über die verschiedenen Typen von Datenträgern, die Sie erstellen können. Dabei müssen Sie sich zunächst zwischen Storage Standard und Storage Premium entscheiden.