Menyiapkan komputer virtual berbasis Red Hat untuk Azure
Berlaku untuk: ✔️ VM Linux ✔️Set skala fleksibel ✔️ Set skala seragam
Dalam artikel ini, Anda akan mempelajari cara menyiapkan komputer virtual Red Hat Enterprise Linux (RHEL) untuk digunakan di Azure. Versi RHEL yang dibahas dalam artikel ini adalah 6.X, 7.X, dan 8.X. Hypervisor untuk persiapan yang dibahas di artikel ini adalah Hyper-V, komputer virtual berbasis kernel (KVM), dan VMware. Untuk informasi selengkapnya tentang persyaratan kelayakan untuk berpartisipasi di program Red Hat Cloud Access, lihat situs web Red Hat Cloud Access dan Menjalankan RHEL di Azure. Untuk cara mengotomatiskan pembuatan citra RHEL, lihat Azure Image Builder.
Catatan
Ketahuilah versi yang merupakan End Of Life (EOL) dan tidak lagi didukung oleh Redhat. Gambar yang diunggah yang berada di atau di luar EOL akan didukung berdasarkan upaya bisnis yang wajar. Tautan ke Siklus Hidup Produk Redhat
Hyper-V Manager
Bagian ini menunjukkan cara menyiapkan komputer virtual RHEL 6, RHEL 7, atau RHEL 8 menggunakan Hyper-V Manager.
Prasyarat
Bagian ini mengasumsikan bahwa Anda telah mendapatkan file ISO dari situs web Red Hat dan menginstal gambar RHEL ke hard disk virtual (VHD). Untuk detail selengkapnya tentang cara menggunakan Hyper-V Manager untuk menginstal citra sistem operasi, lihat Menginstal Peran Hyper-V dan Mengonfigurasi Komputer Virtual.
Catatan penginstalan RHEL
Azure tidak mendukung format VHDX. Azure hanya mendukung VHD tetap. Anda dapat menggunakan Hyper-V Manager untuk mengonversi disk ke format VHD, atau menggunakan cmdlet convert-vhd. Jika menggunakan VirtualBox, pilih Ukuran tetap sebagai ganti dari opsi default yang dialokasikan secara dinamis saat Anda membuat disk.
Azure mendukung Komputer virtual Gen1 (boot BIOS) & Gen2 (boot UEFI).
Ukuran maksimum yang diizinkan untuk VHD adalah 1.023 GB.
Modul kernel vfat harus diaktifkan di kernel.
Logical Volume Manager (LVM) didukung dan dapat digunakan pada disk OS atau disk data di komputer virtual Azure. Namun, secara umum, sebaiknya gunakan partisi standar pada disk OS daripada LVM. Praktik ini akan menghindari terjadinya konflik nama LVM dengan komputer virtual yang dikloning, khususnya jika Anda perlu melampirkan disk sistem operasi ke komputer virtual identik lain untuk pemecahan masalah. Lihat dokumentasi LVM dan RAID.
Dukungan kernel untuk pemasangan sistem file Universal Disk Format (UDF) diperlukan. Pada boot pertama di Azure, media berformat UDF yang dilampirkan ke tamu meneruskan konfigurasi penyediaan ke komputer virtual Linux. Azure Linux Agent harus dapat memasang sistem file UDF untuk membaca konfigurasinya dan menyediakan komputer virtual, tanpa ini, penyediaan akan gagal!
Jangan mengonfigurasi partisi swap pada disk sistem operasi. Informasi selengkapnya tentang ini dapat ditemukan pada langkah-langkah berikut.
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. Detail selengkapnya dapat ditemukan pada langkah-langkah di bawah. Lihat juga Catatan Penginstalan Linux untuk mengetahui informasi selengkapnya.
Catatan
Cloud-init >= 21.2 menghapus persyaratan udf. Namun, tanpa modul udf diaktifkan, cdrom tidak akan dipasang selama provisi, mencegah data kustom diterapkan. Solusi untuk ini adalah menerapkan data kustom menggunakan data pengguna. Namun, tidak seperti data kustom, data pengguna tidak dienkripsi. https://cloudinit.readthedocs.io/en/latest/topics/format.html
RHEL 6 menggunakan Hyper-V Manager
Penting
Mulai tanggal 30 November 2020, Red Hat Enterprise Linux 6 akan mencapai fase end of maintenance. Fase pemeliharaan diikuti oleh Fase Umur Diperpanjang. Saat Red Hat Enterprise Linux 6 keluar dari Fase Penuh/Pemeliharaan, sebaiknya tingkatkan ke Red Hat Enterprise Linux 7, 8, atau 9. Jika pelanggan harus tetap berada di Red Hat Enterprise Linux 6, sebaiknya tambahkan Add-On Red Hat Enterprise Linux Extended Life Cycle Support (ELS).
Di Hyper-V Manager, pilih komputer virtual.
Klik Sambungkan untuk membuka jendela konsol untuk komputer virtual.
Di RHEL 6, NetworkManager dapat mengintervensi agen Azure Linux. Hapus instalan paket ini dengan menjalankan perintah berikut:
sudo rpm -e --nodeps NetworkManager
Buat atau edit file
/etc/sysconfig/network
, lalu tambahkan teks berikut:NETWORKING=yes HOSTNAME=localhost.localdomain
Buat atau edit file
/etc/sysconfig/network-scripts/ifcfg-eth0
, lalu tambahkan teks berikut:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Pindahkan (atau hapus) aturan udev untuk menghindari dibuatnya aturan statis bagi antarmuka Ethernet. Aturan tersebut dapat menyebabkan masalah saat Anda 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
Catatan
** Saat menggunakan Accelerated Networking (AN) antarmuka sintetis yang dibuat harus saya konfigurasikan agar tidak dikelola menggunakan aturan udev. Ini akan mencegah NetworkManager menetapkan ip yang sama dengan antarmuka utama.
Untuk menerapkannya:
sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules
# Accelerated Networking on Azure exposes a new SRIOV interface to the VM.
# This interface is transparentlybonded to the synthetic interface,
# so NetworkManager should just ignore any SRIOV interfaces.
SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION=="add", ENV{NM_UNMANAGED}="1"
EOF
Pastikan bahwa layanan jaringan akan dimulai pada waktu boot dengan menjalankan perintah berikut:
sudo chkconfig network on
Daftarkan langganan Red Hat Anda untuk mengaktifkan penginstalan paket dari repositori RHEL dengan menjalankan perintah berikut:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Paket WALinuxAgent,
WALinuxAgent-<version>
, telah didorong ke repositori ekstra Red Hat. Aktifkan repositori ekstra dengan menjalankan perintah berikut:sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
Ubah baris boot kernel dalam konfigurasi grub Anda untuk menyertakan parameter kernel tambahan untuk Azure. Untuk melakukan modifikasi ini, buka
/boot/grub/menu.lst
di editor teks, dan pastikan kernel default menyertakan parameter berikut:console=ttyS0 earlyprintk=ttyS0
Ini juga akan memastikan bahwa semua pesan konsol telah dikirim ke port serial pertama, yang dapat membantu dukungan Azure yang memiliki masalah penelusuran kesalahan.
Selain itu, sebaiknya Anda 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. Anda dapat membiarkan opsi
crashkernel
terkonfigurasi jika ingin. Perhatikan bahwa parameter ini mengurangi jumlah memori yang tersedia di komputer virtual sebanyak 128 MB atau lebih. Konfigurasi ini mungkin bermasalah di komputer virtual dengan ukuran yang lebih kecil.Pastikan bahwa server shell aman (SSH) terinstal dan terkonfigurasi agar memulai pada waktu boot, yang biasanya ini adalah pengaturan default-nya. Ubah /etc/ssh/sshd_config untuk menyertakan baris berikut:
ClientAliveInterval 180
Instal Azure Linux Agent dengan menjalankan perintah berikut:
sudo yum install WALinuxAgent sudo chkconfig waagent on
Menginstal paket WALinuxAgent akan menghapus paket NetworkManager dan NetworkManager-gnome jika belum dihapus di langkah 3.
Jangan membuat ruang pertukaran pada disk sistem operasi.
Azure Linux Agent dapat otomatis mengonfigurasi ruang pertukaran menggunakan disk sumber daya lokal yang dipasang pada komputer virtual setelah komputer virtual tersebut disediakan di Azure. Perhatikan bahwa disk sumber daya lokal adalah disk sementara dan mungkin dikosongkan jika komputer virtual dibatalkan penyediaannya. Setelah menginstal Azure Linux Agent pada langkah-langkah sebelumnya, ubah parameter berikut di /etc/waagent.conf secara benar:
ResourceDisk.Format=y ResourceDisk.Filesystem=ext4 ResourceDisk.MountPoint=/mnt/resource ResourceDisk.EnableSwap=y ResourceDisk.SwapSizeMB=2048 ## NOTE: set this to whatever you need it to be.
Batalkan pendaftaran langganan (jika perlu) dengan menjalankan perintah berikut:
sudo subscription-manager unregister
Jalankan perintah berikut untuk membatalkan penyediaan komputer virtual dan persiapkan komputer virtual untuk disediakan di Azure:
Catatan
Jika Anda memigrasikan komputer virtual tertentu dan tidak ingin membuat gambar umum, lewati langkah deprovisi.
sudo waagent -force -deprovision
sudo export HISTSIZE=0
- Klik Tindakan>Matikan di Hyper-V Manager. VHD Linux Anda sekarang siap untuk diunggah ke Azure.
RHEL 7 menggunakan Hyper-V Manager
Di Hyper-V Manager, pilih komputer virtual.
Klik Sambungkan untuk membuka jendela konsol untuk komputer virtual.
Buat atau edit file
/etc/sysconfig/network
, lalu tambahkan teks berikut:NETWORKING=yes HOSTNAME=localhost.localdomain
Buat atau edit file
/etc/sysconfig/network-scripts/ifcfg-eth0
, lalu tambahkan teks berikut:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes
Pastikan bahwa layanan jaringan akan dimulai pada waktu boot dengan menjalankan perintah berikut:
sudo systemctl enable network
Daftarkan langganan Red Hat Anda untuk mengaktifkan penginstalan paket dari repositori RHEL dengan menjalankan perintah berikut:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Ubah baris boot kernel dalam konfigurasi grub Anda untuk menyertakan parameter kernel tambahan untuk Azure. Untuk melakukan modifikasi ini, buka
/etc/default/grub
di editor teks dan editGRUB_CMDLINE_LINUX
parameter . Misalnya:GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 earlyprintk=ttyS0 net.ifnames=0" GRUB_TERMINAL_OUTPUT="serial console" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
Ini juga akan memastikan semua pesan konsol dikirimkan ke port serial pertama dan memungkinkan interaksi dengan konsol serial, yang dapat membantu dukungan Azure yang memiliki masalah penelusuran kesalahan. Konfigurasi ini juga menonaktifkan konvensi penamaan RHEL 7 baru untuk NIC.
rhgb quiet crashkernel=auto
Boot grafis dan tenang tidak berguna di lingkungan cloud di mana kita ingin semua log dikirim ke port serial. Anda dapat membiarkan opsi
crashkernel
terkonfigurasi jika ingin. Perlu diperhatikan bahwa parameter ini mengurangi jumlah memori yang tersedia di komputer virtual sebesar 128 MB atau lebih, yang mungkin bermasalah pada ukuran komputer virtual yang lebih kecil.Setelah Selesai mengedit
/etc/default/grub
, jalankan perintah berikut untuk membangun kembali konfigurasi grub:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Catatan
Jika mengunggah komputer virtual yang mengaktifkan UEFI, perintah untuk memperbarui grub adalah
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
.Pastikan server SSH diinstal dan dikonfigurasi agar memulai pada waktu boot, yang biasanya ini adalah defaultnya. Ubah
/etc/ssh/sshd_config
untuk menyertakan baris berikut:ClientAliveInterval 180
Paket WALinuxAgent,
WALinuxAgent-<version>
, telah didorong ke repositori ekstra Red Hat. Aktifkan repositori ekstra dengan menjalankan perintah berikut:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Instal Agen Azure Linux, cloud-init, dan utilitas lain yang diperlukan dengan menjalankan perintah berikut:
sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons sudo systemctl enable waagent.service sudo systemctl enable cloud-init.service
Konfigurasikan cloud-init untuk menangani penyediaan:
- Konfigurasikan waagent untuk cloud-init:
sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=auto/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
Catatan
Jika Anda memigrasikan komputer virtual tertentu dan tidak ingin membuat gambar umum, atur
Provisioning.Agent=disabled
pada/etc/waagent.conf
konfigurasi.- Konfigurasikan pemasangan:
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
- Konfigurasikan datasource Azure:
sudo 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
- Jika dikonfigurasikan, hapus swapfile yang ada:
if [[ -f /mnt/resource/swapfile ]]; then echo "Removing swapfile" #RHEL uses a swapfile by default swapoff /mnt/resource/swapfile rm /mnt/resource/swapfile -f fi
- Konfigurasikan pengelogan cloud-init:
sudo echo "Add console log file" sudo 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 untuk mengonfigurasi ruang pertukaran secara otomatis 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:ResourceDisk.Format=n ResourceDisk.EnableSwap=n
Jika Anda ingin memasang, memformat, dan membuat pertukaran, Anda dapat:
Teruskan sebagai konfigurasi cloud-init setiap kali Anda membuat mesin virtual melalui customdata. Ini adalah metode yang direkomendasikan.
Gunakan petunjuk cloud-init yang dimasukkan ke dalam gambar yang akan melakukan hal ini setiap kali mesin virtual dibuat.
sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf sudo 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
Jika Anda ingin membatalkan pendaftaran langganan, jalankan perintah berikut:
sudo subscription-manager unregister
Batalkan penyediaan
Jalankan perintah berikut untuk membatalkan penyediaan komputer virtual dan persiapkan komputer virtual untuk disediakan di Azure:
Perhatian
Jika Anda memigrasikan komputer virtual tertentu dan tidak ingin membuat gambar umum, lewati langkah deprovisi. Menjalankan perintah
waagent -force -deprovision+user
akan merender komputer sumber yang tidak dapat digunakan, langkah ini hanya dimaksudkan untuk membuat gambar umum.sudo rm -f /var/log/waagent.log sudo cloud-init clean sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo export HISTSIZE=0
Klik Tindakan>Matikan di Hyper-V Manager. VHD Linux Anda sekarang siap untuk diunggah ke Azure.
RHEL 8 menggunakan Hyper-V Manager
Di Hyper-V Manager, pilih komputer virtual.
Klik Sambungkan untuk membuka jendela konsol untuk komputer virtual.
Pastikan layanan Network Manager akan dimulai pada waktu boot dengan menjalankan perintah berikut:
sudo systemctl enable NetworkManager.service
Konfigurasikan antarmuka jaringan untuk otomatis memulai saat boot dan gunakan DHCP:
sudo nmcli con mod eth0 connection.autoconnect yes ipv4.method auto
Daftarkan langganan Red Hat Anda untuk mengaktifkan penginstalan paket dari repositori RHEL dengan menjalankan perintah berikut:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Ubah baris boot kernel dalam konfigurasi grub untuk menyertakan parameter kernel tambahan untuk Azure dan mengaktifkan konsol serial.
- Hapus parameter GRUB saat ini:
sudo grub2-editenv - unset kernelopts
- Edit
/etc/default/grub
di editor teks, dan tambahkan parameter berikut:
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 earlyprintk=ttyS0 net.ifnames=0" GRUB_TERMINAL_OUTPUT="serial console" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
Ini juga akan memastikan semua pesan konsol dikirimkan ke port serial pertama dan memungkinkan interaksi dengan konsol serial, yang dapat membantu dukungan Azure yang memiliki masalah penelusuran kesalahan. Konfigurasi juga menonaktifkan konvensi penamaan baru untuk NIC.
- Selain itu, sebaiknya Anda 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. Anda dapat membiarkan opsi
crashkernel
terkonfigurasi jika ingin. Perlu diperhatikan bahwa parameter ini mengurangi jumlah memori yang tersedia di komputer virtual sebesar 128 MB atau lebih, yang mungkin bermasalah pada ukuran komputer virtual yang lebih kecil.Setelah Anda selesai mengedit
/etc/default/grub
, jalankan perintah berikut untuk membuat ulang konfigurasi grub:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Dan untuk komputer virtual yang mengaktifkan UEFI, jalankan perintah berikut:
sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
Pastikan server SSH diinstal dan dikonfigurasi agar memulai pada waktu boot, yang biasanya ini adalah defaultnya. Ubah
/etc/ssh/sshd_config
untuk menyertakan baris berikut:ClientAliveInterval 180
Instal Agen Azure Linux, cloud-init, dan utilitas lain yang diperlukan dengan menjalankan perintah berikut:
sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons sudo systemctl enable waagent.service sudo systemctl enable cloud-init.service
Konfigurasikan cloud-init untuk menangani penyediaan:
- Konfigurasikan waagent untuk cloud-init:
sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=cloud-init/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
Catatan
Jika Anda memigrasikan komputer virtual tertentu dan tidak ingin membuat gambar umum, atur
Provisioning.Agent=disabled
pada/etc/waagent.conf
konfigurasi.- Konfigurasikan pemasangan:
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
- Konfigurasikan datasource Azure:
sudo 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
- Jika dikonfigurasikan, hapus swapfile yang ada:
if [[ -f /mnt/resource/swapfile ]]; then echo "Removing swapfile" #RHEL uses a swapfile by defaul swapoff /mnt/resource/swapfile rm /mnt/resource/swapfile -f fi
- Konfigurasikan pengelogan cloud-init:
sudo echo "Add console log file" sudo 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
Konfigurasi pertukaran Jangan membuat ruang pertukaran pada disk sistem operasi.
Sebelumnya, Azure Linux Agent digunakan untuk mengonfigurasi ruang pertukaran secara otomatis 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:ResourceDisk.Format=n ResourceDisk.EnableSwap=n
Teruskan sebagai konfigurasi cloud-init setiap kali Anda membuat mesin virtual melalui customdata. Ini adalah metode yang direkomendasikan.
Gunakan petunjuk cloud-init yang dimasukkan ke dalam gambar yang akan melakukan hal ini setiap kali mesin virtual dibuat.
sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf sudo 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.device-timeout=2,x-systemd.requires=cloud-init.service", "0", "0"] EOF
Jika Anda ingin membatalkan pendaftaran langganan, jalankan perintah berikut:
sudo subscription-manager unregister
Batalkan penyediaan
Jalankan perintah berikut untuk membatalkan penyediaan komputer virtual dan persiapkan komputer virtual untuk disediakan di Azure:
sudo cloud-init clean sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo sudo rm -f /var/log/waagent.log sudo export HISTSIZE=0
Perhatian
Jika Anda memigrasikan komputer virtual tertentu dan tidak ingin membuat gambar umum, lewati langkah deprovisi. Menjalankan perintah
waagent -force -deprovision+user
akan merender komputer sumber yang tidak dapat digunakan, langkah ini hanya dimaksudkan untuk membuat gambar umum.Klik Tindakan>Matikan di Hyper-V Manager. VHD Linux Anda sekarang siap untuk diunggah ke Azure.
KVM
Bagian ini menunjukkan Anda cara menggunakan KVM untuk menyiapkan distro RHEL 6 atau RHEL 7 untuk mengunggah ke Azure.
RHEL 6 menggunakan KVM
Penting
Mulai tanggal 30 November 2020, Red Hat Enterprise Linux 6 akan mencapai fase end of maintenance. Fase pemeliharaan diikuti oleh Fase Umur Diperpanjang. Saat Red Hat Enterprise Linux 6 keluar dari Fase Penuh/Pemeliharaan, sebaiknya tingkatkan ke Red Hat Enterprise Linux 7, 8, atau 9. Jika pelanggan harus tetap berada di Red Hat Enterprise Linux 6, sebaiknya tambahkan Add-On Red Hat Enterprise Linux Extended Life Cycle Support (ELS).
Unduh gambar KVM RHEL 6 dari situs web Red Hat.
Tetapkan kata sandi akar.
Hasilkan kata sandi yang dienkripsi, lalu salin output perintah:
sudo openssl passwd -1 changeme
Tetapkan kata sandi akar dengan guestfish:
sudo guestfish --rw -a <image-name> > <fs> run > <fs> list-filesystems > <fs> mount /dev/sda1 / > <fs> vi /etc/shadow > <fs> exit
Ubah bidang kedua pengguna root dari "!!" ke kata sandi terenkripsi.
Buat komputer virtual di KVM dari gambar qcow2. Tetapkan jenis disk ke qcow2, lalu tetapkan model perangkat antarmuka jaringan virtual ke virtio. Lalu, mulai komputer virtual, dan masuk sebagai akar.
Buat atau edit file
/etc/sysconfig/network
, lalu tambahkan teks berikut:NETWORKING=yes HOSTNAME=localhost.localdomain
Buat atau edit file
/etc/sysconfig/network-scripts/ifcfg-eth0
, lalu tambahkan teks berikut:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Pindahkan (atau hapus) aturan udev untuk menghindari dibuatnya aturan statis bagi antarmuka Ethernet. Aturan ini menimbulkan masalah saat Anda mengkloning komputer virtual 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
Catatan
** Saat menggunakan Accelerated Networking (AN) antarmuka sintetis yang dibuat harus saya konfigurasikan agar tidak dikelola menggunakan aturan udev. Ini akan mencegah NetworkManager menetapkan ip yang sama dengan antarmuka utama.
Untuk menerapkannya:
sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules
# Accelerated Networking on Azure exposes a new SRIOV interface to the VM.
# This interface is transparently bonded to the synthetic interface,
# so NetworkManager should just ignore any SRIOV interfaces.
SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION=="add", ENV{NM_UNMANAGED}="1"
EOF
Pastikan bahwa layanan jaringan akan dimulai pada waktu boot dengan menjalankan perintah berikut:
sudo chkconfig network on
Daftarkan langganan Red Hat Anda untuk mengaktifkan penginstalan paket dari repositori RHEL dengan menjalankan perintah berikut:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Ubah baris boot kernel dalam konfigurasi grub Anda untuk menyertakan parameter kernel tambahan untuk Azure. Untuk melakukan konfigurasi ini, buka
/boot/grub/menu.lst
di editor teks, dan pastikan kernel default menyertakan parameter berikut:console=ttyS0 earlyprintk=ttyS0
Ini juga akan memastikan bahwa semua pesan konsol telah dikirim ke port serial pertama, yang dapat membantu dukungan Azure yang memiliki masalah penelusuran kesalahan.
Selain itu, 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. Anda dapat membiarkan opsi
crashkernel
terkonfigurasi jika ingin. Perlu diperhatikan bahwa parameter ini mengurangi jumlah memori yang tersedia di komputer virtual sebesar 128 MB atau lebih, yang mungkin bermasalah pada ukuran komputer virtual yang lebih kecil.Tambahkan modul Hyper-V ke initramfs:
Edit
/etc/dracut.conf
, lalu tambahkan konten berikut:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Buat ulang initramfs:
sudo dracut -f -v
Hapus instalan cloud-init:
sudo yum remove cloud-init
Pastikan server SSH diinstal dan dikonfigurasi untuk memulai pada saat boot:
sudo chkconfig sshd on
Ubah /etc/ssh/sshd_config untuk menyertakan baris berikut:
PasswordAuthentication yes ClientAliveInterval 180
Paket WALinuxAgent,
WALinuxAgent-<version>
, telah didorong ke repositori ekstra Red Hat. Aktifkan repositori ekstra dengan menjalankan perintah berikut:sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
Instal Azure Linux Agent dengan menjalankan perintah berikut:
sudo yum install WALinuxAgent sudo chkconfig waagent on
Azure Linux Agent dapat otomatis mengonfigurasi ruang pertukaran menggunakan disk sumber daya lokal yang dipasang pada komputer virtual setelah komputer virtual tersebut disediakan di Azure. Perhatikan bahwa disk sumber daya lokal adalah disk sementara, dan mungkin dikosongkan jika komputer virtual dibatalkan penyediaanya. Setelah Anda menginstal Azure Linux Agent pada langkah sebelumnya, ubah parameter berikut di /etc/waagent.conf dengan tepat:
ResourceDisk.Format=y ResourceDisk.Filesystem=ext4 ResourceDisk.MountPoint=/mnt/resource ResourceDisk.EnableSwap=y ResourceDisk.SwapSizeMB=2048 ## NOTE: set this to whatever you need it to be.
Batalkan pendaftaran langganan (jika perlu) dengan menjalankan perintah berikut:
sudo subscription-manager unregister
Jalankan perintah berikut untuk membatalkan penyediaan komputer virtual dan persiapkan komputer virtual untuk disediakan di Azure:
Catatan
Jika Anda memigrasikan komputer virtual tertentu dan tidak ingin membuat gambar umum, lewati langkah deprovisi
sudo rm -rf /var/lib/waagent/ sudo rm -f /var/log/waagent.log sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo export HISTSIZE=0
Matikan komputer virtual di KVM.
Konversikan gambar qcow2 ke format VHD.
Catatan
Ada bug yang diketahui dalam versi qemu-img >=2.2.1 yang menghasilkan VHD yang tidak diformat dengan benar. Masalah telah diperbaiki di QEMU 2.6. Sebaiknya gunakan qemu-img 2.2.0 atau lebih rendah, atau perbarui ke 2.6 atau lebih tinggi. Referensi: https://bugs.launchpad.net/qemu/+bug/1490611.
Konversikan terlebih dahulu gambar ke format mentah:
sudo qemu-img convert -f qcow2 -O raw rhel-6.9.qcow2 rhel-6.9.raw
Pastikan ukuran gambar mentah setara dengan 1 MB. Jika tidak, bulatkan ukurannya agar setara dengan 1 MB:
MB=$((1024*1024)) size=$(qemu-img info -f raw --output json "rhel-6.9.raw" | \ gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}') rounded_size=$((($size/$MB + 1)*$MB)) sudo qemu-img resize rhel-6.9.raw $rounded_size
Konversikan disk mentah ke VHD berukuran tetap:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd
Atau, dengan qemu versi 2.6+ sertakan opsi
force_size
:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-6.9.raw rhel-6.9.vhd
RHEL 7 menggunakan KVM
Unduh gambar KVM RHEL 7 dari situs web Red Hat. Prosedur ini menggunakan RHEL 7 sebagai contoh.
Tetapkan kata sandi akar.
Hasilkan kata sandi yang dienkripsi, lalu salin output perintah:
sudo openssl passwd -1 changeme
Tetapkan kata sandi akar dengan guestfish:
sudo guestfish --rw -a <image-name> > <fs> run > <fs> list-filesystems > <fs> mount /dev/sda1 / > <fs> vi /etc/shadow > <fs> exit
Ubah bidang kedua pengguna root dari "!!" ke kata sandi terenkripsi.
Buat komputer virtual di KVM dari gambar qcow2. Tetapkan jenis disk ke qcow2, lalu tetapkan model perangkat antarmuka jaringan virtual ke virtio. Lalu, mulai komputer virtual, dan masuk sebagai akar.
Buat atau edit file
/etc/sysconfig/network
, lalu tambahkan teks berikut:NETWORKING=yes HOSTNAME=localhost.localdomain
Buat atau edit file
/etc/sysconfig/network-scripts/ifcfg-eth0
, lalu tambahkan teks berikut:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes
Pastikan bahwa layanan jaringan akan dimulai pada waktu boot dengan menjalankan perintah berikut:
sudo systemctl enable network
Daftarkan langganan Red Hat Anda untuk mengaktifkan penginstalan paket dari repositori RHEL dengan menjalankan perintah berikut:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Ubah baris boot kernel dalam konfigurasi grub Anda untuk menyertakan parameter kernel tambahan untuk Azure. Untuk melakukan konfigurasi ini, buka
/etc/default/grub
di editor teks dan editGRUB_CMDLINE_LINUX
parameter . Misalnya:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
Perintah ini juga memastikan bahwa semua pesan konsol dikirim ke port serial pertama, yang dapat membantu dukungan Azure yang memiliki masalah penelusuran kesalahan. Perintah juga menonaktifkan konvensi penamaan RHEL 7 baru untuk NIC. Selain itu, 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. Anda dapat membiarkan opsi
crashkernel
terkonfigurasi jika ingin. Perlu diperhatikan bahwa parameter ini mengurangi jumlah memori yang tersedia di komputer virtual sebesar 128 MB atau lebih, yang mungkin bermasalah pada ukuran komputer virtual yang lebih kecil.Setelah Anda selesai mengedit
/etc/default/grub
, jalankan perintah berikut untuk membuat ulang konfigurasi grub:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Tambahkan modul Hyper-V ke initramfs.
Edit
/etc/dracut.conf
dan tambahkan konten:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Buat ulang initramfs:
sudo dracut -f -v
Hapus instalan cloud-init:
sudo yum remove cloud-init
Pastikan server SSH diinstal dan dikonfigurasi untuk memulai pada saat boot:
sudo systemctl enable sshd
Ubah /etc/ssh/sshd_config untuk menyertakan baris berikut:
PasswordAuthentication yes ClientAliveInterval 180
Paket WALinuxAgent,
WALinuxAgent-<version>
, telah didorong ke repositori ekstra Red Hat. Aktifkan repositori ekstra dengan menjalankan perintah berikut:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Instal Azure Linux Agent dengan menjalankan perintah berikut:
sudo yum install WALinuxAgent
Aktifkan layanan waagent:
sudo systemctl enable waagent.service
Menginstal cloud-init Ikuti langkah-langkah di 'Menyiapkan komputer virtual RHEL 7 dari Hyper-V Manager', langkah 12, 'Instal cloud-init untuk menangani penyediaan.'
Konfigurasi swap
Jangan membuat ruang pertukaran pada disk sistem operasi. Ikuti langkah-langkah di 'Menyiapkan komputer virtual RHEL 7 dari Hyper-V Manager', langkah 13, 'Alihkan konfigurasi'
Batalkan pendaftaran langganan (jika perlu) dengan menjalankan perintah berikut:
sudo subscription-manager unregister
Batalkan penyediaan
Ikuti langkah-langkah di 'Menyiapkan komputer virtual RHEL 7 dari Hyper-V Manager', langkah 15, 'Batalkan penyediaan'
Matikan komputer virtual di KVM.
Konversikan gambar qcow2 ke format VHD.
Catatan
Ada bug yang diketahui dalam versi qemu-img >=2.2.1 yang menghasilkan VHD yang tidak diformat dengan benar. Masalah telah diperbaiki di QEMU 2.6. Sebaiknya gunakan qemu-img 2.2.0 atau lebih rendah, atau perbarui ke 2.6 atau lebih tinggi. Referensi: https://bugs.launchpad.net/qemu/+bug/1490611.
Konversikan terlebih dahulu gambar ke format mentah:
sudo qemu-img convert -f qcow2 -O raw rhel-7.4.qcow2 rhel-7.4.raw
Pastikan ukuran gambar mentah setara dengan 1 MB. Jika tidak, bulatkan ukurannya agar setara dengan 1 MB:
MB=$((1024*1024)) size=$(qemu-img info -f raw --output json "rhel-7.4.raw" | \ gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}') rounded_size=$((($size/$MB + 1)*$MB)) sudo qemu-img resize rhel-7.4.raw $rounded_size
Konversikan disk mentah ke VHD berukuran tetap:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
Atau, dengan qemu versi 2.6+ sertakan opsi
force_size
:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
VMware
Bagian ini menunjukkan cara menyiapkan distro RHEL 6 atau RHEL 7 dari VMware.
Prasyarat
Bagian ini mengasumsikan bahwa Anda telah menginstal komputer virtual RHEL di VMware. Untuk detail tentang cara menginstal sistem operasi di VMware, lihat Panduan Penginstalan Sistem Operasi Tamu VMware.
- Saat menginstal sistem operasi Linux, sebaiknya gunakan partisi standar daripada LVM, yang sering kali merupakan default untuk banyak penginstalan. Ini akan menghindari konflik nama LVM dengan komputer virtual kloning, terutama jika disk sistem operasi perlu dipasang ke komputer virtual lain untuk pemecahan masalah. LVM atau RAID dapat digunakan pada disk data jika diinginkan.
- Jangan mengonfigurasi partisi swap pada disk sistem operasi. Anda dapat mengonfigurasi agen Linux untuk membuat file pertukaran pada disk sumber daya sementara. Anda dapat menemukan informasi selengkapnya tentang ini dalam langkah-langkah berikut.
- Saat Anda membuat hard disk virtual, pilih Simpan disk virtual sebagai satu file.
RHEL 6 menggunakan VMware
Penting
Mulai tanggal 30 November 2020, Red Hat Enterprise Linux 6 akan mencapai fase end of maintenance. Fase pemeliharaan diikuti oleh Fase Umur Diperpanjang. Saat Red Hat Enterprise Linux 6 keluar dari Fase Penuh/Pemeliharaan, sangat disarankan untuk meningkatkan ke Red Hat Enterprise Linux 7 atau 8 atau 9. Jika pelanggan harus tetap menggunakan Red Hat Enterprise Linux 6, disarankan untuk menambahkan Add-On Red Hat Enterprise Linux Extended Life Cycle Support (ELS).
Di RHEL 6, NetworkManager dapat mengintervensi agen Azure Linux. Hapus instalan paket ini dengan menjalankan perintah berikut:
sudo rpm -e --nodeps NetworkManager
Buat file bernama network di direktori /etc/sysconfig/ yang berisi teks berikut:
NETWORKING=yes HOSTNAME=localhost.localdomain
Buat atau edit file
/etc/sysconfig/network-scripts/ifcfg-eth0
, lalu tambahkan teks berikut:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Pindahkan (atau hapus) aturan udev untuk menghindari dibuatnya aturan statis bagi antarmuka Ethernet. Aturan ini menimbulkan masalah saat Anda mengkloning komputer virtual 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
Catatan
** Saat menggunakan Accelerated Networking (AN) antarmuka sintetis yang dibuat harus saya konfigurasikan agar tidak dikelola menggunakan aturan udev. Ini akan mencegah NetworkManager menetapkan ip yang sama dengan antarmuka utama.
Untuk menerapkannya:
sudo cat <<EOF>> /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules
# Accelerated Networking on Azure exposes a new SRIOV interface to the VM.
# This interface is transparently bonded to the synthetic interface,
# so NetworkManager should just ignore any SRIOV interfaces.
SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION=="add", ENV{NM_UNMANAGED}="1"
EOF
Pastikan bahwa layanan jaringan akan dimulai pada waktu boot dengan menjalankan perintah berikut:
sudo chkconfig network on
Daftarkan langganan Red Hat Anda untuk mengaktifkan penginstalan paket dari repositori RHEL dengan menjalankan perintah berikut:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Paket WALinuxAgent,
WALinuxAgent-<version>
, telah didorong ke repositori ekstra Red Hat. Aktifkan repositori ekstra dengan menjalankan perintah berikut:sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
Ubah baris boot kernel dalam konfigurasi grub Anda untuk menyertakan parameter kernel tambahan untuk Azure. Untuk melakukan ini, buka
/etc/default/grub
di editor teks dan editGRUB_CMDLINE_LINUX
parameter . Misalnya:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0"
Ini juga akan memastikan bahwa semua pesan konsol telah dikirim ke port serial pertama, yang dapat membantu dukungan Azure yang memiliki masalah penelusuran kesalahan. Selain itu, 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. Anda dapat membiarkan opsi
crashkernel
terkonfigurasi jika ingin. Perlu diperhatikan bahwa parameter ini mengurangi jumlah memori yang tersedia di komputer virtual sebesar 128 MB atau lebih, yang mungkin bermasalah pada ukuran komputer virtual yang lebih kecil.Tambahkan modul Hyper-V ke initramfs:
Edit
/etc/dracut.conf
, lalu tambahkan konten berikut:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Buat ulang initramfs:
sudo dracut -f -v
Pastikan server SSH diinstal dan dikonfigurasi agar memulai pada waktu boot, yang biasanya ini adalah defaultnya. Ubah
/etc/ssh/sshd_config
untuk menyertakan baris berikut:ClientAliveInterval 180
Instal Azure Linux Agent dengan menjalankan perintah berikut:
sudo yum install WALinuxAgent sudo chkconfig waagent on
Jangan membuat ruang pertukaran pada disk sistem operasi.
Azure Linux Agent dapat otomatis mengonfigurasi ruang pertukaran menggunakan disk sumber daya lokal yang dipasang pada komputer virtual setelah komputer virtual tersebut disediakan di Azure. Perhatikan bahwa disk sumber daya lokal adalah disk sementara, dan mungkin dikosongkan jika komputer virtual dibatalkan penyediaanya. Setelah Anda menginstal Azure Linux Agent pada langkah sebelumnya, ubah parameter berikut di
/etc/waagent.conf
dengan tepat:ResourceDisk.Format=y ResourceDisk.Filesystem=ext4 ResourceDisk.MountPoint=/mnt/resource ResourceDisk.EnableSwap=y ResourceDisk.SwapSizeMB=2048 ## NOTE: set this to whatever you need it to be.
Batalkan pendaftaran langganan (jika perlu) dengan menjalankan perintah berikut:
sudo subscription-manager unregister
Jalankan perintah berikut untuk membatalkan penyediaan komputer virtual dan persiapkan komputer virtual untuk disediakan di Azure:
Catatan
Jika Anda memigrasikan komputer virtual tertentu dan tidak ingin membuat gambar umum, lewati langkah deprovisi.
sudo rm -rf /var/lib/waagent/ sudo rm -f /var/log/waagent.log sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo export HISTSIZE=0
Matikan komputer virtual, dan konversikan file VMDK menjadi file .vhd.
Catatan
Ada bug yang diketahui dalam versi qemu-img >=2.2.1 yang menghasilkan VHD yang tidak diformat dengan benar. Masalah telah diperbaiki di QEMU 2.6. Sebaiknya gunakan qemu-img 2.2.0 atau lebih rendah, atau perbarui ke 2.6 atau lebih tinggi. Referensi: https://bugs.launchpad.net/qemu/+bug/1490611.
Konversikan terlebih dahulu gambar ke format mentah:
sudo qemu-img convert -f vmdk -O raw rhel-6.9.vmdk rhel-6.9.raw
Pastikan ukuran gambar mentah setara dengan 1 MB. Jika tidak, bulatkan ukurannya agar setara dengan 1 MB:
MB=$((1024*1024)) size=$(qemu-img info -f raw --output json "rhel-6.9.raw" | \ gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}') rounded_size=$((($size/$MB + 1)*$MB)) sudo qemu-img resize rhel-6.9.raw $rounded_size
Konversikan disk mentah ke VHD berukuran tetap:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd
Atau, dengan qemu versi 2.6+ sertakan opsi
force_size
:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-6.9.raw rhel-6.9.vhd
RHEL 7 menggunakan VMware
Buat atau edit file
/etc/sysconfig/network
, lalu tambahkan teks berikut:NETWORKING=yes HOSTNAME=localhost.localdomain
Buat atau edit file
/etc/sysconfig/network-scripts/ifcfg-eth0
, lalu tambahkan teks berikut:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes
Pastikan bahwa layanan jaringan akan dimulai pada waktu boot dengan menjalankan perintah berikut:
sudo systemctl enable network
Daftarkan langganan Red Hat Anda untuk mengaktifkan penginstalan paket dari repositori RHEL dengan menjalankan perintah berikut:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Ubah baris boot kernel dalam konfigurasi grub Anda untuk menyertakan parameter kernel tambahan untuk Azure. Untuk melakukan modifikasi ini, buka
/etc/default/grub
di editor teks dan editGRUB_CMDLINE_LINUX
parameter . Misalnya:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
Konfigurasi ini juga memastikan bahwa semua pesan konsol dikirim ke port serial pertama, yang dapat membantu dukungan Azure yang memiliki masalah penelusuran kesalahan. Ini juga menonaktifkan konvensi penamaan RHEL 7 baru untuk NIC. Selain itu, 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. Anda dapat membiarkan opsi
crashkernel
terkonfigurasi jika ingin. Perlu diperhatikan bahwa parameter ini mengurangi jumlah memori yang tersedia di komputer virtual sebesar 128 MB atau lebih, yang mungkin bermasalah pada ukuran komputer virtual yang lebih kecil.Setelah Anda selesai mengedit
/etc/default/grub
, jalankan perintah berikut untuk membuat ulang konfigurasi grub:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Tambahkan modul Hyper-V ke initramfs.
Edit
/etc/dracut.conf
, tambahkan konten:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Buat ulang initramfs:
sudo dracut -f -v
Pastikan server SSH diinstal dan dikonfigurasi untuk memulai pada saat boot. Pengaturan ini biasanya default. Ubah
/etc/ssh/sshd_config
untuk menyertakan baris berikut:ClientAliveInterval 180
Paket WALinuxAgent,
WALinuxAgent-<version>
, telah didorong ke repositori ekstra Red Hat. Aktifkan repositori ekstra dengan menjalankan perintah berikut:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Instal Azure Linux Agent dengan menjalankan perintah berikut:
sudo yum install WALinuxAgent sudo systemctl enable waagent.service
Instal cloud-init
Ikuti langkah-langkah di 'Menyiapkan komputer virtual RHEL 7 dari Hyper-V Manager', langkah 12, 'Instal cloud-init untuk menangani penyediaan.'
Konfigurasi swap
Jangan membuat ruang pertukaran pada disk sistem operasi. Ikuti langkah-langkah di 'Menyiapkan komputer virtual RHEL 7 dari Hyper-V Manager', langkah 13, 'Alihkan konfigurasi'
Jika Anda ingin membatalkan pendaftaran langganan, jalankan perintah berikut:
sudo subscription-manager unregister
Batalkan penyediaan
Ikuti langkah-langkah di 'Menyiapkan komputer virtual RHEL 7 dari Hyper-V Manager', langkah 15, 'Batalkan penyediaan'
Matikan komputer virtual dan konversi file VMDK ke format VHD.
Catatan
Ada bug yang diketahui dalam versi qemu-img >=2.2.1 yang menghasilkan VHD yang tidak diformat dengan benar. Masalah telah diperbaiki di QEMU 2.6. Sebaiknya gunakan qemu-img 2.2.0 atau lebih rendah, atau perbarui ke 2.6 atau lebih tinggi. Referensi: https://bugs.launchpad.net/qemu/+bug/1490611.
Konversikan terlebih dahulu gambar ke format mentah:
sudo qemu-img convert -f vmdk -O raw rhel-7.4.vmdk rhel-7.4.raw
Pastikan ukuran gambar mentah setara dengan 1 MB. Jika tidak, bulatkan ukurannya agar setara dengan 1 MB:
MB=$((1024*1024)) size=$(qemu-img info -f raw --output json "rhel-7.4.raw" | \ gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}') rounded_size=$((($size/$MB + 1)*$MB)) sudo qemu-img resize rhel-7.4.raw $rounded_size
Konversikan disk mentah ke VHD berukuran tetap:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
Atau, dengan qemu versi 2.6+ sertakan opsi
force_size
:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
File kickstart
Bagian ini menunjukkan cara menyiapkan distro RHEL 7 dari ISO menggunakan file kickstart.
RHEL 7 dari file kickstart
Buat file kickstart yang menyertakan konten berikut dan simpan file. Untuk detail tentang penginstalan kickstart, lihat Panduan Penginstalan Kickstart.
# Kickstart for provisioning a RHEL 7 Azure VM # System authorization information auth --enableshadow --passalgo=sha512 # Use graphical install text # Don't run the Setup Agent on first boot firstboot --disable # Keyboard layouts keyboard --vckeymap=us --xlayouts='us' # System language lang en_US.UTF-8 # Network information network --bootproto=dhcp # Root password rootpw --plaintext "to_be_disabled" # System services services --enabled="sshd,waagent,NetworkManager" # System timezone timezone Etc/UTC --isUtc --ntpservers 0.rhel.pool.ntp.org,1.rhel.pool.ntp.org,2.rhel.pool.ntp.org,3.rhel.pool.ntp.org # Partition clearing information clearpart --all --initlabel # Clear the MBR zerombr # Disk partitioning information part /boot --fstype="xfs" --size=500 part / --fstyp="xfs" --size=1 --grow --asprimary # System bootloader configuration bootloader --location=mbr # Firewall configuration firewall --disabled # Enable SELinux selinux --enforcing # Don't configure X skipx # Power down the machine after install poweroff %packages @base @console-internet chrony sudo parted -dracut-config-rescue %end %post --log=/var/log/anaconda/post-install.log #!/bin/bash # Register Red Hat Subscription subscription-manager register --username=XXX --password=XXX --auto-attach --force # Install latest repo update yum update -y # Enable extras repo subscription-manager repos --enable=rhel-7-server-extras-rpms # Install WALinuxAgent yum install -y WALinuxAgent # Unregister Red Hat subscription subscription-manager unregister # Enable waaagent at boot-up systemctl enable waagent # Install cloud-init yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons # Configure waagent for cloud-init sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=cloud-init/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 echo "Adding mounts and disk_setup to init stage" sed -i '/ - mounts/d' /etc/cloud/cloud.cfg sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfg # Disable the root account usermod root -p '!!' # Configure swap using cloud-init 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"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.device-timeout=2,x-systemd.requires=cloud-init.service", "0", "0"] EOF # Set the cmdline sed -i 's/^\(GRUB_CMDLINE_LINUX\)=".*"$/\1="console=tty1 console=ttyS0 earlyprintk=ttyS0"/g' /etc/default/grub # Enable SSH keepalive sed -i 's/^#\(ClientAliveInterval\).*$/\1 180/g' /etc/ssh/sshd_config # Build the grub cfg grub2-mkconfig -o /boot/grub2/grub.cfg # Configure network cat << EOF > /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes EOF # Deprovision and prepare for Azure if you are creating a generalized image sudo cloud-init clean --logs --seed sudo rm -rf /var/lib/cloud/ sudo rm -rf /var/lib/waagent/ sudo rm -f /var/log/waagent.log sudo waagent -force -deprovision+user rm -f ~/.bash_history export HISTSIZE=0 %end
Tempatkan file kickstart di lokasi yang dapat diakses sistem penginstalan.
Di Manajer Hyper-V, buat komputer virtual baru. Di halaman Sambungkan Hard Disk Virtual, pilih Tambahkan hard disk virtual nanti, lalu selesaikan Wizard Komputer Virtual Baru.
Buka pengaturan komputer virtual:
Tambahkan hard disk virtual baru ke komputer virtual. Pastikan untuk memilih Format VHD dan Ukuran Tetap.
Masukkan ISO penginstalan ke drive DVD.
Atur BIOS agar memulai boot dari CD.
Mulai komputer virtual. Saat panduan penginstalan muncul, tekan Tab untuk mengonfigurasi opsi boot.
Masukkan
inst.ks=<the location of the kickstart file>
pada akhir opsi boot, lalu tekan Enter.Tunggu hingga proses penginstalan selesai. Jika sudah selesai, komputer virtual akan dimatikan secara otomatis. VHD Linux Anda sekarang siap untuk diunggah ke Azure.
Masalah yang diketahui
Driver Hyper-V tidak dapat disertakan dalam disk RAM awal saat menggunakan hypervisor non-Hyper-V
Dalam beberapa kasus, penginstal Linux mungkin tidak menyertakan driver untuk Hyper-V di disk RAM awal (initrd atau initramfs) kecuali jika Linux mendeteksi bahwa driver tersebut berjalan di lingkungan Hyper-V.
Jika menggunakan sistem virtualisasi yang berbeda (yaitu VirtualBox, Xen, dll.) untuk menyiapkan citra Linux, Anda mungkin perlu membuat ulang initrd untuk memastikan bahwa setidaknya modul kernel hv_vmbus dan hv_storvsc tersedia di disk RAM awal. Masalah ini sering ditemui pada sistem yang berbasis distribusi upstream Red Hat.
Untuk mengatasi masalah ini, tambahkan modul Hyper-V ke initramfs dan buat ulang initramfs:
Edit /etc/dracut.conf
, lalu tambahkan konten berikut:
add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Buat ulang initramfs:
sudo dracut -f -v
Untuk detail selengkapnya, lihat informasi tentang membuat ulang initramfs.
Langkah berikutnya
- Sekarang Anda siap menggunakan hard disk virtual Red Hat Enterprise Linux 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.
- Untuk detail selengkapnya tentang hypervisor yang disertifikasi untuk menjalankan Red Hat Enterprise Linux, lihat situs web Red Hat.
- Untuk mempelajari selengkapnya tentang menggunakan citra RHEL BYOS siap produksi, buka halaman dokumentasi untuk BYOS.