Bagikan melalui


Menyiapkan komputer virtual Ubuntu untuk Azure

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

Ubuntu sekarang menerbitkan hard disk virtual (VHD) Azure resmi untuk diunduh di halaman web Gambar Cloud Ubuntu. Jika Anda perlu membuat gambar Ubuntu khusus Anda sendiri untuk Azure alih-alih menggunakan prosedur manual berikut, mulailah dengan VHD yang berfungsi yang diketahui ini dan sesuaikan sesuai kebutuhan. Anda selalu dapat menemukan rilis gambar terbaru di lokasi berikut:

Prasyarat

Artikel ini mengasumsikan bahwa Anda telah menginstal sistem operasi (OS) Linux Ubuntu ke VHD. Ada beberapa alat untuk membuat file .vhd. Contohnya adalah solusi virtualisasi seperti Hyper-V. Untuk petunjuknya, lihat Menginstal peran Hyper-V dan mengonfigurasi komputer virtual (VM).

Catatan instalasi Ubuntu

  • Untuk tips selengkapnya tentang menyiapkan Linux untuk Azure, lihat Catatan penginstalan Linux umum.
  • Format VHDX tidak didukung di Azure, hanya VHD tetap. 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. Partisi standar ini 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 pertukaran atau file pertukaran pada disk OS. Anda dapat mengonfigurasi cloud-init agen provisi untuk membuat file swap atau partisi swap pada disk sumber daya sementara. Untuk informasi selengkapnya tentang proses ini, lihat 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.

Langkah-langkah Manual

Catatan

Sebelum Anda mencoba membuat gambar Ubuntu kustom Anda sendiri untuk Azure, pertimbangkan untuk menggunakan gambar bawaan dan yang diuji dari halaman web Gambar Cloud Ubuntu sebagai gantinya.

  1. Di panel tengah Hyper-V Manager, pilih VM.

  2. Pilih Sambungkan untuk membuka jendela untuk VM.

  3. Ganti repositori saat ini dalam gambar untuk menggunakan repositori Azure Ubuntu.

    Sebelum mengedit /etc/apt/sources.list, kami sarankan Anda membuat cadangan:

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
    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 sed -i 's#http://security\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list
    sudo sed -i 's#http://[a-z][a-z]\.security\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list
    sudo apt-get update
    
  4. Gambar Ubuntu Azure sekarang menggunakan kernel yang disesuaikan dengan Azure. Perbarui OS ke kernel yang disesuaikan Azure terbaru dan instal alat Azure Linux (termasuk dependensi Hyper-V):

    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
    sudo apt full-upgrade
    sudo reboot
    
  5. Ubah baris boot kernel untuk GRUB untuk menyertakan parameter kernel tambahan untuk Azure. Untuk melakukan langkah ini, buka /etc/default/grub di editor teks, temukan variabel yang disebut GRUB_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"
    
  6. Simpan dan tutup file ini, lalu jalankan sudo update-grub. Langkah ini memastikan bahwa semua pesan konsol dikirim ke port serial pertama, yang dapat membantu dukungan teknis Azure dengan masalah penelusuran kesalahan.

  7. Pastikan server SSH diinstal dan dikonfigurasi untuk memulai pada saat boot. Pengaturan ini biasanya default.

  8. Instal cloud-init (agen provisi) dan agen Azure Linux (penangan ekstensi tamu). Cloud-initnetplan menggunakan untuk mengonfigurasi konfigurasi jaringan sistem (selama provisi dan setiap boot berikutnya) dan gdisk untuk mempartisi disk sumber daya.

    sudo apt update
    sudo apt install cloud-init gdisk netplan.io walinuxagent && systemctl stop walinuxagent
    

    Catatan

    Paket walinuxagent mungkin menghapus NetworkManager paket dan NetworkManager-gnome , jika terinstal.

  9. Hapus cloud-init konfigurasi default dan artefak sisa netplan yang mungkin bertentangan dengan cloud-init provisi di Azure:

    sudo 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
    sudo rm -f /etc/cloud/ds-identify.cfg
    sudo rm -f /etc/netplan/*.yaml
    
  10. Konfigurasikan cloud-init untuk menyediakan sistem dengan menggunakan sumber data Azure:

    cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg
    datasource_list: [ Azure ]
    EOF
    
    cat <<EOF | sudo tee /etc/cloud/cloud.cfg.d/90-azure.cfg
    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 <<EOF | sudo tee /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg
    reporting:
      logging:
        type: log
      telemetry:
        type: hyperv
    EOF
    
  11. Konfigurasikan agen Azure Linux untuk diandalkan cloud-init untuk melakukan provisi. Untuk informasi selengkapnya tentang opsi ini, lihat proyek WALinuxAgent.

    sudo sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/g' /etc/waagent.conf
    sudo sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/g' /etc/waagent.conf
    sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf
    sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.conf
    
    cat <<EOF | sudo tee -a /etc/waagent.conf
    # 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
    
  12. Artefak dan log runtime agen Linux Yang Bersih cloud-init dan 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
    
  13. Batalkan provisi VM dan siapkan untuk provisi di Azure.

    Catatan

    Perintah menggeneralisasi sudo waagent -force -deprovision+user gambar dengan mencoba membersihkan sistem dan membuatnya cocok untuk provisi ulang. +user Opsi ini menghapus akun pengguna terakhir yang disediakan dan data terkait.

    sudo waagent -force -deprovision+user
    sudo rm -f ~/.bash_history
    

    Peringatan

    Pembatalan provisi dengan menggunakan perintah sebelumnya tidak menjamin bahwa gambar dihapus dari semua informasi sensitif dan cocok untuk didistribusikan ulang.

  14. Pilih Tindakan>Matikan di Manajer Hyper-V.

  15. Azure hanya menerima VHD ukuran tetap. Jika disk OS VM bukan VHD ukuran tetap, gunakan Convert-VHD cmdlet PowerShell dan tentukan opsi .-VHDType Fixed Untuk informasi selengkapnya, lihat dokumen untuk Convert-VHD di Convert-VHD.

  16. Untuk menghadirkan VM Generasi 2 di Azure, ikuti langkah-langkah berikut:

    1. Ubah direktori ke boot EFI direktori:

      cd /boot/efi/EFI
      
    2. ubuntu Salin direktori ke direktori baru bernama boot:

      sudo cp -r ubuntu/ boot
      
    3. Ubah direktori ke direktori boot yang baru dibuat:

      cd boot
      
    4. Ganti nama shimx64.efi file:

      sudo mv shimx64.efi bootx64.efi
      
    5. Ganti nama file menjadi grub.cfg bootx64.cfg:

      sudo mv grub.cfg bootx64.cfg
      

Anda sekarang siap untuk menggunakan Ubuntu 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.