Menyiapkan komputer virtual Ubuntu untuk Azure
Berlaku untuk: ✔️ Mesin virtual Linux ✔️ Set skala Fleksibel
Ubuntu sekarang menerbitkan Azure VHD resmi untuk diunduh di https://cloud-images.ubuntu.com/. Jika Anda perlu membuat gambar Ubuntu khusus Anda sendiri untuk Azure, daripada menggunakan prosedur manual di bawah ini, disarankan untuk memulai dengan VHD yang berfungsi yang diketahui ini dan menyesuaikan sesuai kebutuhan. Rilis gambar terbaru selalu dapat ditemukan di lokasi berikut:
- Ubuntu 18.04/Bionic: bionic-server-cloudimg-amd64-azure.vhd.zip
- Ubuntu 20.04/Focal: focal-server-cloudimg-amd64-azure.vhd.zip
Prasyarat
Artikel ini mengasumsikan bahwa Anda telah memasang sistem operasi Linux Ubuntu ke hard disk virtual. Beberapa alat ada untuk membuat file .vhd, misalnya solusi virtualisasi seperti Hyper-V. Untuk petunjuk penggunaan, lihatPasang Peran Hyper-V dan konfigurasikan Komputer Virtual.
Catatan instalasi Ubuntu
- Lihat juga Catatan Instalasi Linux Umum untuk tips lebih lanjut tentang persiapan Linux untuk Azure.
- Format VHDX tidak didukung di Azure, hanya VHD tetap. Anda dapat mengonversi disk ke format VHD menggunakan Hyper-V Manager atau
Convert-VHDcmdlet. - Saat menginstal sistem Linux, disarankan untuk menggunakan partisi standar, bukan LVM (seringkali default untuk berbagai instalasi). Hal ini akan menghindari konflik nama LVM dengan VM kloning, terutama jika disk OS perlu dipasang ke VM lain untuk pemecahan masalah. LVM atau RAID dapat digunakan pada disk data jika diinginkan.
- Jangan mengonfigurasi partisi swap pada disk OS. Agen penyediaan cloud-init dapat dikonfigurasi untuk membuat file swap atau partisi swap pada disk sumber daya sementara. Informasi lebih lanjut dapat ditemukan dalam langkah-langkah di bawah ini.
- Semua VHD di Azure harus memiliki ukuran virtual yang selaras dengan 1MB. Saat mengonversi dari disk mentah ke VHD, Anda harus memastikan bahwa ukuran disk mentah adalah kelipatan 1MB sebelum konversi. Untuk informasi selengkapnya, lihat Catatan Instalasi Linux.
Langkah-langkah Manual
Catatan
Sebelum mencoba membuat gambar Ubuntu kustom Anda sendiri untuk Azure, silakan pertimbangkan untuk menggunakan gambar bawaan dan yang diuji sebagai https://cloud-images.ubuntu.com/ gantinya.
Di panel tengah Hyper-V Manager, pilih mesin virtual.
Klik Sambungkan untuk membuka jendela untuk mesin virtual.
Ganti repositori saat ini dalam gambar untuk menggunakan repositori Azure Ubuntu.
Sebelum mengedit
/etc/apt/sources.list, disarankan untuk membuat cadangan:# sudo cp /etc/apt/sources.list /etc/apt/sources.list.bakUbuntu 18.04 dan Ubuntu 20.04:
# sudo sed -i 's/http:\/\/archive\.ubuntu\.com\/ubuntu\//http:\/\/azure\.archive\.ubuntu\.com\/ubuntu\//g' /etc/apt/sources.list # sudo sed -i 's/http:\/\/[a-z][a-z]\.archive\.ubuntu\.com\/ubuntu\//http:\/\/azure\.archive\.ubuntu\.com\/ubuntu\//g' /etc/apt/sources.list # sudo apt-get updateGambar Ubuntu Azure sekarang menggunakan kernel yang disesuaikan dengan Azure. Perbarui sistem operasi ke kernel terbaru yang disesuaikan azure dan instal alat Linux Azure (termasuk dependensi Hyper-V) dengan menjalankan perintah berikut:
Ubuntu 18.04 dan Ubuntu 20.04:
# sudo apt update # sudo apt install linux-azure linux-image-azure linux-headers-azure linux-tools-common linux-cloud-tools-common linux-tools-azure linux-cloud-tools-azure (recommended) # sudo apt full-upgrade # sudo rebootUbah garis boot kernel untuk Grub agar menyertakan parameter kernel tambahan untuk Azure. Untuk melakukan ini agar terbuka
/etc/default/grubdi editor teks, cari variabel yang disebutGRUB_CMDLINE_LINUX_DEFAULT(atau tambahkan jika diperlukan) dan edit untuk menyertakan parameter berikut:GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 rootdelay=300 quiet splash"Simpan dan tutup file ini, lalu jalankan
sudo update-grub. Ini akan memastikan semua pesan konsol dikirim ke port serial pertama, yang dapat membantu dukungan teknis Azure dengan masalah debugging.Pastikan bahwa server SSH diinstal, dan dikonfigurasi untuk memulai pada waktu boot. Biasanya hal ini merupakan penyebabnya.
Instal cloud-init (agen penyediaan) dan Azure Linux Agent (penangan ekstensi tamu). Cloud-init menggunakan
netplanuntuk konfigurasi jaringan sistem (selama provisi dan setiap boot berikutnya) dangdiskke disk sumber daya partisi.# sudo apt update # sudo apt install cloud-init gdisk netplan.io walinuxagent && systemctl stop walinuxagentCatatan
walinuxagentPaket dapat menghapusNetworkManagerdanNetworkManager-gnomepaket, jika mereka diinstal.Hapus konfigurasi default cloud-init dan artefak
netplansisa yang mungkin bertentangan dengan provisi cloud-init di Azure:# rm -f /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg /etc/cloud/cloud.cfg.d/curtin-preserve-sources.cfg /etc/cloud/cloud.cfg.d/99-installer.cfg /etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg # rm -f /etc/cloud/ds-identify.cfg # rm -f /etc/netplan/*.yamlKonfigurasikan cloud-init untuk menyediakan sistem menggunakan sumber data Azure:
# cat > /etc/cloud/cloud.cfg.d/90_dpkg.cfg << EOF datasource_list: [ Azure ] EOF # cat > /etc/cloud/cloud.cfg.d/90-azure.cfg << EOF system_info: package_mirrors: - arches: [i386, amd64] failsafe: primary: http://archive.ubuntu.com/ubuntu security: http://security.ubuntu.com/ubuntu search: primary: - http://azure.archive.ubuntu.com/ubuntu/ security: [] - arches: [armhf, armel, default] failsafe: primary: http://ports.ubuntu.com/ubuntu-ports security: http://ports.ubuntu.com/ubuntu-ports EOF # cat > /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg << EOF reporting: logging: type: log telemetry: type: hyperv EOFKonfigurasikan agen Linux Azure untuk mengandalkan cloud-init untuk melakukan provisi. Lihatlah proyek WALinuxAgent untuk informasi lebih lanjut tentang opsi ini.
sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/g' /etc/waagent.conf sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/g' /etc/waagent.conf sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.conf cat >> /etc/waagent.conf << EOF # For Azure Linux agent version >= 2.2.45, this is the option to configure, # enable, or disable the provisioning behavior of the Linux agent. # Accepted values are auto (default), waagent, cloud-init, or disabled. # A value of auto means that the agent will rely on cloud-init to handle # provisioning if it is installed and enabled, which in this case it will. Provisioning.Agent=auto EOFBersihkan cloud-init dan artefak dan log runtime agen Linux Azure:
# sudo cloud-init clean --logs --seed # sudo rm -rf /var/lib/cloud/ # sudo systemctl stop walinuxagent.service # sudo rm -rf /var/lib/waagent/ # sudo rm -f /var/log/waagent.logJalankan perintah berikut untuk mendeprovisi komputer virtual dan persiapkan untuk penyediaan di Azure:
Catatan
Perintah
sudo waagent -force -deprovision+usermenggeneralisasi citra dengan mencoba membersihkan sistem dan membuatnya cocok untuk provisi ulang.+userOpsi ini menghapus akun pengguna terakhir yang disediakan dan data terkait.Peringatan
Deprovisi menggunakan perintah ini tidak menjamin bahwa citra akan dibersihkan dari semua informasi sensitif atau cocok untuk didistribusikan kembali.
# sudo waagent -force -deprovision+user # rm -f ~/.bash_history # export HISTSIZE=0 # logoutKlik Tindakan -> Matikan pada Pengelola Hyper-V.
Azure hanya menerima VHD ukuran tetap. Jika disk OS VM bukan VHD ukuran tetap, gunakan
Convert-VHDcmdlet PowerShell dan tentukan-VHDType Fixedopsinya. Silakan lihat dokumen untukConvert-VHDdi sini: Convert-VHD.Untuk menghadirkan VM Generasi 2 di Azure, ikuti langkah-langkah berikut:
Ubah direktori ke direktori EFI boot:
# cd /boot/efi/EFISalin direktori ubuntu ke direktori baru bernama boot:
# sudo cp -r ubuntu/ bootUbah direktori ke direktori boot yang baru dibuat:
# cd bootGanti nama file shimx64.efi:
# sudo mv shimx64.efi bootx64.efiGanti nama file grub.cfg menjadi bootx64.cfg:
# sudo mv grub.cfg bootx64.cfg
Langkah berikutnya
Anda sekarang siap menggunakan hard disk virtual Ubuntu Linux Anda untuk membuat komputer virtual baru di Azure. Jika ini pertama kalinya Anda mengunggah file .vhd ke Azure, lihat Buat VM Linux dari disk kustom.