Bagikan melalui


Menyiapkan VHD Debian untuk Azure

Berlaku untuk: ✔️ Mesin Virtual Linux ✔️ Set skala fleksibel

Prasyarat

Bagian ini mengasumsikan bahwa Anda telah menginstal sistem operasi Debian Linux dari file .iso yang diunduh dari situs web Debian ke hard disk virtual (VHD). Ada beberapa alat untuk membuat file .vhd. Hyper-V hanya satu contoh. Untuk petunjuk tentang menggunakan Hyper-V, lihat Menginstal peran Hyper-V dan mengonfigurasi komputer virtual (VM).

Catatan instalasi

  • Untuk tips selengkapnya tentang menyiapkan Linux untuk Azure, lihat Catatan penginstalan Linux umum.
  • Format VHDX yang lebih baru tidak didukung di Azure. Anda dapat mengonversi disk ke format VHD dengan menggunakan Hyper-V Manager atau convert-vhd cmdlet.
  • Saat Anda menginstal sistem Linux, kami sarankan Anda menggunakan partisi standar daripada Logical Volume Manager (LVM), yang sering menjadi default untuk banyak penginstalan. Menggunakan partisi menghindari konflik nama LVM dengan VM kloning, terutama jika disk OS perlu dilampirkan ke VM lain untuk pemecahan masalah. LVM atau RAID juga dapat digunakan pada disk data.
  • Jangan mengonfigurasi partisi swap pada disk OS. Agen Linux Azure dapat dikonfigurasi untuk membuat file swap pada disk sumber daya sementara. Informasi selengkapnya tersedia dalam langkah-langkah berikut.
  • Semua VHD di Azure harus memiliki ukuran virtual yang selaras dengan 1MB. Saat Anda mengonversi dari disk mentah ke VHD, Anda harus memastikan bahwa ukuran disk mentah adalah kelipatan 1 MB sebelum konversi. Untuk informasi selengkapnya, lihat Catatan penginstalan Linux.

Menyiapkan gambar Debian untuk Azure

Anda dapat membuat gambar cloud Azure Debian dasar dengan penyusun gambar cloud penginstalan otomatis sepenuhnya (FAI). Untuk menyiapkan gambar tanpa FAI, lihat artikel langkah-langkah umum.

Perintah kloning git dan penginstalan apt berikut ditarik dari repositori gambar cloud Debian. Mulailah dengan mengkloning repositori dan menginstal dependensi:

$ 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

Opsional: Sesuaikan build dengan menambahkan skrip (misalnya, skrip shell) ke ./config_space/scripts/AZURE.

Contoh skrip untuk menyesuaikan gambar

$ 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

Awali perintah apa pun yang ingin Anda sesuaikan gambarnya dengan $ROOTCMD. Ini alias sebagai chroot $target.

Membangun gambar Azure Debian

$ make image_[release]_azure_amd64

Perintah ini menghasilkan beberapa file di direktori saat ini, terutama image_[release]_azure_amd64.raw file gambar.

Konversikan gambar mentah ke VHD untuk 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"

Proses ini membuat VHD image_[release]_azure_amd64.vhd dengan ukuran bulat sehingga dapat berhasil disalin ke disk Azure.

Catatan

Daripada mengkloning repositori salsa dan membangun gambar secara lokal, gambar stabil saat ini dapat dibangun dan diunduh dari FAI.

Setelah Anda membuat gambar Debian VHD yang stabil dan sebelum Anda mengunggah, verifikasi bahwa paket berikut diinstal:

  • apt-get install hyperv-daemons
  • apt-get install waagent # (Opsional tetapi direkomendasikan untuk reset kata sandi dan penggunaan ekstensi)
  • apt-get install cloud-init

Kemudian lakukan peningkatan penuh:

  • apt-get full-upgrade

Sekarang sumber daya Azure harus dibuat untuk gambar ini. Contoh ini menggunakan $rounded_size_adjusted variabel , jadi harus dari dalam proses shell yang sama dari langkah sebelumnya.

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)

Jika bandwidth dari komputer lokal Anda ke disk Azure menyebabkan waktu yang lama untuk memproses unggahan dengan azcopy, Anda dapat menggunakan jumpbox Azure VM untuk mempercepat proses. Berikut adalah bagaimana proses ini dapat dilakukan:

  1. Buat tarball VHD di komputer lokal Anda: tar -czvf ./image_buster_azure_amd64.vhd.tar.gz ./image_[release]_azure_amd64.vhd.
  2. Buat Azure Linux VM (distribusi pilihan Anda). Pastikan Anda membuatnya dengan disk yang cukup besar untuk menahan VHD yang diekstrak.
  3. azcopy Unduh utilitas ke Azure Linux VM. Anda dapat mengambilnya dari Mulai menggunakan AzCopy.
  4. Salin tarball ke VM: scp ./image_buster_azure_amd64.vhd.tar.gz <vm>:~.
  5. Pada VM, ekstrak VHD: tar -xf ./image_buster_azure_amd64.vhd.tar.gz. Langkah ini membutuhkan sedikit waktu berdasarkan ukuran file.
  6. Terakhir, pada VM, salin VHD ke disk Azure dengan azcopy (perintah sebelumnya).

Anda sekarang siap untuk menggunakan Debian Linux VHD Anda untuk membuat VM baru di Azure. Jika ini pertama kalinya Anda mengunggah file .vhd ke Azure, lihat Buat komputer virtual Linux dari disk kustom.