Een Debian VHD voor Azure voorbereiden
Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️
Vereisten
In deze sectie wordt ervan uitgegaan dat u al een Debian Linux-besturingssysteem hebt geïnstalleerd vanaf een .iso-bestand dat is gedownload van de Debian-website naar een virtuele harde schijf (VHD). Er bestaan meerdere hulpprogramma's om VHD-bestanden te maken. Hyper-V is slechts één voorbeeld. Zie De Hyper-V-rol installeren en een virtuele machine (VM) configureren voor instructies over het gebruik van Hyper-V.
Installatieopmerkingen
- Zie algemene linux-installatieopmerkingen voor meer tips over het voorbereiden van Linux voor Azure.
- De nieuwere VHDX-indeling wordt niet ondersteund in Azure. U kunt de schijf converteren naar VHD-indeling met Hyper-V-beheer of de
convert-vhd
cmdlet. - Wanneer u het Linux-systeem installeert, wordt u aangeraden standaardpartities te gebruiken in plaats van LVM (Logical Volume Manager). Dit is vaak de standaardinstelling voor veel installaties. Als u partities gebruikt, voorkomt u dat de LVM-naam conflicteert met gekloonde VM's, met name als een besturingssysteemschijf ooit aan een andere VIRTUELE machine moet worden gekoppeld voor probleemoplossing. LVM of RAID kan ook worden gebruikt op gegevensschijven.
- Configureer geen wisselpartitie op de besturingssysteemschijf. De Azure Linux-agent kan worden geconfigureerd voor het maken van een wisselbestand op de tijdelijke resourceschijf. Meer informatie vindt u in de volgende stappen.
- Alle VHD's in Azure moeten een virtuele grootte hebben die is afgestemd op 1 MB. Wanneer u converteert van een onbewerkte schijf naar VHD, moet u ervoor zorgen dat de grootte van de onbewerkte schijf vóór de conversie een veelvoud van 1 MB is. Zie de installatieopmerkingen voor Linux voor meer informatie.
Een Debian-installatiekopieën voorbereiden voor Azure
U kunt de basisinstallatiekopieën van de Azure Debian-cloud maken met de volledig automatische installatie (FAI) cloudinstallatiekopieënbouwer. Als u een afbeelding wilt voorbereiden zonder FAI, raadpleegt u het artikel algemene stappen.
De volgende git-kloon- en apt-installatieopdrachten zijn opgehaald uit de Debian-opslagplaats voor cloudinstallatiekopieën. Begin met het klonen van de opslagplaats en het installeren van afhankelijkheden:
$ 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
Optioneel: Pas de build aan door scripts (bijvoorbeeld shellscripts) toe te voegen aan ./config_space/scripts/AZURE
.
Voorbeeld van een script om de afbeelding aan te passen
$ 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
Voorvoegsel van opdrachten waarmee u de afbeelding $ROOTCMD
wilt aanpassen. Het is een alias als chroot $target
.
De Azure Debian-installatiekopieën bouwen
$ make image_[release]_azure_amd64
Met deze opdracht worden een aantal bestanden uitgevoerd in de huidige map, met name het image_[release]_azure_amd64.raw
afbeeldingsbestand.
Converteer de onbewerkte installatiekopieën naar VHD voor Azure:
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"
Met dit proces maakt u een VHD image_[release]_azure_amd64.vhd
met een afgeronde grootte, zodat deze kan worden gekopieerd naar een Azure-schijf.
Notitie
In plaats van de salsa-opslagplaats te klonen en lokaal installatiekopieën te bouwen, kunnen huidige stabiele afbeeldingen worden gebouwd en gedownload van FAI.
Nadat u een stabiele Debian VHD-installatiekopieën hebt gemaakt en voordat u uploadt, controleert u of de volgende pakketten zijn geïnstalleerd:
- apt-get install hyperv-daemons
- apt-get install waagent # (optioneel maar aanbevolen voor wachtwoordherstel en het gebruik van extensies)
- apt-get install cloud-init
Voer vervolgens een volledige upgrade uit:
- apt-get full-upgrade
De Azure-resources moeten nu worden gemaakt voor deze installatiekopieën. In dit voorbeeld wordt de $rounded_size_adjusted
variabele gebruikt, dus deze moet afkomstig zijn uit hetzelfde shell-proces uit de vorige stap.
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)
Als de bandbreedte van uw lokale computer naar de Azure-schijf ertoe leidt dat het uploaden azcopy
lang wordt verwerkt, kunt u een Azure VM-jumpbox gebruiken om het proces te versnellen. U kunt dit proces als volgt uitvoeren:
- Maak een tarball van de VHD op uw lokale computer:
tar -czvf ./image_buster_azure_amd64.vhd.tar.gz ./image_[release]_azure_amd64.vhd
. - Maak een Virtuele Linux-machine van Azure (distributie van uw keuze). Zorg ervoor dat u deze maakt met een groot genoeg schijf om de geëxtraheerde VHD te bewaren.
- Download het
azcopy
hulpprogramma naar de Virtuele Linux-machine van Azure. U kunt deze ophalen uit Aan de slag met AzCopy. - Kopieer de tarball naar de VM:
scp ./image_buster_azure_amd64.vhd.tar.gz <vm>:~
. - Pak op de VIRTUELE machine de VHD uit:
tar -xf ./image_buster_azure_amd64.vhd.tar.gz
. Deze stap neemt enige tijd in beslag op basis van de grootte van het bestand. - Ten slotte kopieert u op de virtuele machine de VHD naar de Azure-schijf met
azcopy
(de voorgaande opdracht).
Gerelateerde inhoud
U bent nu klaar om uw Debian Linux-VHD te gebruiken om nieuwe VM's te maken in Azure. Als dit de eerste keer is dat u het VHD-bestand uploadt naar Azure, raadpleegt u Een Virtuele Linux-machine maken vanaf een aangepaste schijf.