Příprava virtuálního pevného disku Debian pro Azure

Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️

Předpoklady

Tato část předpokládá, že jste již nainstalovali operační systém Debian Linux ze souboru .iso staženého z webu Debian na virtuální pevný disk. Existuje více nástrojů pro vytvoření souborů .vhd; Hyper-V je jenom jeden příklad. Pokyny k použití technologie Hyper-V najdete v tématu Instalace role Hyper-V a konfigurace virtuálního počítače.

Poznámky k instalaci

  • Další tipy k přípravě Linuxu pro Azure najdete v obecných poznámkách k instalaci Linuxu.
  • Novější formát VHDX se v Azure nepodporuje. Disk můžete převést na formát VHD pomocí Správce technologie Hyper-V nebo rutiny convert-vhd .
  • Při instalaci systému Linux se doporučuje používat standardní oddíly místo LVM (často výchozí nastavení pro mnoho instalací). Zabráníte tak konfliktům názvů LVM s klonovanými virtuálními počítači, zejména v případě, že by se disk s operačním systémem někdy potřeboval připojit k jinému virtuálnímu počítači pro účely řešení potíží. LVM nebo RAID lze použít na datových discích, pokud je to preferováno.
  • Nenakonfigurujte prohození oddílu na disku s operačním systémem. Agenta Azure Linuxu je možné nakonfigurovat tak, aby na dočasném disku prostředku vytvořil prohození souboru. Další informace najdete v následujících krocích.
  • Všechny virtuální pevné disky v Azure musí mít virtuální velikost zarovnanou na 1 MB. Při převodu z nezpracovaného disku na virtuální pevný disk je nutné před převodem zajistit, aby velikost nezpracovaného disku byla násobkem 1 MB. Další informace najdete v tématu Poznámky k instalaci systému Linux.

Vytvoření virtuálních pevných disků Debianu pomocí Azure-Manage

Existují nástroje pro generování virtuálních pevných disků Debianu pro Azure, jako jsou skripty pro správu Azure z Instaclustr. Jedná se o doporučený přístup a vytvoření image úplně od začátku. Chcete-li například vytvořit virtuální pevný disk Debian 8, spusťte následující příkazy pro stažení azure-manage nástroje (a závislostí) a spuštění azure_build_image skriptu:

# sudo apt-get update
# sudo apt-get install git qemu-utils mbr kpartx debootstrap

# sudo apt-get install python3-pip python3-dateutil python3-cryptography
# sudo pip3 install azure-storage azure-servicemanagement-legacy azure-common pytest pyyaml
# git clone https://github.com/credativ/azure-manage.git
# cd azure-manage
# sudo pip3 install .

# sudo azure_build_image --option release=jessie --option image_size_gb=30 --option image_prefix=debian-jessie-azure section

Příprava image Debianu pro Azure

Základní image Azure Debian Cloud můžete vytvořit pomocí tvůrce cloudových imagí FAI.

(Následující příkazy git clone a apt install byly načítané z úložiště Debian Cloud Images) Začněte klonováním úložiště a instalací závislostí:

$ 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

(Volitelné) Přizpůsobte sestavení přidáním skriptů (např. skriptů prostředí) do ./config_space/scripts/AZUREsouboru .

Příkladem skriptu pro přizpůsobení image je:

$ 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

Všimněte si, že je důležité předponovat všechny příkazy, pomocí kterých chcete přizpůsobit obrázek, $ROOTCMD protože se jedná o alias.chroot $target

Sestavení image Azure Debian 10:

$ make image_buster_azure_amd64

Tím se vypíše několik souborů v aktuálním adresáři, zejména soubor obrázku image_buster_azure_amd64.raw .

Pokud chcete převést nezpracovanou image na VHD pro Azure, můžete udělat toto:

rawdisk="image_buster_azure_amd64.raw"
vhddisk="image_buster_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"

Tím se vytvoří virtuální pevný disk image_buster_azure_amd64.vhd se zaokrouhlenou velikostí, aby ho bylo možné úspěšně zkopírovat na disk Azure.

Teď potřebujeme vytvořit prostředky Azure pro tuto image (používá $rounded_size_adjusted se tato proměnná, takže by měla být z předchozího procesu prostředí).

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)

Poznámka:

Pokud šířka pásma z místního počítače na disk Azure způsobuje dlouhou dobu zpracování nahrávání pomocí azcopy, můžete proces urychlit pomocí jumpboxu virtuálního počítače Azure. Tady je postup, jak to udělat:

  1. Vytvořte tarball virtuálního pevného disku na místním počítači: tar -czvf ./image_buster_azure_amd64.vhd.tar.gz ./image_buster_azure_amd64.vhd.
  2. Vytvoření virtuálního počítače Azure s Linuxem (distribuce podle vašeho výběru) Ujistěte se, že ho vytvoříte s dostatečně velkým diskem pro uložení extrahovaného virtuálního pevného disku.
  3. Stáhněte nástroj azcopy do virtuálního počítače Azure s Linuxem. Může se načíst odsud.
  4. Zkopírujte tarball do virtuálního počítače: scp ./image_buster_azure_amd64.vhd.tar.gz <vm>:~.
  5. Na virtuálním počítači extrahujte virtuální pevný disk: tar -xf ./image_buster_azure_amd64.vhd.tar.gz (vzhledem k velikosti souboru to bude chvíli trvat).
  6. Nakonec na virtuálním počítači zkopírujte virtuální pevný disk na disk Azure pomocí azcopy příkazu (z výše uvedeného příkazu).

Další kroky: Teď jste připraveni použít virtuální pevný disk Debian Linuxu k vytvoření nových virtuálních počítačů v Azure. Pokud soubor .vhd nahráváte do Azure poprvé, přečtěte si téma Vytvoření virtuálního počítače s Linuxem z vlastního disku.