Menyiapkan komputer virtual Oracle Linux untuk Azure

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

Artikel ini mengasumsikan bahwa Anda telah menginstal sistem operasi Oracle Linux 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 Penginstalan Oracle Linux

  • Lihat juga Catatan Instalasi Linux Umum untuk tips lebih lanjut tentang persiapan Linux untuk Azure.
  • 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 menggunakan Hyper-V Manager atau cmdlet convert-vhd.
  • Dukungan kernel untuk memasang sistem file 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 menginstal sistem Linux, kami sarankan Anda menggunakan partisi standar daripada LVM (seringkali 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 dapat digunakan pada disk data jika diinginkan.
  • 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 berdampak pada distribusi yang lebih lama 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 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), dan ubah baris enabled=0 menjadi enabled=1 di bawah [ol6_addons] atau [ol7_addons] dalam file ini.

Oracle Linux 6.X

Penting

Pertimbangan Oracle Linux 6.x sudah EOL. Oracle Linux versi 6.10 memiliki dukungan ELS yang tersedia, yang akan berakhir pada 07/2024.

Anda harus menyelesaikan langkah-langkah konfigurasi tertentu dalam sistem operasi agar mesin virtual dapat berjalan di Azure.

  1. Di panel tengah Hyper-V Manager, pilih mesin virtual.

  2. Klik Sambungkan untuk membuka jendela untuk komputer virtual.

  3. Hapus instalan NetworkManager dengan menjalankan perintah berikut ini:

    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 mengkloning komputer virtual di Microsoft 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 layanan jaringan dimulai pada waktu boot dengan menjalankan perintah berikut:

    sudo chkconfig network on
    
  8. Pasang python-pyasn1 dengan menjalankan perintah berikut:

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

    console=ttyS0 earlyprintk=ttyS0
    

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

    Selain hal di atas, sebaiknya hapus parameter berikut:

    rhgb quiet crashkernel=auto
    

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

    Opsi crashkernel mungkin dibiarkan dikonfigurasi jika diinginkan, tetapi perhatikan bahwa parameter ini mengurangi jumlah memori yang tersedia di VM sebesar 128 MB atau lebih, yang mungkin bermasalah pada ukuran VM yang lebih kecil.

  10. Pastikan server SSH diinstal dan dikonfigurasi untuk memulai pada saat boot. Biasanya hal ini merupakan penyebabnya.

  11. Pasang Agen Linux Azure dengan menjalankan perintah berikut ini. Versi terbaru adalah 2.0.15.

    sudo yum install WALinuxAgent
    

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

  12. Jangan membuat ruang swap pada disk OS.

    Azure Linux Agent dapat secara otomatis mengonfigurasi ruang swap menggunakan disk sumber daya lokal yang dilampirkan ke VM setelah penyediaan di Azure. Disk sumber daya lokal adalah disk sementara dan mungkin dikosongkan ketika VM dideprovisi. Setelah memasang Agen Linux Azure (lihat langkah sebelumnya), ubah parameter berikut di /etc/waagent.conf 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. Jalankan perintah berikut untuk membatalkan penyediaan komputer virtual dan persiapkan komputer virtual untuk disediakan di Azure:

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


Oracle Linux 7.0 dan yang lebih baru

Perubahan di Oracle Linux 7

Menyiapkan komputer virtual Oracle Linux 7 untuk Azure mirip dengan Oracle Linux 6, namun ada beberapa perbedaan signifikan yang perlu diperhatikan:

  • Azure mendukung Oracle Linux dengan Unbreakable Enterprise Kernel (UEK) atau Kernel yang Kompatibel dengan Red Hat. Oracle Linux dengan UEK direkomendasikan.
  • Paket NetworkManager tidak lagi bertentangan dengan agen Azure Linux. Paket ini diinstal secara default, dan kami sarankan tidak dihapus.
  • GRUB2 sekarang digunakan sebagai bootloader default, sehingga prosedur untuk mengedit parameter kernel telah berubah (lihat di bawah).
  • XFS sekarang menjadi sistem file default. Sistem file ext4 masih dapat digunakan jika diinginkan.

Langkah-langkah konfigurasi

  1. Di Hyper-V Manager, pilih komputer virtual.

  2. Klik Sambungkan untuk membuka jendela konsol untuk komputer virtual.

  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 mengkloning komputer virtual di Microsoft Azure atau Hyper-V:

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

    sudo chkconfig network on
    
  7. Pasang paket python-pyasn1 dengan menjalankan perintah berikut:

    sudo yum install python3-pyasn1
    
  8. Jalankan perintah berikut untuk menghapus metadata yum saat ini dan instal semua pembaruan:

    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 ini, buka "/etc/default/grub" di editor teks dan edit parameterGRUB_CMDLINE_LINUX, misalnya:

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

    Ini akan memastikan semua pesan konsol dikirim ke port serial pertama, yang dapat membantu dukungan Azure dengan masalah penelusuran kesalahan. Ini juga mematikan konvensi penamaan untuk NIC di Oracle Linux 7 dengan Unbreakable Enterprise Kernel. Selain hal-hal di atas, disarankan untuk menghapus parameter berikut:

       rhgb quiet crashkernel=auto
    

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

    Opsi crashkernel ini dapat dibiarkan dikonfigurasi jika diinginkan, tetapi perhatikan bahwa parameter ini akan mengurangi jumlah memori yang tersedia di VM sebesar 128 MB atau lebih, yang mungkin bermasalah pada ukuran VM yang lebih kecil.

  10. Setelah Anda selesai mengedit "/etc/default/grub" per di atas, jalankan perintah berikut untuk membangun kembali konfigurasi grub:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  11. Pastikan server SSH diinstal dan dikonfigurasi untuk memulai pada saat boot. Biasanya hal ini merupakan penyebabnya.

  12. Pasang Agen Azure Linux dan dependensi:

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

    sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
    
  14. Mengonfigurasi 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. Alihkan konfigurasi. Jangan membuat ruang pertukaran pada disk sistem operasi.

    Sebelumnya, Azure Linux Agent digunakan secara otomatis untuk mengonfigurasi ruang pertukaran dengan menggunakan disk sumber daya lokal yang dilampirkan ke komputer virtual setelah komputer virtual disediakan di Azure. Namun, ini sekarang ditangani oleh cloud-init, Anda tidak boleh menggunakan Agen Linux untuk memformat disk sumber daya membuat file pertukaran, memodifikasi parameter berikut dengan /etc/waagent.conf 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
    

    Jika Anda ingin memasang, memformat, dan membuat pertukaran, Anda dapat:

    • Meneruskannya sebagai konfigurasi cloud-init setiap kali Anda membuat komputer virtual
    • Menggunakan direktif cloud-init yang dimasukkan ke dalam gambar yang akan melakukan hal ini setiap kali komputer virtual 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. Jalankan perintah berikut untuk membatalkan penyediaan komputer virtual dan persiapkan komputer virtual untuk disediakan 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 komputer virtual tertentu dan tidak ingin membuat gambar umum, lewati langkah deprovisi.

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

Langkah berikutnya

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