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 barisenabled=0
menjadienabled=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.
Di panel tengah Hyper-V Manager, pilih mesin virtual.
Klik Sambungkan untuk membuka jendela untuk komputer virtual.
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.
Buat file bernama jaringan di
/etc/sysconfig/
direktori yang berisi teks berikut:NETWORKING=yes HOSTNAME=localhost.localdomain
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
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
Pastikan layanan jaringan dimulai pada waktu boot dengan menjalankan perintah berikut:
sudo chkconfig network on
Pasang python-pyasn1 dengan menjalankan perintah berikut:
sudo yum install python-pyasn1
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.Pastikan server SSH diinstal dan dikonfigurasi untuk memulai pada saat boot. Biasanya hal ini merupakan penyebabnya.
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.
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.
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
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
Di Hyper-V Manager, pilih komputer virtual.
Klik Sambungkan untuk membuka jendela konsol untuk komputer virtual.
Buat file bernama jaringan di
/etc/sysconfig/
direktori yang berisi teks berikut:NETWORKING=yes HOSTNAME=localhost.localdomain
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
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
Pastikan layanan jaringan dimulai pada waktu boot dengan menjalankan perintah berikut:
sudo chkconfig network on
Pasang paket python-pyasn1 dengan menjalankan perintah berikut:
sudo yum install python3-pyasn1
Jalankan perintah berikut untuk menghapus metadata yum saat ini dan instal semua pembaruan:
sudo yum clean all sudo yum -y update
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 parameter
GRUB_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.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
Pastikan server SSH diinstal dan dikonfigurasi untuk memulai pada saat boot. Biasanya hal ini merupakan penyebabnya.
Pasang Agen Azure Linux dan dependensi:
sudo yum install WALinuxAgent sudo systemctl enable waagent
Instal cloud-init untuk menangani penyediaan
sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
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
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
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.
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.