Azure'da Red Hat tabanlı bir sanal makine hazırlama
Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri ✔️ Tekdüzen ölçek kümeleri
Bu makalede, Red Hat Enterprise Linux (RHEL) sanal makinesini (VM) Azure'da kullanmak üzere hazırlamayı öğreneceksiniz. Bu makalede ele alınan RHEL sürümleri 6.X, 7.X ve 8.X'lerdir. Bu makalede ele alınan hazırlık hiper yöneticileri Hyper-V, çekirdek tabanlı VM (KVM) ve VMware'dir.
Red Hat'in Bulut Erişimi programına katılım için uygunluk gereksinimleri hakkında daha fazla bilgi için Red Hat Cloud Access web sitesine ve Azure'da RHEL çalıştırma bölümüne bakın. RHEL görüntüleri derlemeyi otomatikleştirmenin yolları için bkz . Azure Görüntü Oluşturucusu.
Not
Kullanım ömrünün sonuna gelen (EOL) ve artık Red Hat tarafından desteklenmeyen sürümlere dikkat edin. EOL'de veya EOL'nin ötesinde karşıya yüklenen görüntüler, makul bir iş eforu temelinde desteklenir. Daha fazla bilgi için bkz. Red Hat Ürün Yaşam Döngüleri.
Hyper-V Yöneticisi
Bu bölümde, Hyper-V Yöneticisi kullanarak RHEL 6, RHEL 7 veya RHEL 8 VM'sini nasıl hazırlayabileceğiniz gösterilmektedir.
Önkoşullar
Bu bölümde, Red Hat web sitesinden zaten bir ISO dosyası edindiğiniz ve RHEL görüntüsünü bir sanal sabit diske (VHD) yüklediğiniz varsayılır. bir işletim sistemi görüntüsü yüklemek için Hyper-V Yöneticisi'ni kullanma hakkında daha fazla bilgi için bkz . Hyper-V rolünü yükleme ve sanal makine yapılandırma.
RHEL yükleme notları
- Azure, VHDX biçimini desteklemez. Azure desteği yalnızca sabit VHD. Diski VHD biçimine dönüştürmek için Hyper-V Yöneticisi'ni veya cmdlet'ini
convert-vhd
kullanabilirsiniz. VirtualBox kullanıyorsanız, diski oluştururken varsayılan dinamik olarak ayrılan seçeneğin aksine Sabit boyut'u seçin. - Azure desteği 1. Nesil (BIOS önyüklemesi) ve 2. Nesil (UEFI önyükleme) VM'leri.
- VHD için izin verilen boyut üst sınırı 1.023 GB'tır.
- Vfat çekirdek modülü çekirdekte etkinleştirilmelidir.
- Mantıksal Birim Yöneticisi (LVM) desteklenir ve Azure VM'lerindeki işletim sistemi diskinde veya veri disklerinde kullanılabilir. Genel olarak, LVM yerine işletim sistemi diskinde standart bölümler kullanmanızı öneririz. Bu uygulama, özellikle sorun giderme için başka bir özdeş VM'ye bir işletim sistemi diski eklemeniz gerektiğinde, kopyalanan VM'lerle LVM ad çakışmalarını önler. Daha fazla bilgi için LVM ve RAID belgelerine bakın.
- Evrensel Disk Biçimi (UDF) dosya sistemlerini bağlamak için çekirdek desteği gereklidir. Azure'da ilk önyüklemede, konukta bulunan UDF biçimli medya, sağlama yapılandırmasını Linux VM'ye geçirir. Azure Linux aracısı, yapılandırmasını okumak ve VM'yi sağlamak için UDF dosya sistemini bağlayabilmelidir. Bu adım olmadan sağlama başarısız olur.
- İşletim sistemi diskinde değiştirme bölümü yapılandırmayın. Daha fazla bilgi için aşağıdaki adımları okuyun.
- Azure'da tüm VHD'lerin 1 MB'a hizalanmış bir sanal boyutu olmalıdır. Ham diskten VHD'ye dönüştürürken, dönüştürmeden önce ham disk boyutunun 1 MB'ın katı olduğundan emin olmanız gerekir. Daha fazla bilgi için aşağıdaki adımları okuyun. Ayrıca bkz. Linux yükleme notları.
Not
Cloud-init >= 21.2, UDF gereksinimini kaldırır. Ancak UDF modülü etkinleştirilmeden, cd-ROM sağlama sırasında bağlanmaz ve bu da özel verilerin uygulanmasını engeller. Geçici çözüm, kullanıcı verilerini kullanarak özel veriler uygulamaktır. Özel verilerden farklı olarak kullanıcı verileri şifrelenmez. Daha fazla bilgi için bkz . Kullanıcı veri biçimleri.
Hyper-V Yöneticisi'nin kullanıldığı RHEL 6
Önemli
30 Kasım 2020'de RHEL 6, Bakım aşamasının sonuna ulaştı. Bakım aşamasının ardından Genişletilmiş Yaşam aşaması eklenir. RHEL 6, Tam/Bakım aşamalarından geçerken RHEL 7, 8 veya 9 sürümüne yükseltmenizi kesinlikle öneririz. RHEL 6'da kalmanız gerekiyorsa RHEL Genişletilmiş Yaşam Döngüsü Desteği Eklentisi'ni eklemenizi öneririz.
Hyper-V Yöneticisi'nde VM'yi seçin.
VM için bir konsol penceresi açmak için Bağlan'ı seçin.
RHEL 6'da Azure
NetworkManager
Linux aracısını etkileyebilir. Bu paketi kaldırın:sudo rpm -e --nodeps NetworkManager
Dosyayı oluşturun veya düzenleyin
/etc/sysconfig/network
ve aşağıdaki metni ekleyin:NETWORKING=yes HOSTNAME=localhost.localdomain
Dosyayı oluşturun veya düzenleyin
/etc/sysconfig/network-scripts/ifcfg-eth0
ve aşağıdaki metni ekleyin:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Ethernet arabirimi için statik kurallar oluşturmaktan kaçınmak için udev kurallarını taşıyın (veya kaldırın). Bu kurallar, Azure veya Hyper-V'de vm kopyaladığınızda sorunlara neden olur:
Uyarı
Birçok 'v5' ve daha yeni VM boyutu hızlandırılmış ağ gerektirir. Etkinleştirilmemişse, NetworkManager tüm sanal işlev arabirimlerine aynı IP adresini atar. Yinelenen IP adreslerini önlemek için, daha yeni bir boyuta geçiş yaparken bu udev kuralını eklediğinizden emin olun.
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
Not
Hızlandırılmış Ağ'ı kullandığınızda, oluşturulan yapay arabirim bir udev kuralı kullanılarak yönetilmeyen şekilde yapılandırılmalıdır. Bu eylem, birincil arabirimle aynı IP'yi atamayı engeller
NetworkManager
.Uygulamak için:
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!="remove", ENV{NM_UNMANAGED}="1" EOF
Ağ hizmetinin önyükleme zamanında başlatıldığından emin olun:
sudo chkconfig network on
RHEL deposundan paketlerin yüklenmesini etkinleştirmek için Red Hat aboneliğinizi kaydedin:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
WALinuxAgent paketi,
WALinuxAgent-<version>
Red Hat extras deposuna gönderildi. Ek depoyu etkinleştirin:sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
Grub yapılandırmanızdaki çekirdek önyükleme satırını, Azure için daha fazla çekirdek parametresi içerecek şekilde değiştirin. Bu değişikliği yapmak için bir metin düzenleyicisinde açın
/boot/grub/menu.lst
. Varsayılan çekirdeğin aşağıdaki parametreleri içerdiğinden emin olun:console=ttyS0 earlyprintk=ttyS0
Bu eylem ayrıca tüm konsol iletilerinin ilk seri bağlantı noktasına gönderilmesini sağlar ve hata ayıklama sorunlarıyla ilgili Azure desteği yardımcı olabilir.
Ayrıca aşağıdaki parametreleri kaldırmanızı öneririz:
rhgb quiet crashkernel=auto
Grafik ve sessiz önyüklemeler, tüm günlüklerin seri bağlantı noktasına gönderilmesini istediğiniz bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz
crashkernel
. Bu parametre, VM'deki kullanılabilir bellek miktarını 128 MB veya daha fazla azaltır. Bu yapılandırma daha küçük VM boyutları için sorun olabilir.Güvenli kabuk (SSH) sunucusunun yüklü olduğundan ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun. Bu genellikle varsayılandır. Aşağıdaki satırı içerecek şekilde değiştirin
/etc/ssh/sshd_config
:ClientAliveInterval 180
Azure Linux aracısını yükleyin:
sudo yum install WALinuxAgent sudo chkconfig waagent on
WALinuxAgent paketinin yüklenmesi, 3. adımda henüz kaldırılmadıysa ve
NetworkManager-gnome
paketlerini kaldırırNetworkManager
.İşletim sistemi diskinde değiştirme alanı oluşturmayın.
Azure Linux aracısı, Azure'da VM sağlandıktan sonra VM'ye bağlı yerel kaynak diskini kullanarak değiştirme alanını otomatik olarak yapılandırabilir. Yerel kaynak diski geçici bir disktir ve VM'nin yetkisi kaldırılırsa disk boşaltılabilir. Önceki adımda Azure Linux aracısını yükledikten sonra aşağıdaki parametreleri
/etc/waagent.conf
uygun şekilde değiştirin: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.
Aboneliğin kaydını kaldırın (gerekirse):
sudo subscription-manager unregister
VM'nin sağlamasını kaldırın ve Azure'da sağlama için hazırlayın:
Not
Belirli bir VM'yi geçiriyorsanız ve genelleştirilmiş bir görüntü oluşturmak istemiyorsanız sağlamayı kaldırma adımını atlayın.
sudo waagent -force -deprovision sudo export HISTSIZE=0
Hyper-V Yöneticisi'nde Eylem>Kapat'ı seçin. Linux VHD'niz artık Azure'a yüklenmeye hazırdır.
Hyper-V Yöneticisi'nin kullanıldığı RHEL 7
Hyper-V Yöneticisi'nde VM'yi seçin.
VM için bir konsol penceresi açmak için Bağlan'ı seçin.
Dosyayı oluşturun veya düzenleyin
/etc/sysconfig/network
ve aşağıdaki metni ekleyin:NETWORKING=yes HOSTNAME=localhost.localdomain
Dosyayı oluşturun veya düzenleyin
/etc/sysconfig/network-scripts/ifcfg-eth0
ve aşağıdaki metni ekleyin:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes
Not
Hızlandırılmış Ağ'ı kullandığınızda, oluşturulan yapay arabirim bir udev kuralı kullanılarak yönetilmeyen şekilde yapılandırılmalıdır. Bu eylem, birincil arabirimle aynı IP'yi atamayı engeller
NetworkManager
.Uygulamak için:
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!="remove", ENV{NM_UNMANAGED}="1" EOF
Ağ hizmetinin önyükleme zamanında başlatıldığından emin olun:
sudo systemctl enable network
RHEL deposundan paketlerin yüklenmesini etkinleştirmek için Red Hat aboneliğinizi kaydedin:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Grub yapılandırmanızdaki çekirdek önyükleme satırını, Azure için daha fazla çekirdek parametresi içerecek şekilde değiştirin. Bu değişikliği yapmak için bir metin düzenleyicisinde açın
/etc/default/grub
ve parametresiniGRUB_CMDLINE_LINUX
düzenleyin. Örneğin:GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0 net.ifnames=0" GRUB_TERMINAL_OUTPUT="serial console" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1" ENABLE_BLSCFG=true
Not
yerine içinde ENABLE_BLSCFG=false varsa
ENABLE_BLSCFG=true
/etc/default/grub
, önyükleme girdilerini ve yapılandırmalarını yönetmek için Önyükleme Yükleyici Belirtimini (BLS) kullanan grubedit veya gubby gibi araçlar RHEL 8 ve 9'da düzgün çalışmayabilir. YoksaENABLE_BLSCFG
, varsayılan davranış şeklindedirfalse
.Bu değişiklik ayrıca tüm konsol iletilerinin ilk seri bağlantı noktasına gönderilmesini ve hata ayıklama sorunlarıyla Azure desteği yardımcı olabilecek seri konsolla etkileşimi etkinleştirmeyi sağlar. Bu yapılandırma, ağ arabirimi kartları (NIC' ler) için yeni RHEL 7 adlandırma kurallarını da kapatır.
rhgb quiet crashkernel=auto
Grafik ve sessiz önyüklemeler, tüm günlüklerin seri bağlantı noktasına gönderilmesini istediğiniz bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz
crashkernel
. Bu parametre, VM'deki kullanılabilir bellek miktarını 128 MB veya daha fazla azaltır; bu da daha küçük VM boyutları için sorun olabilir.düzenlemeyi
/etc/default/grub
tamamladıktan sonra grub yapılandırmasını yeniden derlemek için aşağıdaki komutu çalıştırın:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Not
UEFI özellikli bir VM'yi karşıya yüklüyorsanız grub'u güncelleştirme komutu şeklindedir
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
.SSH sunucusunun yüklü olduğundan ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun; bu genellikle varsayılandır. Aşağıdaki satırı içerecek şekilde değiştirin
/etc/ssh/sshd_config
:ClientAliveInterval 180
WALinuxAgent paketi,
WALinuxAgent-<version>
Red Hat extras deposuna gönderildi. Ek depoyu etkinleştirin:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Azure Linux aracısını,
cloud-init
ve diğer gerekli yardımcı programları yükleyin:sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons sudo systemctl enable waagent.service sudo systemctl enable cloud-init.service
Sağlamayı işlemek için yapılandırın
cloud-init
:için
cloud-init
yapılandırınwaagent
: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
Not
Belirli bir VM'yi geçiriyorsanız ve genelleştirilmiş bir görüntü oluşturmak istemiyorsanız yapılandırmayı
/etc/waagent.conf
ayarlayınProvisioning.Agent=disabled
.Bağlamaları yapılandırma:
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
Azure veri kaynağını yapılandırın:
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
Yapılandırıldıysa, mevcut takas dosyasını kaldırın:
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
Günlüğü yapılandırma
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
Değiştirme yapılandırması:
İşletim sistemi diskinde değiştirme alanı oluşturmayın.
Daha önce Azure Linux aracısı, Azure'da VM sağlandıktan sonra VM'ye bağlı yerel kaynak diski kullanılarak değiştirme alanını otomatik olarak yapılandırmak için kullanılıyordu. Bu eylem artık tarafından
cloud-init
işlenir. Takas dosyasını oluşturmak için kaynak diski biçimlendirmek için Linux aracısını kullanmamalısınız. aşağıdaki parametreleri/etc/waagent.conf
uygun şekilde değiştirin:ResourceDisk.Format=n ResourceDisk.EnableSwap=n
Değiştirme işlemini bağlamak, biçimlendirmek ve oluşturmak istiyorsanız şunları yapabilirsiniz:
Özel veriler aracılığıyla her VM oluşturduğunuzda bu kodu yapılandırma olarak
cloud-init
geçirin. Bu yöntemi öneririz.VM her oluşturulduğunda bu adımı gösteren görüntüde pişirilen bir
cloud-init
yönerge kullanın.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
Aboneliğin kaydını silmek istiyorsanız aşağıdaki komutu çalıştırın:
sudo subscription-manager unregister
VM'nin sağlamasını kaldırın ve Azure'da sağlama için hazırlayın:
Dikkat
Belirli bir VM'yi geçiriyorsanız ve genelleştirilmiş bir görüntü oluşturmak istemiyorsanız sağlamayı kaldırma adımını atlayın. komutu
waagent -force -deprovision+user
çalıştırılırsa kaynak makine kullanılamaz duruma gelir. Bu adım yalnızca genelleştirilmiş bir görüntü oluşturmaya yöneliktir.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
Hyper-V Yöneticisi'nde Eylem>Kapat'ı seçin. Linux VHD'niz artık Azure'a yüklenmeye hazırdır.
Hyper-V Yöneticisi'nin kullanıldığı RHEL 8+
Hyper-V Yöneticisi'nde VM'yi seçin.
VM için bir konsol penceresi açmak için Bağlan'ı seçin.
Ağ Yöneticisi hizmetinin önyükleme zamanında başlatıldığından emin olun:
sudo systemctl enable NetworkManager.service
Ağ arabirimini önyüklemede otomatik olarak başlatacak ve Dinamik Ana Bilgisayar Yapılandırma Protokolü'ni kullanacak şekilde yapılandırın:
sudo nmcli con mod eth0 connection.autoconnect yes ipv4.method auto
Not
Hızlandırılmış Ağ'ı kullandığınızda, oluşturulan yapay arabirim bir udev kuralı kullanılarak yönetilmeyen şekilde yapılandırılmalıdır. Bu eylem, birincil arabirimle aynı IP'yi atamayı engeller
NetworkManager
.Uygulamak için:
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!="remove", ENV{NM_UNMANAGED}="1" EOF
RHEL deposundan paketlerin yüklenmesini etkinleştirmek için Red Hat aboneliğinizi kaydedin:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Grub yapılandırmanızdaki çekirdek önyükleme satırını Azure için daha fazla çekirdek parametresi içerecek şekilde değiştirin ve seri konsolunu etkinleştirin.
Geçerli GRUB parametrelerini kaldırın:
sudo grub2-editenv - unset kernelopts
Metin düzenleyicisinde düzenleyin
/etc/default/grub
ve aşağıdaki parametreleri ekleyin: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"
Bu değişiklik ayrıca tüm konsol iletilerinin ilk seri bağlantı noktasına gönderilmesini ve hata ayıklama sorunlarıyla Azure desteği yardımcı olabilecek seri konsolla etkileşimi etkinleştirmeyi sağlar. Bu yapılandırma, NIC'ler için yeni adlandırma kurallarını da kapatır.
Aşağıdaki parametreleri de kaldırmanızı öneririz:
rhgb quiet crashkernel=auto
Grafik ve sessiz önyüklemeler, tüm günlüklerin seri bağlantı noktasına gönderilmesini istediğiniz bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz
crashkernel
. Bu parametre, VM'deki kullanılabilir bellek miktarını 128 MB veya daha fazla azaltır; bu da daha küçük VM boyutları için sorun olabilir.düzenlemeyi
/etc/default/grub
tamamladıktan sonra grub yapılandırmasını yeniden derlemek için aşağıdaki komutu çalıştırın:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
UEFI özellikli bir VM için aşağıdaki komutu çalıştırın:
sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
SSH sunucusunun yüklü olduğundan ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun; bu genellikle varsayılandır. Aşağıdaki satırı içerecek şekilde değiştirin
/etc/ssh/sshd_config
:ClientAliveInterval 180
Azure Linux aracısını,
cloud-init
ve diğer gerekli yardımcı programları yükleyin:sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons sudo systemctl enable waagent.service sudo systemctl enable cloud-init.service
Sağlamayı işlemek için yapılandırın
cloud-init
:için
cloud-init
yapılandırınwaagent
: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
Not
Belirli bir VM'yi geçiriyorsanız ve genelleştirilmiş bir görüntü oluşturmak istemiyorsanız yapılandırmayı
/etc/waagent.conf
ayarlayınProvisioning.Agent=disabled
.Bağlamaları yapılandırma:
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
Azure veri kaynağını yapılandırın:
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
Yapılandırıldıysa, mevcut takas dosyasını kaldırın:
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
Günlüğü yapılandırma
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
Değiştirme yapılandırması:
İşletim sistemi diskinde değiştirme alanı oluşturmayın.
Daha önce Azure Linux aracısı, Azure'da VM sağlandıktan sonra VM'ye bağlı yerel kaynak diski kullanılarak değiştirme alanını otomatik olarak yapılandırmak için kullanılıyordu. Bu eylem artık tarafından
cloud-init
işlenir. Kaynak diski biçimlendirmek için Linux aracısını kullanmamalısınız takas dosyasını oluşturun. aşağıdaki parametreleri/etc/waagent.conf
uygun şekilde değiştirin:ResourceDisk.Format=n ResourceDisk.EnableSwap=n
Özel veriler aracılığıyla her VM oluşturduğunuzda bu kodu yapılandırma olarak
cloud-init
geçirin. Bu yöntemi öneririz.VM her oluşturulduğunda bu adımı gösteren görüntüde pişirilen bir
cloud-init
yönerge kullanın.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
Aboneliğin kaydını silmek istiyorsanız aşağıdaki komutu çalıştırın:
sudo subscription-manager unregister
VM'nin sağlamasını kaldırıp Azure'da sağlama için hazırlamak için aşağıdaki komutları çalıştırın:
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
Dikkat
Belirli bir VM'yi geçiriyorsanız ve genelleştirilmiş bir görüntü oluşturmak istemiyorsanız sağlamayı kaldırma adımını atlayın. komutu
waagent -force -deprovision+user
çalıştırılırsa kaynak makine kullanılamaz duruma gelir. Bu adım yalnızca genelleştirilmiş bir görüntü oluşturmaya yöneliktir.Hyper-V Yöneticisi'nde Eylem>Kapat'ı seçin. Linux VHD'niz artık Azure'a yüklenmeye hazırdır.
KVM
Bu bölümde, Azure'a yüklemek üzere RHEL 6 veya RHEL 7 dağıtımı hazırlamak için KVM'nin nasıl kullanılacağı gösterilmektedir.
KVM kullanan RHEL 6
Önemli
30 Kasım 2020'de RHEL 6, Bakım aşamasının sonuna ulaştı. Bakım aşamasının ardından Genişletilmiş Yaşam aşaması eklenir. RHEL 6, Tam/Bakım aşamalarından geçerken RHEL 7, 8 veya 9 sürümüne yükseltmenizi kesinlikle öneririz. RHEL 6'da kalmanız gerekiyorsa RHEL Genişletilmiş Yaşam Döngüsü Desteği Eklentisi'ni eklemenizi öneririz.
Red Hat web sitesinden RHEL 6'nın KVM görüntüsünü indirin.
Bir kök parola ayarlayın.
Şifreli bir parola oluşturun ve komutun çıkışını kopyalayın:
sudo openssl passwd -1 changeme
Konuk balığı ile bir kök parola ayarlayın:
sudo guestfish --rw -a <image-name> > <fs> run > <fs> list-filesystems > <fs> mount /dev/sda1 / > <fs> vi /etc/shadow > <fs> exit
Kök kullanıcının
!!
ikinci alanını şifrelenmiş parola olarak değiştirin.Qcow2 görüntüsünden KVM'de vm oluşturun. Disk türünü qcow2 olarak ayarlayın ve sanal ağ arabirimi cihaz modelini virtio olarak ayarlayın. Ardından VM'yi başlatın ve kök olarak oturum açın.
Dosyayı oluşturun veya düzenleyin
/etc/sysconfig/network
ve aşağıdaki metni ekleyin:NETWORKING=yes HOSTNAME=localhost.localdomain
Dosyayı oluşturun veya düzenleyin
/etc/sysconfig/network-scripts/ifcfg-eth0
ve aşağıdaki metni ekleyin:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Ethernet arabirimi için statik kurallar oluşturmaktan kaçınmak için udev kurallarını taşıyın (veya kaldırın). Bu kurallar, Azure veya Hyper-V'de vm kopyaladığınızda sorunlara neden olur:
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
Not
Hızlandırılmış Ağ'ı kullandığınızda, oluşturulan yapay arabirim bir udev kuralı kullanılarak yönetilmeyen şekilde yapılandırılmalıdır. Bu eylem, birincil arabirimle aynı IP'yi atamayı engeller
NetworkManager
.Uygulamak için:
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!="remove", ENV{NM_UNMANAGED}="1" EOF
Ağ hizmetinin önyükleme zamanında başlatıldığından emin olun:
sudo chkconfig network on
RHEL deposundan paketlerin yüklenmesini etkinleştirmek için Red Hat aboneliğinizi kaydedin:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Grub yapılandırmanızdaki çekirdek önyükleme satırını, Azure için daha fazla çekirdek parametresi içerecek şekilde değiştirin. Bu yapılandırmayı yapmak için bir metin düzenleyicisinde açın
/boot/grub/menu.lst
. Varsayılan çekirdeğin aşağıdaki parametreleri içerdiğinden emin olun:console=ttyS0 earlyprintk=ttyS0
Bu adım ayrıca tüm konsol iletilerinin ilk seri bağlantı noktasına gönderilmesini sağlar ve bu da hata ayıklama sorunlarıyla Azure desteği yardımcı olabilir.
Ayrıca aşağıdaki parametreleri kaldırmanızı öneririz:
rhgb quiet crashkernel=auto
Grafik ve sessiz önyüklemeler, tüm günlüklerin seri bağlantı noktasına gönderilmesini istediğiniz bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz
crashkernel
. Bu parametre, VM'deki kullanılabilir bellek miktarını 128 MB veya daha fazla azaltır; bu da daha küçük VM boyutları için sorun olabilir.Initramfs'a Hyper-V modülleri ekleyin:
öğesini düzenleyin
/etc/dracut.conf
ve aşağıdaki içeriği ekleyin:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Initramfs'ı yeniden oluşturun:
sudo dracut -f -v
Kaldırma
cloud-init
:sudo yum remove cloud-init
SSH sunucusunun yüklendiğinden ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun:
sudo chkconfig sshd on
Aşağıdaki satırları içerecek şekilde değiştirin
/etc/ssh/sshd_config
:PasswordAuthentication yes ClientAliveInterval 180
WALinuxAgent paketi,
WALinuxAgent-<version>
Red Hat extras deposuna gönderildi. Ek depoyu etkinleştirin:sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
Azure Linux aracısını yükleyin:
sudo yum install WALinuxAgent sudo chkconfig waagent on
Azure Linux aracısı, Azure'da VM sağlandıktan sonra VM'ye bağlı yerel kaynak diskini kullanarak değiştirme alanını otomatik olarak yapılandırabilir. Yerel kaynak diski geçici bir disktir ve VM'nin yetkisi kaldırılırsa boşaltılabilir. Önceki adımda Azure Linux aracısını yükledikten sonra aşağıdaki parametreleri
/etc/waagent.conf
uygun şekilde değiştirin: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.
Aboneliğin kaydını kaldırın (gerekirse):
sudo subscription-manager unregister
VM'nin sağlamasını kaldırıp Azure'da sağlama için hazırlamak için aşağıdaki komutları çalıştırın.
Not
Belirli bir VM'yi geçiriyorsanız ve genelleştirilmiş bir görüntü oluşturmak istemiyorsanız sağlamayı kaldırma adımını atlayın.
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
KVM'de VM'yi kapatın.
qcow2 görüntüsünü VHD biçimine dönüştürün.
Not
qemu-img =2.2.1 sürümlerinde >hatalı biçimlendirilmiş bir VHD'ye neden olan bilinen bir hata vardır. Sorun QEMU 2.6'da düzeltilmiştir. qemu-img 2.2.0 veya üzerini kullanmanızı ya da 2.6 veya üzeri bir sürüme güncelleştirmenizi öneririz. Daha fazla bilgi için bu web sitesine bakın.
Önce resmi ham biçime dönüştürün:
sudo qemu-img convert -f qcow2 -O raw rhel-6.9.qcow2 rhel-6.9.raw
Ham görüntünün boyutunun 1 MB ile hizalandığından emin olun. Aksi takdirde, boyutu 1 MB ile hizalamak için yukarı yuvarlayın:
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
Ham diski sabit boyutlu bir VHD'ye dönüştürün:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd
Veya qemu sürüm 2.6+ ile şu seçeneği de dahil edin
force_size
:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-6.9.raw rhel-6.9.vhd
KVM kullanan RHEL 7
Red Hat web sitesinden RHEL 7'nin KVM görüntüsünü indirin. Bu yordamda örnek olarak RHEL 7 kullanılır.
Bir kök parola ayarlayın.
Şifreli bir parola oluşturun ve komutun çıkışını kopyalayın:
sudo openssl passwd -1 changeme
Konuk balığı ile bir kök parola ayarlayın:
sudo guestfish --rw -a <image-name> > <fs> run > <fs> list-filesystems > <fs> mount /dev/sda1 / > <fs> vi /etc/shadow > <fs> exit
Kök kullanıcının
!!
ikinci alanını şifrelenmiş parola olarak değiştirin.Qcow2 görüntüsünden KVM'de vm oluşturun. Disk türünü qcow2 olarak ayarlayın ve sanal ağ arabirimi cihaz modelini virtio olarak ayarlayın. Ardından VM'yi başlatın ve kök olarak oturum açın.
Dosyayı oluşturun veya düzenleyin
/etc/sysconfig/network
ve aşağıdaki metni ekleyin:NETWORKING=yes HOSTNAME=localhost.localdomain
Dosyayı oluşturun veya düzenleyin
/etc/sysconfig/network-scripts/ifcfg-eth0
ve aşağıdaki metni ekleyin:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes
Not
Hızlandırılmış Ağ'ı kullandığınızda, oluşturulan yapay arabirim bir udev kuralı kullanılarak yönetilmeyen şekilde yapılandırılmalıdır. Bu eylem, birincil arabirimle aynı IP'yi atamayı engeller
NetworkManager
.Uygulamak için:
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!="remove", ENV{NM_UNMANAGED}="1" EOF
Ağ hizmetinin önyükleme zamanında başlatıldığından emin olun:
sudo systemctl enable network
RHEL deposundan paketlerin yüklenmesini etkinleştirmek için Red Hat aboneliğinizi kaydedin:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Grub yapılandırmanızdaki çekirdek önyükleme satırını, Azure için daha fazla çekirdek parametresi içerecek şekilde değiştirin. Bu yapılandırmayı yapmak için bir metin düzenleyicisinde açın
/etc/default/grub
ve parametresiniGRUB_CMDLINE_LINUX
düzenleyin. Örneğin:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
Bu komut ayrıca tüm konsol iletilerinin ilk seri bağlantı noktasına gönderilmesini sağlar ve bu da hata ayıklama sorunlarıyla ilgili Azure desteği yardımcı olabilir. Komut, NIC'ler için yeni RHEL 7 adlandırma kurallarını da kapatır. Ayrıca aşağıdaki parametreleri kaldırmanızı öneririz:
rhgb quiet crashkernel=auto
Grafik ve sessiz önyüklemeler, tüm günlüklerin seri bağlantı noktasına gönderilmesini istediğiniz bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz
crashkernel
. Bu parametre, VM'deki kullanılabilir bellek miktarını 128 MB veya daha fazla azaltır; bu da daha küçük VM boyutları için sorun olabilir.düzenlemeyi
/etc/default/grub
tamamladıktan sonra grub yapılandırmasını yeniden derlemek için aşağıdaki komutu çalıştırın:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Hyper-V modüllerini initramfs içine ekleyin.
İçerik düzenleme
/etc/dracut.conf
ve ekleme:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Initramfs'ı yeniden oluşturun:
sudo dracut -f -v
Kaldırma
cloud-init
:sudo yum remove cloud-init
SSH sunucusunun yüklendiğinden ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun:
sudo systemctl enable sshd
Aşağıdaki satırları içerecek şekilde değiştirin
/etc/ssh/sshd_config
:PasswordAuthentication yes ClientAliveInterval 180
WALinuxAgent paketi,
WALinuxAgent-<version>
Red Hat extras deposuna gönderildi. Ek depoyu etkinleştirin:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Azure Linux aracısını yükleyin:
sudo yum install WALinuxAgent
waagent
Hizmeti etkinleştirin:sudo systemctl enable waagent.service
cloud-init
yükleyin."Hyper-V Yöneticisi'nden RHEL 7 VM'sini hazırlama" adım 12'deki "Sağlamayı işlemek için yükle
cloud-init
" adımlarını izleyin.Değiştirme yapılandırması:
- İşletim sistemi diskinde değiştirme alanı oluşturmayın.
- "Hyper-V Yöneticisi'nden RHEL 7 VM'sini hazırlama" adım 13'teki "Yapılandırmayı değiştirme" adımını izleyin.
Aboneliğin kaydını kaldırın (gerekirse):
sudo subscription-manager unregister
"Hyper-V Yöneticisi'nden RHEL 7 VM'sini hazırlama" adım 15'teki "Sağlamayı kaldır" adımını izleyerek sağlamayı kaldırın.
KVM'de VM'yi kapatın.
qcow2 görüntüsünü VHD biçimine dönüştürün.
Not
qemu-img =1.1.1 sürümlerinde >hatalı biçimlendirilmiş bir VHD'ye neden olan bilinen bir hata vardır. Sorun QEMU 1.6'da düzeltilmiştir. qemu-img 1.1.0 veya üzerini kullanmanızı ya da 1.6 veya üzeri bir sürüme güncelleştirmenizi öneririz. Daha fazla bilgi için bu web sitesine bakın.
Önce resmi ham biçime dönüştürün:
sudo qemu-img convert -f qcow2 -O raw rhel-7.4.qcow2 rhel-7.4.raw
Ham görüntünün boyutunun 1 MB ile hizalandığından emin olun. Aksi takdirde, boyutu 1 MB ile hizalamak için yukarı yuvarlayın:
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
Ham diski sabit boyutlu bir VHD'ye dönüştürün:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
Veya qemu sürüm 1.6+ ile şu seçeneği de dahil edin
force_size
:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
VMware
Bu bölümde, VMware'den RHEL 6 veya RHEL 7 dağıtımını nasıl hazırlayacağınız gösterilmektedir.
Önkoşullar
Bu bölümde, VMware'de zaten bir RHEL VM yüklediğiniz varsayılır. VMware'de işletim sistemi yükleme hakkında bilgi için bkz . VMware Konuk İşletim Sistemi Yükleme Kılavuzu.
- Linux işletim sistemini yüklediğinizde, çoğu yükleme için genellikle varsayılan olan LVM yerine standart bölümler kullanmanızı öneririz. Bölümlerin kullanılması, özellikle de sorun giderme için bir işletim sistemi diskin başka bir VM'ye eklenmesi gerekiyorsa, kopyalanmış bir VM ile LVM adı çakışmalarını önler. İsterseniz LVM veya RAID veri disklerinde kullanılabilir.
- İşletim sistemi diskinde değiştirme bölümü yapılandırmayın. Linux aracısını geçici kaynak diskinde bir takas dosyası oluşturacak şekilde yapılandırabilirsiniz. Daha fazla bilgi için aşağıdaki adımları okuyun.
- VHD'yi oluşturduğunuzda Sanal diski tek bir dosya olarak depola'yı seçin.
VMware kullanan RHEL 6
Önemli
30 Kasım 2020'de RHEL 6, Bakım aşamasının sonuna ulaştı. Bakım aşamasının ardından Genişletilmiş Yaşam aşaması eklenir. RHEL 6, Tam/Bakım aşamalarından geçerken RHEL 7 veya 8 veya 9 sürümüne yükseltmenizi kesinlikle öneririz. RHEL 6'da kalmanız gerekiyorsa RHEL Genişletilmiş Yaşam Döngüsü Desteği Eklentisi'ni eklemenizi öneririz.
RHEL 6'da Azure
NetworkManager
Linux aracısını etkileyebilir. Bu paketi kaldırın:sudo rpm -e --nodeps NetworkManager
Dizinde
/etc/sysconfig/
aşağıdaki metni içeren network adlı bir dosya oluşturun:NETWORKING=yes HOSTNAME=localhost.localdomain
Dosyayı oluşturun veya düzenleyin
/etc/sysconfig/network-scripts/ifcfg-eth0
ve aşağıdaki metni ekleyin:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Ethernet arabirimi için statik kurallar oluşturmaktan kaçınmak için udev kurallarını taşıyın (veya kaldırın). Bu kurallar, Azure veya Hyper-V'de vm kopyaladığınızda sorunlara neden olur:
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
Not
Hızlandırılmış Ağ'ı kullandığınızda, oluşturulan yapay arabirim bir udev kuralı kullanılarak yönetilmeyen şekilde yapılandırılmalıdır. Bu eylem, birincil arabirimle aynı IP'yi atamayı engeller
NetworkManager
.Uygulamak için:
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!="remove", ENV{NM_UNMANAGED}="1" EOF
Ağ hizmetinin önyükleme zamanında başlatıldığından emin olun:
sudo chkconfig network on
RHEL deposundan paketlerin yüklenmesini etkinleştirmek için Red Hat aboneliğinizi kaydedin:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
WALinuxAgent paketi,
WALinuxAgent-<version>
Red Hat extras deposuna gönderildi. Ek depoyu etkinleştirin:sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
Grub yapılandırmanızdaki çekirdek önyükleme satırını, Azure için daha fazla çekirdek parametresi içerecek şekilde değiştirin. Bu adımı gerçekleştirmek için bir metin düzenleyicisinde açın
/etc/default/grub
ve parametresiniGRUB_CMDLINE_LINUX
düzenleyin. Örneğin:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0"
Bu adım ayrıca tüm konsol iletilerinin ilk seri bağlantı noktasına gönderilmesini sağlar ve bu da hata ayıklama sorunlarıyla Azure desteği yardımcı olabilir. Ayrıca aşağıdaki parametreleri kaldırmanızı öneririz:
rhgb quiet crashkernel=auto
Grafik ve sessiz önyüklemeler, tüm günlüklerin seri bağlantı noktasına gönderilmesini istediğiniz bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz
crashkernel
. Bu parametre, VM'deki kullanılabilir bellek miktarını 128 MB veya daha fazla azaltır; bu da daha küçük VM boyutları için sorun olabilir.Initramfs'a Hyper-V modülleri ekleyin:
öğesini düzenleyin
/etc/dracut.conf
ve aşağıdaki içeriği ekleyin:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Initramfs'ı yeniden oluşturun:
sudo dracut -f -v
SSH sunucusunun yüklü olduğundan ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun; bu genellikle varsayılandır. Aşağıdaki satırı içerecek şekilde değiştirin
/etc/ssh/sshd_config
:ClientAliveInterval 180
Azure Linux aracısını yükleyin:
sudo yum install WALinuxAgent sudo chkconfig waagent on
İşletim sistemi diskinde değiştirme alanı oluşturmayın.
Azure Linux aracısı, Azure'da VM sağlandıktan sonra VM'ye bağlı yerel kaynak diskini kullanarak değiştirme alanını otomatik olarak yapılandırabilir. Yerel kaynak diski geçici bir disktir ve VM'nin yetkisi kaldırılırsa boşaltılabilir. Önceki adımda Azure Linux aracısını yükledikten sonra aşağıdaki parametreleri
/etc/waagent.conf
uygun şekilde değiştirin: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.
Aboneliğin kaydını kaldırın (gerekirse):
sudo subscription-manager unregister
VM'nin sağlamasını kaldırıp Azure'da sağlama için hazırlamak için aşağıdaki komutları çalıştırın:
Not
Belirli bir VM'yi geçiriyorsanız ve genelleştirilmiş bir görüntü oluşturmak istemiyorsanız sağlamayı kaldırma adımını atlayın.
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
VM'yi kapatın ve VMDK dosyasını bir .vhd dosyasına dönüştürün.
Not
qemu-img =2.2.1 sürümlerinde >hatalı biçimlendirilmiş bir VHD'ye neden olan bilinen bir hata vardır. Sorun QEMU 2.6'da düzeltilmiştir. qemu-img 2.2.0 veya üzerini kullanmanızı ya da 2.6 veya üzeri bir sürüme güncelleştirmenizi öneririz. Daha fazla bilgi için bu web sitesine bakın.
Önce resmi ham biçime dönüştürün:
sudo qemu-img convert -f vmdk -O raw rhel-6.9.vmdk rhel-6.9.raw
Ham görüntünün boyutunun 1 MB ile hizalandığından emin olun. Aksi takdirde, boyutu 1 MB ile hizalamak için yukarı yuvarlayın:
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
Ham diski sabit boyutlu bir VHD'ye dönüştürün:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd
Veya qemu sürüm 2.6+ ile şu seçeneği de dahil edin
force_size
:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-6.9.raw rhel-6.9.vhd
VMware kullanan RHEL 7
Dosyayı oluşturun veya düzenleyin
/etc/sysconfig/network
ve aşağıdaki metni ekleyin:NETWORKING=yes HOSTNAME=localhost.localdomain
Dosyayı oluşturun veya düzenleyin
/etc/sysconfig/network-scripts/ifcfg-eth0
ve aşağıdaki metni ekleyin:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes
Not
Hızlandırılmış Ağ'ı kullandığınızda, oluşturulan yapay arabirim bir udev kuralı kullanılarak yönetilmeyen şekilde yapılandırılmalıdır. Bu eylem, birincil arabirimle aynı IP'yi atamayı engeller
NetworkManager
.Uygulamak için:
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!="remove", ENV{NM_UNMANAGED}="1" EOF
Ağ hizmetinin önyükleme zamanında başlatıldığından emin olun:
sudo systemctl enable network
RHEL deposundan paketlerin yüklenmesini etkinleştirmek için Red Hat aboneliğinizi kaydedin:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Grub yapılandırmanızdaki çekirdek önyükleme satırını, Azure için daha fazla çekirdek parametresi içerecek şekilde değiştirin. Bu değişikliği yapmak için bir metin düzenleyicisinde açın
/etc/default/grub
ve parametresiniGRUB_CMDLINE_LINUX
düzenleyin. Örneğin:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
Bu yapılandırma ayrıca tüm konsol iletilerinin ilk seri bağlantı noktasına gönderilmesini sağlar ve bu da hata ayıklama sorunlarıyla ilgili Azure desteği yardımcı olabilir. NIC'ler için yeni RHEL 7 adlandırma kurallarını da kapatır. Ayrıca, aşağıdaki parametreleri kaldırmanızı öneririz:
rhgb quiet crashkernel=auto
Grafik ve sessiz önyüklemeler, tüm günlüklerin seri bağlantı noktasına gönderilmesini istediğiniz bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz
crashkernel
. Bu parametre, VM'deki kullanılabilir bellek miktarını 128 MB veya daha fazla azaltır; bu da daha küçük VM boyutları için sorun olabilir.düzenlemeyi
/etc/default/grub
tamamladıktan sonra grub yapılandırmasını yeniden derlemek için aşağıdaki komutu çalıştırın:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Initramfs'a Hyper-V modülleri ekleyin:
düzenleyin
/etc/dracut.conf
, içerik ekleyin:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Initramfs'ı yeniden oluşturun:
sudo dracut -f -v
SSH sunucusunun yüklendiğinden ve önyükleme zamanında başlatacak şekilde yapılandırıldığından emin olun. Bu ayar genellikle varsayılan ayardır. Aşağıdaki satırı içerecek şekilde değiştirin
/etc/ssh/sshd_config
:ClientAliveInterval 180
WALinuxAgent paketi,
WALinuxAgent-<version>
Red Hat extras deposuna gönderildi. Ek depoyu etkinleştirin:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Azure Linux aracısını yükleyin:
sudo yum install WALinuxAgent sudo systemctl enable waagent.service
cloud-init
yükleme:"Hyper-V Yöneticisi'nden RHEL 7 VM'sini hazırlama" adım 12'deki "Sağlamayı işlemek için yükle
cloud-init
" adımlarını izleyin.Değiştirme yapılandırması:
- İşletim sistemi diskinde değiştirme alanı oluşturmayın.
- "Hyper-V Yöneticisi'nden RHEL 7 VM'sini hazırlama" adım 13'teki "Yapılandırmayı değiştirme" adımını izleyin.
Aboneliğin kaydını silmek istiyorsanız aşağıdaki komutu çalıştırın:
sudo subscription-manager unregister
"Hyper-V Yöneticisi'nden RHEL 7 VM'sini hazırlama" adım 15'teki "Sağlamayı kaldır" adımını izleyerek sağlamayı kaldırın.
VM'yi kapatın ve VMDK dosyasını VHD biçimine dönüştürün.
Not
qemu-img =2.2.1 sürümlerinde >hatalı biçimlendirilmiş bir VHD'ye neden olan bilinen bir hata vardır. Sorun QEMU 2.6'da düzeltilmiştir. qemu-img 2.2.0 veya üzerini kullanmanızı ya da 2.6 veya üzeri bir sürüme güncelleştirmenizi öneririz. Daha fazla bilgi için bu web sitesine bakın.
Önce resmi ham biçime dönüştürün:
sudo qemu-img convert -f vmdk -O raw rhel-7.4.vmdk rhel-7.4.raw
Ham görüntünün boyutunun 1 MB ile hizalandığından emin olun. Aksi takdirde, boyutu 1 MB ile hizalamak için yukarı yuvarlayın:
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
Ham diski sabit boyutlu bir VHD'ye dönüştürün:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
Veya qemu sürüm 2.6+ ile şu seçeneği de dahil edin
force_size
:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
Kickstart dosyası
Bu bölümde, başlangıç dosyası kullanarak ISO'dan RHEL 7 dağıtımının nasıl hazırlayabileceğiniz gösterilmektedir.
Başlangıç dosyasından RHEL 7
Aşağıdaki içeriği içeren bir başlangıç dosyası oluşturun ve dosyayı kaydedin. Başlangıç yükleme hakkında daha fazla bilgi için bkz . Kickstart Yükleme Kılavuzu.
# 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 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!="remove", ENV{NM_UNMANAGED}="1" 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
Kickstart dosyasını yükleme sisteminin erişebileceği konuma yerleştirin.
Hyper-V Yöneticisi'nde yeni bir VM oluşturun. Sanal Sabit Diske Bağlan sayfasında Daha sonra Sanal sabit disk ekle'yi seçin ve Yeni Sanal Makine sihirbazını tamamlayın.
VM ayarlarını açın:
VM'ye yeni bir VHD ekleyin. VHD Biçimi ve Sabit Boyut'un seçildiğinden emin olun.
Yükleme ISO'sını DVD sürücüsüne takın.
BIOS'un CD'den önyüklenmesini sağlayın.
VM’yi başlatın. Yükleme kılavuzu görüntülendiğinde, önyükleme seçeneklerini yapılandırmak için Sekme tuşunu seçin.
Önyükleme seçeneklerinin sonuna girin
inst.ks=<the location of the kickstart file>
ve Enter tuşunu seçin.Yüklemenin bitmesini bekleyin. İşlem tamamlandığında VM otomatik olarak kapatılır. Linux VHD'niz artık Azure'a yüklenmeye hazırdır.
Bilinen sorunlar
Aşağıdaki sorun bilinmektedir.
Hyper-V olmayan bir hiper yönetici kullanılırken Hyper-V sürücüsü ilk RAM diske eklenemedi
Bazı durumlarda Linux yükleyicileri, Linux bir Hyper-V ortamında çalıştığını algılamadığı sürece ilk RAM diskinde (initrd veya initramfs) Hyper-V sürücülerini içermeyebilir.
Linux görüntünüzü hazırlamak için farklı bir sanallaştırma sistemi (örneğin VirtualBox veya Xen) kullanırken, ilk RAM diskinde en azından ve hv_storvsc
çekirdek modüllerinin hv_vmbus
kullanılabilir olduğundan emin olmak için initrd'yi yeniden oluşturmanız gerekebilir. Bu sorun, en azından yukarı akış Red Hat dağılımını temel alan sistemlerde bilinmektedir.
Bu sorunu çözmek için initramfs'a Hyper-V modülleri ekleyin ve yeniden derleyin:
öğesini düzenleyin /etc/dracut.conf
ve aşağıdaki içeriği ekleyin:
add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Initramfs'ı yeniden oluşturun:
sudo dracut -f -v
Daha fazla bilgi için bkz . Initramfs'ı yeniden oluşturma.
İlgili içerik
- Artık Azure'da yeni VM'ler oluşturmak için RHEL VHD'nizi kullanmaya hazırsınız. .vhd dosyasını Azure'a ilk kez yüklüyorsanız bkz . Özel diskten Linux VM oluşturma.
- RHEL çalıştırma sertifikasına sahip hiper yöneticiler hakkında daha fazla bilgi için Red Hat web sitesine bakın.
- Üretime hazır RHEL BYOS görüntülerini kullanma hakkında daha fazla bilgi edinmek için Kendi aboneliğinizi getirin belge sayfasına gidin.