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 $target
diğ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 azcopy
karşı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:
- Yerel makinenizde VHD'nin tarball'unu oluşturun:
tar -czvf ./image_buster_azure_amd64.vhd.tar.gz ./image_[release]_azure_amd64.vhd
. - 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.
azcopy
Yardımcı programını Azure Linux VM'sine indirin. AzCopy kullanmaya başlama bölümünden alabilirsiniz.- Tarball'ı VM'ye kopyalayın:
scp ./image_buster_azure_amd64.vhd.tar.gz <vm>:~
. - 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. - Son olarak VM'de VHD'yi ile
azcopy
Azure diskine kopyalayın (önceki komut).
İlgili içerik
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.