Debian-alapú VHD előkészítése Azure-beli használatra

A következőkre vonatkozik: ✔️ Linux rendszerű virtuális gépek rugalmas méretezési ✔️ csoportjai

Előfeltételek

Ez a szakasz feltételezi, hogy már telepített egy Debian Linux operációs rendszert a Debian webhelyéről letöltött .iso fájlból egy virtuális merevlemezre. A .vhd-fájlok létrehozásához több eszköz is létezik; A Hyper-V csak egy példa. A Hyper-V használatával kapcsolatos utasításokért tekintse meg a Hyper-V szerepkör telepítését és a virtuális gép konfigurálását ismertető cikket.

Telepítési megjegyzések

  • A Linux Azure-ra való előkészítésével kapcsolatos további tippekért tekintse meg a Linux általános telepítési megjegyzéseit is.
  • Az újabb VHDX formátum nem támogatott az Azure-ban. A lemezt VHD formátumba konvertálhatja a Hyper-V Manager vagy a convert-vhd parancsmag használatával.
  • A Linux rendszer telepítésekor javasoljuk, hogy az LVM helyett standard partíciókat használjon (gyakran sok telepítés esetében ez az alapértelmezett). Így elkerülhető a klónozott virtuális gépekkel való LVM-névütközés, különösen akkor, ha egy operációsrendszer-lemezt egy másik virtuális géphez kell csatlakoztatni a hibaelhárításhoz. Az LVM vagy a RAID igény szerint adatlemezeken is használható.
  • Ne konfiguráljon felcserélési partíciót az operációsrendszer-lemezen. Az Azure Linux-ügynök konfigurálható úgy, hogy swapfájlt hozzon létre az ideiglenes erőforráslemezen. További információt az alábbi lépésekben talál.
  • Az Azure-ban minden virtuális merevlemeznek 1 MB-ra kell igazítania a virtuális méretet. Nyers lemezről VHD-re való konvertáláskor az átalakítás előtt győződjön meg arról, hogy a nyers lemez mérete 1 MB többszöröse. További információkért lásd a Linux telepítési megjegyzéseit.

Debian VHD-k létrehozása az Azure-Manage használatával

Vannak olyan eszközök, amelyek segítségével Debian VHD-k hozhatók létre az Azure-hoz, például az Instaclustr azure-beli felügyeletű szkriptjeihez. Ez az ajánlott megközelítés, szemben a kép nulláról való létrehozásával. Egy Debian 8 VHD létrehozásához például futtassa a következő parancsokat a segédprogram (és függőségek azure-manage ) letöltéséhez és a azure_build_image szkript futtatásához:

# 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

Debian-rendszerkép előkészítése az Azure-hoz

Az alap Azure Debian Cloud-rendszerképet a FAI felhőrendszerkép-készítővel hozhatja létre.

(A következő git-klón- és apt telepítési parancsok a Debian Cloud Images adattárából lettek lekértek) Először klónozza az adattárat, és telepítse a függőségeket:

$ 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

(Nem kötelező) A build testreszabásához adjon hozzá szkripteket (például rendszerhéjszkripteket) a fájlhoz ./config_space/scripts/AZURE.

Példa a kép testreszabására szolgáló szkriptre:

$ 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

Vegye figyelembe, hogy fontos, hogy minden olyan parancs előtagja legyen, amellyel $ROOTCMD testre szeretné szabni a képet, mivel ez aliasként van elnevezettként chroot $target.

Az Azure Debian 10-rendszerkép létrehozása:

$ make image_buster_azure_amd64

Ez egy maroknyi fájlt ad ki az aktuális könyvtárban, különösen a image_buster_azure_amd64.raw képfájlt.

A nyers rendszerkép Azure-beli VHD-vé alakításához tegye a következőket:

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"

Ez egy lekerekített méretű virtuális merevlemezt image_buster_azure_amd64.vhd hoz létre, amely sikeresen átmásolható egy Azure Diskbe.

Most létre kell hoznunk az Azure-erőforrásokat ehhez a lemezképhez (ez a változót $rounded_size_adjusted használja, így a rendszerhéj-folyamaton belül kell lennie fentről).

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)

Megjegyzés:

Ha a helyi gépről az Azure Diskre irányuló sávszélesség miatt hosszú ideig kell feldolgoznia a feltöltést az azcopy használatával, egy Azure-beli virtuálisgép-jumpbox használatával felgyorsíthatja a folyamatot. Ezt a következőképpen teheti meg:

  1. Hozzon létre egy tarballt a VHD-ről a helyi gépen: tar -czvf ./image_buster_azure_amd64.vhd.tar.gz ./image_buster_azure_amd64.vhd.
  2. Azure Linux rendszerű virtuális gép létrehozása (a választott disztribúció). Győződjön meg arról, hogy elég nagy lemezzel hozza létre a kinyert VHD tárolásához!
  3. Töltse le az azcopy segédprogramot az Azure Linux rendszerű virtuális gépre. Innen lekérhető.
  4. Másolja a tarballt a virtuális gépre: scp ./image_buster_azure_amd64.vhd.tar.gz <vm>:~.
  5. A virtuális gépen bontsa ki a VHD-t: tar -xf ./image_buster_azure_amd64.vhd.tar.gz (ez a fájl méretétől függően egy kis időt vesz igénybe).
  6. Végül a virtuális gépen másolja a VHD-t az Azure Diskbe azcopy (a fenti paranccsal).

Következő lépések: Most már készen áll arra, hogy a Debian Linux rendszerű virtuális merevlemez használatával új virtuális gépeket hozzon létre az Azure-ban. Ha ez az első alkalom, hogy feltölti a .vhd fájlt az Azure-ba, olvassa el a Linux rendszerű virtuális gép létrehozása egyéni lemezről című témakört.