Azure için Debian VHD hazırlama

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri

Önkoşullar

Bu bölümde, Debian web sitesinden sanal sabit diske (VHD) indirilen bir .iso dosyasından zaten bir Debian Linux işletim sistemi yüklediğiniz varsayılır. .vhd dosyaları oluşturmak için birden çok araç vardır. Hyper-V yalnızca bir örnektir. Hyper-V kullanma yönergeleri için bkz . Hyper-V rolünü yükleme ve bir sanal makine (VM) yapılandırma.

Yükleme notları

  • Azure için Linux hazırlama hakkında daha fazla ipucu için bkz . Genel Linux yükleme notları.
  • Azure'da daha yeni VHDX biçimi desteklenmez. Hyper-V Yöneticisi'ni veya cmdlet'ini kullanarak diski VHD biçimine convert-vhd dönüştürebilirsiniz.
  • Linux sistemini yüklediğinizde, genellikle birçok yükleme için varsayılan olan Mantıksal Birim Yöneticisi (LVM) yerine standart bölümler kullanmanızı öneririz. Bölümlerin kullanılması, özellikle de sorun giderme için başka bir VM'ye bir işletim sistemi diski eklenmesi gerekiyorsa, kopyalanan VM'lerle LVM adı çakışmalarını önler. LVM veya RAID , veri disklerinde de kullanılabilir.
  • İşletim sistemi diskinde değiştirme bölümü yapılandırmayın. Azure Linux aracısı, geçici kaynak diskinde bir takas dosyası oluşturacak şekilde yapılandırılabilir. Aşağıdaki adımlarda daha fazla bilgi sağlanır.
  • Azure'da tüm VHD'lerin 1 MB'a hizalanmış bir sanal boyutu olmalıdır. Ham diskten VHD'ye dönüştürürken, dönüştürmeden önce ham disk boyutunun 1 MB'ın katı olduğundan emin olmanız gerekir. Daha fazla bilgi için bkz . Linux yükleme notları.

Azure için Debian görüntüsü hazırlama

Tam otomatik yükleme (FAI) bulut görüntü oluşturucusu ile temel Azure Debian bulut görüntüsünü oluşturabilirsiniz. SSS olmadan bir görüntü hazırlamak için genel adımlar makalesine göz atın.

Aşağıdaki git kopyası ve apt yükleme komutları Debian bulut görüntüleri deposundan çekilmiştir. Depoyu kopyalayıp bağımlılıkları yükleyerek başlayın:

$ 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

İsteğe bağlı: öğesine betikler (örneğin, kabuk betikleri) ekleyerek derlemeyi ./config_space/scripts/AZUREözelleştirin.

Görüntüyü özelleştirmek için betik örneği

$ 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

Görüntüyü ile $ROOTCMDözelleştirmek istediğiniz tüm komutlara ön ek ekleyin. olarak chroot $targetdiğer adıyla anılır.

Azure Debian görüntüsünü oluşturma

$ make image_[release]_azure_amd64

Bu komut, geçerli dizinde, özellikle de görüntü dosyasında birkaç dosya çıkışı oluşturur image_[release]_azure_amd64.raw .

Ham görüntüyü Azure için VHD'ye dönüştürün:

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"

Bu işlem, azure diskine başarıyla kopyalanabilmesi için yuvarlatılmış boyuta sahip bir VHD image_[release]_azure_amd64.vhd oluşturur.

Not

Salsa deposunu kopyalayıp yerel olarak görüntü oluşturmak yerine, geçerli kararlı görüntüler FAI'den oluşturulabilir ve indirilebilir.

Kararlı bir Debian VHD görüntüsü oluşturduktan sonra ve karşıya yüklemeden önce aşağıdaki paketlerin yüklendiğini doğrulayın:

  • apt-get hyperv-daemons yükleme
  • apt-get install waagent # (İsteğe bağlı ancak parola sıfırlamaları ve uzantıların kullanımı için önerilir)
  • apt-get install cloud-init

Ardından tam yükseltme gerçekleştirin:

  • apt-get tam yükseltme

Şimdi bu görüntü için Azure kaynaklarının oluşturulması gerekir. Bu örnekte değişkeni kullanılır $rounded_size_adjusted , bu nedenle önceki adımdaki aynı kabuk işleminin içinden olmalıdır.

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)

Yerel makinenizden Azure diskine bant genişliği ile azcopykarşıya yükleme işleminin uzun sürmesine neden oluyorsa, işlemi hızlandırmak için bir Azure VM sıçrama kutusu kullanabilirsiniz. Bu işlem şu şekilde yapılabilir:

  1. Yerel makinenizde VHD'nin tarball'unu oluşturun: tar -czvf ./image_buster_azure_amd64.vhd.tar.gz ./image_[release]_azure_amd64.vhd.
  2. Azure Linux VM oluşturma (seçtiğiniz dağıtım). Ayıklanan VHD'yi tutmak için yeterince büyük bir diskle oluşturduğunuzdan emin olun.
  3. azcopy Yardımcı programını Azure Linux VM'sine indirin. AzCopy kullanmaya başlama bölümünden alabilirsiniz.
  4. Tarball'ı VM'ye kopyalayın: scp ./image_buster_azure_amd64.vhd.tar.gz <vm>:~.
  5. VM'de VHD'yi ayıklayın: tar -xf ./image_buster_azure_amd64.vhd.tar.gz. Bu adım, dosyanın boyutuna göre biraz zaman alır.
  6. Son olarak VM'de VHD'yi ile azcopy Azure diskine kopyalayın (önceki komut).

Artık Azure'da yeni VM'ler oluşturmak için Debian Linux VHD'nizi kullanmaya hazırsınız. .vhd dosyasını Azure'a ilk kez yüklüyorsanız bkz . Özel diskten Linux VM oluşturma.