Bagikan melalui


Menyiapkan komputer virtual Oracle Linux untuk Azure

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

Artikel ini mengasumsikan bahwa Anda telah menginstal sistem operasi (OS) Oracle Linux ke hard disk virtual (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 Penginstalan Oracle Linux

  • Untuk tips selengkapnya tentang menyiapkan Linux untuk Azure, lihat Catatan penginstalan Linux umum.
  • Hyper-V dan Azure mendukung Oracle Linux dengan Unbreakable Enterprise Kernel (UEK) atau Kernel yang Kompatibel dengan Red Hat.
  • UEK2 Oracle tidak didukung di Hyper-V dan Azure karena tidak menyertakan driver yang diperlukan.
  • 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.
  • Dukungan kernel untuk memasang sistem file fungsi yang ditentukan pengguna (UDF) diperlukan. Pada boot pertama di Azure, konfigurasi provisi diteruskan ke VM Linux melalui media berformat UDF yang dilampirkan ke tamu. Agen Azure Linux harus memasang sistem file UDF untuk membaca konfigurasinya dan memprovisikan VM.
  • 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.
  • Versi kernel Linux yang lebih lama dari 2.6.37 tidak mendukung NUMA pada Hyper-V dengan ukuran VM yang lebih besar. Masalah ini terutama memengaruhi distribusi lama yang menggunakan kernel Red Hat 2.6.32 upstram dan diperbaiki di Oracle Linux 6.6 dan yang lebih baru.
  • Jangan mengonfigurasi partisi swap pada disk OS.
  • 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.
  • Pastikan repositori Addons diaktifkan. Edit file /etc/yum.repos.d/public-yum-ol6.repo(Oracle Linux 6) atau /etc/yum.repos.d/public-yum-ol7.repo(Oracle Linux 7). Ubah baris enabled=0 menjadi enabled=1 di bawah [ol6_addons] atau [ol7_addons] dalam file ini.

Oracle Linux 6.X

Penting

Ingatlah bahwa Oracle Linux 6.x sudah berada di akhir masa pakai. Oracle Linux versi 6.10 telah tersedia Dukungan Siklus Hidup Diperpanjang, yang berakhir Juli 2024.

Anda harus menyelesaikan langkah-langkah konfigurasi tertentu di OS agar VM berjalan di Azure.

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

  2. Pilih Sambungkan untuk membuka jendela untuk VM.

  3. Hapus instalan NetworkManager:

    sudo rpm -e --nodeps NetworkManager
    

    Catatan

    Jika paket belum diinstal, perintah ini gagal dengan pesan kesalahan. Pesan ini diharapkan.

  4. Buat file bernama jaringan di /etc/sysconfig/ direktori yang berisi teks berikut:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. Buat file bernama fcfg-eth0 di /etc/sysconfig/network-scripts/ direktori yang berisi teks berikut:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  6. Ubah aturan udev untuk menghindari pembuatan aturan statis untuk antarmuka Ethernet. Aturan ini dapat menyebabkan masalah saat Anda mengkloning VM di Azure atau Hyper-V:

    sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
    sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
    
  7. Pastikan bahwa layanan jaringan dimulai pada waktu boot:

    sudo chkconfig network on
    
  8. Instal python-pyasn1:

    sudo yum install python-pyasn1
    
  9. Ubah baris boot kernel dalam konfigurasi grub Anda untuk menyertakan lebih banyak parameter kernel untuk Azure. Untuk melakukan langkah ini, buka /boot/grub/menu.lst di editor teks dan pastikan bahwa kernel menyertakan parameter berikut:

    console=ttyS0 earlyprintk=ttyS0
    

    Pengaturan ini memastikan bahwa semua pesan konsol dikirim ke port serial pertama, yang dapat membantu dukungan Azure dengan masalah penelusuran kesalahan.

    Selain langkah-langkah sebelumnya, kami sarankan Anda menghapus parameter berikut:

    rhgb quiet crashkernel=auto
    

    Boot grafis dan tenang tidak berguna di lingkungan cloud tempat Anda ingin semua log dikirim ke port serial.

    Opsi crashkernel dapat dibiarkan dikonfigurasi jika Anda mau. Parameter ini mengurangi jumlah memori yang tersedia di VM sebesar 128 MB atau lebih, yang mungkin menjadi masalah untuk ukuran VM yang lebih kecil.

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

  11. Instal agen Azure Linux dengan menjalankan perintah berikut. Versi terbaru adalah 2.0.15.

    sudo yum install WALinuxAgent
    

    WALinuxAgent Menginstal paket akan menghapus NetworkManager paket dan NetworkManager-gnome jika belum dihapus, seperti yang dijelaskan di langkah 2.

  12. Jangan membuat ruang swap pada disk OS.

    Agen Azure Linux dapat secara otomatis mengonfigurasi ruang pertukaran dengan menggunakan disk sumber daya lokal yang dilampirkan ke VM setelah provisi di Azure. Disk sumber daya lokal adalah disk sementara dan mungkin dikosongkan ketika VM dideprovisi. Setelah Anda menginstal agen Linux Azure (lihat langkah sebelumnya), ubah parameter /etc/waagent.conf berikut dengan tepat:

    ResourceDisk.Format=y
    ResourceDisk.Filesystem=ext4
    ResourceDisk.MountPoint=/mnt
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB=2048    ## NOTE: set this to whatever you need it to be.
    
  13. Batalkan provisi VM dan siapkan untuk provisi di Azure:

    sudo waagent -force -deprovision
    sudo export HISTSIZE=0
    sudo logout
    
  14. Pilih Tindakan>Matikan di Hyper-V Manager. VHD Linux Anda sekarang siap untuk diunggah ke Azure.


Oracle Linux 7.0 dan yang lebih baru

Ikuti langkah-langkah di bagian berikutnya jika Anda menggunakan Oracle Linux 7.0 atau yang lebih baru.

Perubahan di Oracle Linux 7

Menyiapkan VM Oracle Linux 7 untuk Azure mirip dengan Oracle Linux 6, tetapi beberapa perbedaan perlu dicatat:

  • Azure mendukung Oracle Linux dengan Unbreakable Enterprise Kernel (UEK) atau Kernel yang Kompatibel dengan Red Hat. Kami menyarankan agar Anda menggunakan Oracle Linux dengan UEK.
  • Paket NetworkManager tidak lagi bertentangan dengan agen Azure Linux. Paket ini diinstal secara default, dan kami sarankan Anda tidak menghapusnya.
  • GRUB2 sekarang digunakan sebagai bootloader default, sehingga prosedur untuk mengedit parameter kernel telah berubah. (Lihat bagian "Langkah konfigurasi".)
  • XFS sekarang menjadi sistem file default. Sistem file ext4 masih dapat digunakan jika Anda mau.

Langkah-langkah konfigurasi

  1. Di Hyper-V Manager, pilih VM.

  2. Pilih Sambungkan untuk membuka jendela konsol untuk VM.

  3. Buat file bernama jaringan di /etc/sysconfig/ direktori yang berisi teks berikut:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  4. Buat file bernama fcfg-eth0 di /etc/sysconfig/network-scripts/ direktori yang berisi teks berikut:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  5. Ubah aturan udev untuk menghindari pembuatan aturan statis untuk antarmuka Ethernet. Aturan ini dapat menyebabkan masalah saat Anda mengkloning VM di Azure atau Hyper-V:

    sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
    
  6. Pastikan bahwa layanan jaringan dimulai pada waktu boot:

    sudo chkconfig network on
    
  7. Pasang paket python-pyasn1:

    sudo yum install python3-pyasn1
    
  8. Hapus metadata yum saat ini dan instal pembaruan apa pun:

    sudo yum clean all
    sudo yum -y update
    
  9. Ubah baris boot kernel dalam konfigurasi grub Anda untuk menyertakan lebih banyak parameter kernel untuk Azure. Untuk melakukan langkah ini, buka /etc/default/grub di editor teks dan edit GRUB_CMDLINE_LINUX parameter . Contohnya:

    GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
    

    Modifikasi ini juga memastikan bahwa semua pesan konsol dikirim ke port serial pertama, yang dapat membantu dukungan Azure dengan masalah penelusuran kesalahan. Ini juga mematikan konvensi penamaan untuk kartu antarmuka jaringan di Oracle Linux 7 dengan UEK. Kami juga menyarankan agar Anda menghapus parameter berikut:

       rhgb quiet crashkernel=auto
    

    Boot grafis dan tenang tidak berguna di lingkungan cloud tempat Anda ingin semua log dikirim ke port serial.

    Opsi crashkernel dapat dibiarkan dikonfigurasi jika Anda mau. Parameter ini mengurangi jumlah memori yang tersedia di VM sebesar 128 MB atau lebih, yang mungkin menjadi masalah untuk ukuran VM yang lebih kecil.

  10. Setelah Selesai mengedit /etc/default/grub, bangun kembali konfigurasi grub:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  11. Pastikan server SSH diinstal dan dikonfigurasi untuk memulai pada saat boot. Pengaturan ini biasanya default.

  12. Instal agen dan dependensi Azure Linux:

    sudo yum install WALinuxAgent
    sudo systemctl enable waagent
    
  13. Instal cloud-init untuk menangani provisi:

    sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
    
  14. Konfigurasikan waagent untuk cloud-init:

    sudo sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/g' /etc/waagent.conf
    sudo sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/g' /etc/waagent.conf
    
    sudo echo "Adding mounts and disk_setup to init stage"
    sudo sed -i '/ - mounts/d' /etc/cloud/cloud.cfg
    sudo sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg
    sudo sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg
    sudo sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfg
    
    echo "Allow only Azure datasource, disable fetching network setting via IMDS"
    
    sudo cat > /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF
    datasource_list: [ Azure ]
    datasource:
        Azure:
            apply_network_config: False
    EOF
    
    
    if [[ -f /mnt/resource/swapfile ]]; then
    echo Removing swapfile - Oracle Linux uses a swapfile by default
    swapoff /mnt/swapfile
    rm /mnt/swapfile -f
    fi
    
    echo "Add console log file"
    cat >> /etc/cloud/cloud.cfg.d/05_logging.cfg <<EOF
    
    # This tells cloud-init to redirect its stdout and stderr to
    # 'tee -a /var/log/cloud-init-output.log' so the user can see output
    # there without needing to look on the console.
    output: {all: '| tee -a /var/log/cloud-init-output.log'}
    EOF
    
  15. Konfigurasi pertukaran:

    1. Jangan membuat ruang pertukaran pada disk sistem operasi.

      Sebelumnya, agen Azure Linux digunakan secara otomatis untuk mengonfigurasi ruang pertukaran dengan menggunakan disk sumber daya lokal yang dilampirkan ke VM setelah VM disediakan di Azure. Namun, cloud-init sekarang menangani langkah ini. Anda tidak boleh menggunakan agen Linux untuk memformat disk sumber daya untuk membuat file swap. Ubah parameter /etc/waagent.conf berikut dengan tepat:

      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
      
    2. Jika Anda ingin memasang, memformat, dan membuat pertukaran, Anda dapat:

      • Teruskan kode ini sebagai cloud-init konfigurasi setiap kali Anda membuat VM.
      • Gunakan direktif yang cloud-init dipanggang ke dalam gambar untuk melakukan langkah ini setiap kali VM dibuat:
      echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
      cat > /etc/cloud/cloud.cfg.d/00-azure-swap.cfg << EOF
      #cloud-config
      # Generated by Azure cloud image build
      disk_setup:
        ephemeral0:
          table_type: mbr
          layout: [66, [33, 82]]
          overwrite: True
      fs_setup:
        - device: ephemeral0.1
          filesystem: ext4
        - device: ephemeral0.2
          filesystem: swap
      mounts:
        - ["ephemeral0.1", "/mnt/resource"]
        - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"]
      EOF
      
  16. Batalkan provisi VM dan siapkan untuk provisi di Azure:

    sudo cloud-init clean
    sudo rm -f /var/log/waagent.log
    sudo waagent -force -deprovision
    sudo rm -f ~/.bash_history
    sudo export HISTSIZE=0
    

    Catatan

    Jika Anda memigrasikan VM tertentu dan tidak ingin membuat gambar umum, lewati langkah deprovisi.

  17. Pilih Tindakan>Matikan di Hyper-V Manager. VHD Linux Anda sekarang siap untuk diunggah ke Azure.

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