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 membangun gambar Ubuntu khusus Anda sendiri untuk Azure, daripada menggunakan prosedur manual di bawah ini, disarankan untuk memulai dengan VHD kerja 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 menginstal sistem operasi Linux Ubuntu ke hard disk virtual. Beberapa alat hadir 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-VHD
cmdlet. - Saat menginstal sistem Linux, disarankan agar Anda menggunakan partisi standar daripada LVM (seringkali default untuk banyak penginstalan). 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 atau swapfile 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.bak
Ubuntu 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 update
Gambar 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 reboot
Ubah garis boot kernel untuk Grub agar menyertakan parameter kernel tambahan untuk Azure. Untuk melakukan ini agar terbuka
/etc/default/grub
di 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
netplan
untuk konfigurasi jaringan sistem (selama provisi dan setiap boot berikutnya) dangdisk
ke disk sumber daya partisi.# sudo apt update # sudo apt install cloud-init gdisk netplan.io walinuxagent && systemctl stop walinuxagent
Catatan
walinuxagent
Paket dapat menghapusNetworkManager
danNetworkManager-gnome
paket, jika mereka diinstal.Hapus konfigurasi default cloud-init dan artefak
netplan
sisa 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/*.yaml
Konfigurasikan 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 EOF
Konfigurasikan 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 EOF
Bersihkan 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.log
Jalankan perintah berikut untuk mendeprovisi komputer virtual dan persiapkan untuk penyediaan di Azure:
Catatan
Perintah
sudo waagent -force -deprovision+user
menggeneralisasi citra dengan mencoba membersihkan sistem dan membuatnya cocok untuk provisi ulang.+user
Opsi 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 # logout
Klik Tindakan -> Matikan pada Pengelola Hyper-V.
Azure hanya menerima VHD ukuran tetap. Jika disk OS VM bukan VHD ukuran tetap, gunakan
Convert-VHD
cmdlet PowerShell dan tentukan opsinya-VHDType Fixed
. Silakan lihat dokumen untukConvert-VHD
di sini: Convert-VHD.Untuk menghadirkan VM Generasi 2 di Azure, ikuti langkah-langkah berikut:
Ubah direktori ke direktori EFI boot:
# cd /boot/efi/EFI
Salin direktori ubuntu ke direktori baru bernama boot:
# sudo cp -r ubuntu/ boot
Ubah direktori ke direktori boot yang baru dibuat:
# cd boot
Ganti nama file shimx64.efi:
# sudo mv shimx64.efi bootx64.efi
Ganti 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.