Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: ✔️ Linux-VMs ✔️ Flexible Skalierungsgruppen
Voraussetzungen
In diesem Abschnitt wird davon ausgegangen, dass Sie bereits ein Debian Linux-Betriebssystem auf der Grundlage einer ISO-Datei von der Debian-Website auf einer virtuellen Festplatte (Virtual Hard Disk, VHD) installiert haben. Zum Erstellen von VHD-Dateien stehen mehrere verschiedene Tools bereit. Hyper-V ist nur ein Beispiel. Anweisungen zur Verwendung von Hyper-V finden Sie unter Installieren von Hyper-V und Erstellen eines virtuellen Computers.
Installationshinweise
- Weitere Tipps zur Vorbereitung von Linux für Azure finden Sie unter Allgemeine Installationshinweise für Linux.
- Das modernere VHDX-Format wird in Azure nicht unterstützt. Sie können den Datenträger mit dem Hyper-V-Manager oder dem
convert-vhd
-Cmdlet in das VHD-Format konvertieren. - Beim Installieren des Linux-Systems wird empfohlen, anstelle von LVM (Logical Volume Manager, logische Volumeverwaltung) – bei vielen Installationen oftmals voreingestellt – die Standardpartitionen zu verwenden. Durch die Verwendung von Partitionen wird vermieden, dass ein LVM-Namenskonflikt mit geklonten VMs auftritt, insbesondere dann, wenn ein Betriebssystemdatenträger zu Fehlerbehebungszwecken mit einer anderen VM verbunden wird. LVM oder RAID können ebenfalls auf Datenträgern verwendet werden.
- Konfigurieren Sie keine Auslagerungspartition auf dem Betriebssystemdatenträger. Der Azure-Linux-Agent kann konfiguriert werden, eine Auslagerungsdatei auf dem temporären Ressourcendatenträger zu erstellen. Weitere Informationen erhalten Sie in den folgenden Schritten.
- Alle VHDs in Azure benötigen eine virtuelle Größe, die auf 1 MB ausgerichtet ist. Stellen Sie beim Konvertieren von einem RAW-Datenträger in VHD sicher, dass die Größe des RAW-Datenträgers vor der Konvertierung ein Vielfaches von 1 MB beträgt. Weitere Informationen finden Sie in den Linux-Installationshinweisen.
Vorbereiten eines Debian-Images für Azure
Sie können das Azure Debian-Cloudbasisimage mit dem FAI-Cloudimage-Generator (Fully Automatic Installation, vollautomatische Installation) erstellen. Informationen zum Vorbereiten eines Images ohne FAI finden Sie im Artikel zu generischen Schritten.
Die folgenden git clone- und apt-Installationsbefehle wurden aus dem Debian-Cloudimagerepository gepullt. Klonen Sie zunächst das Repository, und installieren Sie Abhängigkeiten:
$ git clone https://salsa.debian.org/cloud-team/debian-cloud-images.git
$ sudo apt install --no-install-recommends ca-certificates debsums dosfstools \
fai-server fai-setup-storage make python3 python3-libcloud python3-marshmallow \
python3-pytest python3-yaml qemu-utils udev
$ cd ./debian-cloud-images
Optional: Passen Sie den Build an, indem Sie ./config_space/scripts/AZURE
Skripts (z. B. Shellskripts) hinzufügen.
Skriptbeispiel zum Anpassen des Images
$ mkdir -p ./config_space/scripts/AZURE
$ cat > ./config_space/scripts/AZURE/10-custom <<EOF
#!/bin/bash
\$ROOTCMD bash -c "echo test > /usr/local/share/testing"
EOF
$ sudo chmod 755 ./config_space/scripts/AZURE/10-custom
Stellen Sie allen Befehlen, die Sie zur Anpassung des Images verwenden möchten, $ROOTCMD
voran. Als Alias wird chroot $target
verwendet.
Erstellen des Azure Debian-Images
$ make image_[release]_azure_amd64
Mit diesem Befehl werden einige Dateien im aktuellen Verzeichnis ausgegeben, insbesondere die Imagedatei image_[release]_azure_amd64.raw
.
Konvertieren Sie das unformatierte Image für Azure in das VHD-Format:
rawdisk="image_[release]_azure_amd64.raw"
vhddisk="image_[release]_azure_amd64.vhd"
MB=$((1024*1024))
size=$(qemu-img info -f raw --output json "$rawdisk" | \
gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
rounded_size=$(((($size+$MB-1)/$MB)*$MB))
rounded_size_adjusted=$(($rounded_size + 512))
echo "Rounded Size Adjusted = $rounded_size_adjusted"
sudo qemu-img resize "$rawdisk" $rounded_size
qemu-img convert -f raw -o subformat=fixed,force_size -O vpc "$rawdisk" "$vhddisk"
Bei diesem Vorgang wird die VHD image_[release]_azure_amd64.vhd
mit einer gerundeten Größe erstellt, sodass sie erfolgreich auf einen Azure-Datenträger kopiert werden kann.
Hinweis
Anstatt das Salsa-Repository zu klonen und Images lokal zu erstellen, können aktuelle stabile Images auf FAI erstellt und heruntergeladen werden.
Überprüfen Sie nach dem Erstellen eines stabilen Debian-VHD-Images und vor dem Hochladen, ob die folgenden Pakete installiert sind:
- apt-get install hyperv-daemons
- apt-get install waagent # (optional, aber empfohlen für Kennwortzurücksetzungen und die Verwendung von Erweiterungen)
- apt-get install cloud-init
Führen Sie dann ein vollständiges Upgrade durch:
- apt-get full-upgrade
Jetzt müssen die Azure-Ressourcen für dieses Image erstellt werden. In diesem Beispiel wird die Variable $rounded_size_adjusted
verwendet, daher sollte sie aus demselben Shellprozess aus dem vorherigen Schritt stammen.
az group create -l $LOCATION -n $RG
az disk create \
-n $DISK \
-g $RG \
-l $LOCATION \
--for-upload --upload-size-bytes "$rounded_size_adjusted" \
--sku standard_lrs --hyper-v-generation V1
ACCESS=$(az disk grant-access \
-n $DISK -g $RG \
--access-level write \
--duration-in-seconds 86400 \
--query accessSas -o tsv)
azcopy copy "$vhddisk" "$ACCESS" --blob-type PageBlob
az disk revoke-access -n $DISK -g $RG
az image create \
-g $RG \
-n $IMAGE \
--os-type linux \
--source $(az disk show \
-g $RG \
-n $DISK \
--query id -o tsv)
az vm create \
-g $RG \
-n $VM \
--ssh-key-value $SSH_KEY_VALUE \
--public-ip-address-dns-name $VM \
--image $(az image show \
-g $RG \
-n $IMAGE \
--query id -o tsv)
Wenn die Bandbreite von Ihrem lokalen Computer zum Azure-Datenträger zu einer langwierigen Verarbeitung des Uploads mit azcopy
führt, können Sie eine Azure-VM-Jumpbox verwenden, um den Prozess zu beschleunigen. Hier wird gezeigt, wie es geht:
- Erstellen Sie einen Tarball der VHD auf Ihrem lokalen Computer:
tar -czvf ./image_buster_azure_amd64.vhd.tar.gz ./image_[release]_azure_amd64.vhd
. - Erstellen Sie eine Azure Linux-VM (Distribution Ihrer Wahl). Stellen Sie sicher, dass Sie sie mit einem ausreichend großen Datenträger für die extrahierte VHD erstellen.
- Laden Sie das Hilfsprogramm
azcopy
auf die Azure Linux-VM herunter. Sie können es unter Erste Schritte mit AzCopy abrufen. - Kopieren Sie den Tarball auf die VM:
scp ./image_buster_azure_amd64.vhd.tar.gz <vm>:~
. - Extrahieren Sie VHD auf der VM:
tar -xf ./image_buster_azure_amd64.vhd.tar.gz
. Dieser Schritt dauert je nach Größe der Datei eine Weile. - Zum Schluss kopieren Sie die VHD auf der VM mit
azcopy
(oben stehender Befehl) auf den Azure-Datenträger.
Zugehöriger Inhalt
Sie können jetzt Ihre Debian Linux-VHD verwenden, um neue VMs in Azure zu erstellen. Wenn Sie zum ersten Mal die VHD-Datei in Azure hochladen, lesen Sie den Artikel Erstellen eines virtuellen Linux-Computers aus einem benutzerdefinierten Datenträger mithilfe der Azure CLI 2.0.