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 Azure'da kullanıma 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ı sanal makine (KVM) ve VMware'dir. Red Hat'in Cloud Access programına katılım için uygunluk gereksinimleri hakkında daha fazla bilgi için bkz . Red Hat'in Cloud Access web sitesi ve Azure'da RHEL Çalıştırma. RHEL görüntüleri derlemeyi otomatikleştirmenin yolları için bkz . Azure Görüntü Oluşturucusu.
Dekont
Kullanım Süresi Sonu (EOL) olan ve artık Redhat 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ş çabası temelinde desteklenecektir. Redhat'ın Ürün Yaşam Döngüsü bağlantısı
Hyper-V Yöneticisi
Bu bölümde, Hyper-V Yöneticisi kullanarak RHEL 6, RHEL 7 veya RHEL 8 sanal makinesinin 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'leridir. Diski VHD biçimine dönüştürmek için Hyper-V Yöneticisi'ni veya convert-vhd cmdlet'ini 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) Sanal makineleri.
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 sanal makinelerindeki işletim sistemi diskinde veya veri disklerinde kullanılabilir. Ancak genel olarak, LVM yerine işletim sistemi diskinde standart bölümleri kullanmanızı öneririz. Bu uygulama, özellikle sorun giderme için başka bir özdeş sanal makineye bir işletim sistemi diski eklemeniz gerekirse, kopyalanan sanal makinelerle LVM adı çakışmalarını önler. 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 sanal makinesine geçirir. Azure Linux Aracısı' nın yapılandırmasını okumak ve sanal makineyi sağlamak için UDF dosya sistemini bağlayabilmesi gerekir, bu olmadan sağlama başarısız olur!
İşletim sistemi diskinde değiştirme bölümü yapılandırmayın. Bu konuda daha fazla bilgiyi aşağıdaki adımlarda bulabilirsiniz.
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 ayrıntıya aşağıdaki adımlardan ulaşabilirsiniz. Daha fazla bilgi için bkz . Linux Yükleme Notları .
Dekont
Cloud-init >= 21.2, udf gereksinimini kaldırır. Ancak udf modülü etkinleştirilmeden cdrom sağlama sırasında bağlanmaz ve özel verilerin uygulanmasını engeller. Bunun için geçici bir çözüm, kullanıcı verilerini kullanarak özel veriler uygulamaktır. Ancak, özel verilerden farklı olarak kullanıcı verileri şifrelenmez. https://cloudinit.readthedocs.io/en/latest/topics/format.html
Hyper-V Yöneticisi'nin kullanıldığı RHEL 6
Önemli
30 Kasım 2020'den itibaren Red Hat Enterprise Linux 6 bakım aşaması sona erecek. Bakım aşamasının ardından Uzatılmış Kullanım Ömrü Aşaması devam eder. Red Hat Enterprise Linux 6 Tam/Bakım Aşamalarından geçerken Red Hat Enterprise Linux 7, 8 veya 9 sürümüne yükseltmenizi kesinlikle öneririz. Müşterilerin Red Hat Enterprise Linux 6'da kalması gerekiyorsa Red Hat Enterprise Linux Genişletilmiş Yaşam Döngüsü Desteği (ELS) Eklentisi'ni eklemenizi öneririz.
Hyper-V Yöneticisi'nde sanal makineyi seçin.
Sanal makine için bir konsol penceresi açmak için Bağlan'e tıklayın.
RHEL 6'da NetworkManager, Azure Linux aracısını etkileyebilir. Aşağıdaki komutu çalıştırarak 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, Microsoft Azure veya Hyper-V'de bir sanal makineyi 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
Dekont
** Hızlandırılmış Ağ (AN) kullanırken, oluşturulan yapay arabirim bir udev kuralı kullanılarak yönetilmemek üzere yapılandırılmam gerekir. Bu, NetworkManager'ın birincil arabirimle aynı IP'yi atamasını engeller.
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=="add", ENV{NM_UNMANAGED}="1"
EOF
Aşağıdaki komutu çalıştırarak ağ hizmetinin önyükleme zamanında başlayacağından emin olun:
sudo chkconfig network on
Aşağıdaki komutu çalıştırarak 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. Aşağıdaki komutu çalıştırarak extras deposunu 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 ek çekirdek parametreleri içerecek şekilde değiştirin. Bu değişikliği yapmak için bir metin düzenleyicisinde açın
/boot/grub/menu.lst
ve varsayılan çekirdeğin aşağıdaki parametreleri içerdiğinden emin olun:console=ttyS0 earlyprintk=ttyS0
Bu, tüm konsol iletilerinin hata ayıklama sorunlarıyla Azure desteği yardımcı olabilecek ilk seri bağlantı noktasına gönderilmesini de sağlar.
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ğimiz bir bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz
crashkernel
. Bu parametrenin sanal makinedeki kullanılabilir bellek miktarını 128 MB veya daha fazla azalttığını unutmayın. Bu yapılandırma daha küçük sanal makine boyutlarında sorunlu 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. /etc/ssh/sshd_config aşağıdaki satırı içerecek şekilde değiştirin:
ClientAliveInterval 180
Aşağıdaki komutu çalıştırarak 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ılmamışsa NetworkManager ve NetworkManager-gnome paketlerini kaldırır.
İşletim sistemi diskinde değiştirme alanı oluşturmayın.
Azure Linux Aracısı, sanal makine Azure'da sağlandıktan sonra sanal makineye bağlı yerel kaynak diskini kullanarak değiştirme alanını otomatik olarak yapılandırabilir. Yerel kaynak diskinin geçici bir disk olduğunu ve sanal makinenin sağlamasını kaldırılmışsa boşaltılabileceğini unutmayın. Önceki adımda Azure Linux Aracısı'nı yükledikten sonra /etc/waagent.conf dosyasında aşağıdaki parametreleri 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.
Aşağıdaki komutu çalıştırarak aboneliğin kaydını kaldırın (gerekirse):
sudo subscription-manager unregister
Sanal makinenin sağlamasını kaldırıp Azure'da sağlama için hazırlamak için aşağıdaki komutları çalıştırın:
Dekont
Belirli bir sanal makineyi 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'nin kullanıldığı RHEL 7
Hyper-V Yöneticisi'nde sanal makineyi seçin.
Sanal makine için bir konsol penceresi açmak için Bağlan'e tıklayı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
Aşağıdaki komutu çalıştırarak ağ hizmetinin önyükleme zamanında başlayacağından emin olun:
sudo systemctl enable network
Aşağıdaki komutu çalıştırarak 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 ek çekirdek parametreleri 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,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 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ı olabilecek seri konsolla etkileşimi etkinleştirir. Bu yapılandırma, 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ğimiz bir bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz
crashkernel
. Bu parametrenin sanal makinedeki kullanılabilir bellek miktarını 128 MB veya daha fazla azalttığını ve bunun daha küçük sanal makine boyutlarında sorunlu olabileceğini unutmayın.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
Dekont
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. Aşağıdaki komutu çalıştırarak extras deposunu etkinleştirin:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Aşağıdaki komutu çalıştırarak Azure Linux Aracısı'nı, cloud-init'i 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 cloud-init'i yapılandırın:
- cloud-init için waagent yapılandırma:
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
Dekont
Belirli bir sanal makineyi geçiriyorsanız ve genelleştirilmiş bir görüntü oluşturmak istemiyorsanız yapılandırmada
/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ırma:
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, var olan swapfile 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
- Cloud-init günlüğünü yapılandırma:
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
Yapılandırmayı değiştirme. İşletim sistemi diskinde değiştirme alanı oluşturmayın.
Daha önce Azure Linux Aracısı, Azure'da sanal makine sağlandıktan sonra sanal makineye bağlı yerel kaynak diski kullanılarak değiştirme alanını otomatik olarak yapılandırmak için kullanılıyordu. Ancak, bu artık cloud-init tarafından işlenir, kaynak diskini 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
Bağlama, biçimlendirme ve değiştirme oluşturmak istiyorsanız şunları yapabilirsiniz:
Customdata aracılığıyla her VM oluşturduğunuzda bunu cloud-init yapılandırması olarak geçirin. Önerilen yöntem budur.
Vm her oluşturulduğunda bunu yapacak görüntüde pişirilen bir cloud-init yönergesi 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
Sağlamayı kaldır
Sanal makinenin sağlamasını kaldırıp Azure'da sağlama için hazırlamak için aşağıdaki komutları çalıştırın:
Dikkat
Belirli bir sanal makineyi 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şturmak için tasarlanmıştır.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'a tıklayın. 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 sanal makineyi seçin.
Sanal makine için bir konsol penceresi açmak için Bağlan'e tıklayın.
Aşağıdaki komutu çalıştırarak Ağ Yöneticisi hizmetinin önyükleme zamanında başlayacağından emin olun:
sudo systemctl enable NetworkManager.service
Ağ arabirimini önyüklemede otomatik olarak başlatacak ve DHCP kullanacak şekilde yapılandırın:
sudo nmcli con mod eth0 connection.autoconnect yes ipv4.method auto
Aşağıdaki komutu çalıştırarak 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 ek çekirdek parametreleri 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 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ı olabilecek seri konsolla etkileşimi etkinleştirir. Bu yapılandırma, NIC'ler için yeni 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ğimiz bir bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz
crashkernel
. Bu parametrenin sanal makinedeki kullanılabilir bellek miktarını 128 MB veya daha fazla azalttığını ve bunun daha küçük sanal makine boyutlarında sorunlu olabileceğini unutmayın.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
Aşağıdaki komutu çalıştırarak Azure Linux Aracısı'nı, cloud-init'i 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 cloud-init'i yapılandırın:
- cloud-init için waagent yapılandırma:
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
Dekont
Belirli bir sanal makineyi geçiriyorsanız ve genelleştirilmiş bir görüntü oluşturmak istemiyorsanız yapılandırmada
/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ırma:
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, var olan swapfile 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
- Cloud-init günlüğünü yapılandırma:
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 takas alanı oluşturmayın.
Daha önce Azure Linux Aracısı, Azure'da sanal makine sağlandıktan sonra sanal makineye bağlı yerel kaynak diski kullanılarak değiştirme alanını otomatik olarak yapılandırmak için kullanılıyordu. Ancak, bu artık cloud-init tarafından işlenir, kaynak diskini 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
Customdata aracılığıyla her VM oluşturduğunuzda bunu cloud-init yapılandırması olarak geçirin. Önerilen yöntem budur.
Vm her oluşturulduğunda bunu yapacak görüntüde pişirilen bir cloud-init yönergesi 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
Sağlamayı kaldır
Sanal makinenin 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 sanal makineyi 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şturmak için tasarlanmıştır.Hyper-V Yöneticisi'nde Eylem>Kapat'a tıklayın. 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'den itibaren Red Hat Enterprise Linux 6 bakım aşaması sona erecek. Bakım aşamasının ardından Uzatılmış Kullanım Ömrü Aşaması devam eder. Red Hat Enterprise Linux 6 Tam/Bakım Aşamalarından geçerken Red Hat Enterprise Linux 7, 8 veya 9 sürümüne yükseltmenizi kesinlikle öneririz. Müşterilerin Red Hat Enterprise Linux 6'da kalması gerekiyorsa Red Hat Enterprise Linux Genişletilmiş Yaşam Döngüsü Desteği (ELS) 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ı "!!" olan şifrelenmiş parola olarak değiştirin.
Qcow2 görüntüsünden KVM'de bir sanal makine oluşturun. Disk türünü qcow2 olarak ayarlayın ve sanal ağ arabirimi cihaz modelini virtio olarak ayarlayın. Ardından sanal makineyi 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 bir sanal makineyi 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
Dekont
** Hızlandırılmış Ağ (AN) kullanırken, oluşturulan yapay arabirim bir udev kuralı kullanılarak yönetilmemek üzere yapılandırılmam gerekir. Bu, NetworkManager'ın birincil arabirimle aynı IP'yi atamasını engeller.
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=="add", ENV{NM_UNMANAGED}="1"
EOF
Aşağıdaki komutu çalıştırarak ağ hizmetinin önyükleme zamanında başlayacağından emin olun:
sudo chkconfig network on
Aşağıdaki komutu çalıştırarak 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 ek çekirdek parametreleri içerecek şekilde değiştirin. Bu yapılandırmayı yapmak için bir metin düzenleyicisinde açın
/boot/grub/menu.lst
ve varsayılan çekirdeğin aşağıdaki parametreleri içerdiğinden emin olun:console=ttyS0 earlyprintk=ttyS0
Bu, tüm konsol iletilerinin hata ayıklama sorunlarıyla Azure desteği yardımcı olabilecek ilk seri bağlantı noktasına gönderilmesini de sağlar.
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ğimiz bir bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz
crashkernel
. Bu parametrenin sanal makinedeki kullanılabilir bellek miktarını 128 MB veya daha fazla azalttığını ve bunun daha küçük sanal makine boyutlarında sorunlu olabileceğini unutmayın.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
cloud-init'i kaldırın:
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
/etc/ssh/sshd_config aşağıdaki satırları içerecek şekilde değiştirin:
PasswordAuthentication yes ClientAliveInterval 180
WALinuxAgent paketi,
WALinuxAgent-<version>
Red Hat extras deposuna gönderildi. Aşağıdaki komutu çalıştırarak extras deposunu etkinleştirin:sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
Aşağıdaki komutu çalıştırarak Azure Linux Aracısı'nı yükleyin:
sudo yum install WALinuxAgent sudo chkconfig waagent on
Azure Linux Aracısı, sanal makine Azure'da sağlandıktan sonra sanal makineye bağlı yerel kaynak diskini kullanarak değiştirme alanını otomatik olarak yapılandırabilir. Yerel kaynak diskinin geçici bir disk olduğunu ve sanal makinenin sağlamasını kaldırılmışsa boşaltılabileceğini unutmayın. Önceki adımda Azure Linux Aracısı'nı yükledikten sonra /etc/waagent.conf dosyasında aşağıdaki parametreleri 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.
Aşağıdaki komutu çalıştırarak aboneliğin kaydını kaldırın (gerekirse):
sudo subscription-manager unregister
Sanal makinenin sağlamasını kaldırıp Azure'da sağlama için hazırlamak için aşağıdaki komutları çalıştırın:
Dekont
Belirli bir sanal makineyi 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 sanal makineyi kapatın.
qcow2 görüntüsünü VHD biçimine dönüştürün.
Dekont
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ştirmeniz önerilir. Başvuru: https://bugs.launchpad.net/qemu/+bug/1490611.
Ö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ı "!!" olan şifrelenmiş parola olarak değiştirin.
Qcow2 görüntüsünden KVM'de bir sanal makine oluşturun. Disk türünü qcow2 olarak ayarlayın ve sanal ağ arabirimi cihaz modelini virtio olarak ayarlayın. Ardından sanal makineyi 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
Aşağıdaki komutu çalıştırarak ağ hizmetinin önyükleme zamanında başlayacağından emin olun:
sudo systemctl enable network
Aşağıdaki komutu çalıştırarak 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 ek çekirdek parametreleri 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ğimiz bir bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz
crashkernel
. Bu parametrenin sanal makinedeki kullanılabilir bellek miktarını 128 MB veya daha fazla azalttığını ve bunun daha küçük sanal makine boyutlarında sorunlu olabileceğini unutmayın.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
cloud-init'i kaldırın:
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
/etc/ssh/sshd_config aşağıdaki satırları içerecek şekilde değiştirin:
PasswordAuthentication yes ClientAliveInterval 180
WALinuxAgent paketi,
WALinuxAgent-<version>
Red Hat extras deposuna gönderildi. Aşağıdaki komutu çalıştırarak extras deposunu etkinleştirin:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Aşağıdaki komutu çalıştırarak Azure Linux Aracısı'nı yükleyin:
sudo yum install WALinuxAgent
Waagent hizmetini etkinleştirin:
sudo systemctl enable waagent.service
cloud-init'i yükleme 12. adım olan 'Sağlamayı işlemek için cloud-init'i yükleme' adlı 'Hyper-V Yöneticisi'nden RHEL 7 sanal makinesi hazırlama' makalesindeki adımları izleyin.
Değiştirme yapılandırması
İşletim sistemi diskinde değiştirme alanı oluşturmayın. 'Hyper-V Yöneticisi'nden RHEL 7 sanal makinesi hazırlama' adım 13, 'Yapılandırmayı değiştirme' adımlarındaki adımları izleyin
Aşağıdaki komutu çalıştırarak aboneliğin kaydını kaldırın (gerekirse):
sudo subscription-manager unregister
Sağlamayı kaldır
'Hyper-V Yöneticisi'nden RHEL 7 sanal makinesi hazırlama' adım 15, 'Sağlamayı kaldırma' adımlarındaki adımları izleyin
KVM'de sanal makineyi kapatın.
qcow2 görüntüsünü VHD biçimine dönüştürün.
Dekont
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ştirmeniz önerilir. Başvuru: https://bugs.launchpad.net/qemu/+bug/1490611.
Ö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 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
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 sanal makinesi yüklediğiniz varsayılır. VMware'de işletim sistemi yükleme hakkında ayrıntılı 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. Bu, özellikle de sorun giderme için başka bir sanal makineye bir işletim sistemi diski eklenmesi gerekiyorsa, kopyalanan sanal makineyle LVM adı çakışmalarını önler. LVM veya RAID tercih edilirse 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. Aşağıdaki adımlarda bu konuda daha fazla bilgi bulabilirsiniz.
- Sanal sabit diski oluşturduğunuzda Sanal diski tek bir dosya olarak depola'yı seçin.
VMware kullanan RHEL 6
Önemli
30 Kasım 2020'den itibaren Red Hat Enterprise Linux 6 bakım aşaması sona erecek. Bakım aşamasının ardından Uzatılmış Kullanım Ömrü Aşaması devam eder. Red Hat Enterprise Linux 6, Tam/Bakım Aşamalarından geçerken Red Hat Enterprise Linux 7 veya 8 veya 9 sürümüne yükseltilmesi kesinlikle önerilir. Müşterilerin Red Hat Enterprise Linux 6'da kalması gerekiyorsa Red Hat Enterprise Linux Genişletilmiş Yaşam Döngüsü Desteği (ELS) Eklentisinin eklenmesi önerilir.
RHEL 6'da NetworkManager, Azure Linux aracısını etkileyebilir. Aşağıdaki komutu çalıştırarak bu paketi kaldırın:
sudo rpm -e --nodeps NetworkManager
/etc/sysconfig/ dizininde 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 bir sanal makineyi 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
Dekont
** Hızlandırılmış Ağ (AN) kullanırken, oluşturulan yapay arabirim bir udev kuralı kullanılarak yönetilmemek üzere yapılandırılmam gerekir. Bu, NetworkManager'ın birincil arabirimle aynı IP'yi atamasını engeller.
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=="add", ENV{NM_UNMANAGED}="1"
EOF
Aşağıdaki komutu çalıştırarak ağ hizmetinin önyükleme zamanında başlayacağından emin olun:
sudo chkconfig network on
Aşağıdaki komutu çalıştırarak 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. Aşağıdaki komutu çalıştırarak extras deposunu 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 ek çekirdek parametreleri içerecek şekilde değiştirin. Bunu 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"
Bu, tüm konsol iletilerinin hata ayıklama sorunlarıyla Azure desteği yardımcı olabilecek ilk seri bağlantı noktasına gönderilmesini de sağlar. 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ğimiz bir bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz
crashkernel
. Bu parametrenin sanal makinedeki kullanılabilir bellek miktarını 128 MB veya daha fazla azalttığını ve bunun daha küçük sanal makine boyutlarında sorunlu olabileceğini unutmayın.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
Aşağıdaki komutu çalıştırarak 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ı, sanal makine Azure'da sağlandıktan sonra sanal makineye bağlı yerel kaynak diskini kullanarak değiştirme alanını otomatik olarak yapılandırabilir. Yerel kaynak diskinin geçici bir disk olduğunu ve sanal makinenin sağlamasını kaldırılmışsa boşaltılabileceğini unutmayın. Ö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.
Aşağıdaki komutu çalıştırarak aboneliğin kaydını kaldırın (gerekirse):
sudo subscription-manager unregister
Sanal makinenin sağlamasını kaldırıp Azure'da sağlama için hazırlamak için aşağıdaki komutları çalıştırın:
Dekont
Belirli bir sanal makineyi 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
Sanal makineyi kapatın ve VMDK dosyasını bir .vhd dosyasına dönüştürün.
Dekont
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ştirmeniz önerilir. Başvuru: https://bugs.launchpad.net/qemu/+bug/1490611.
Ö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
Aşağıdaki komutu çalıştırarak ağ hizmetinin önyükleme zamanında başlayacağından emin olun:
sudo systemctl enable network
Aşağıdaki komutu çalıştırarak 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 ek çekirdek parametreleri 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ğimiz bir bulut ortamında kullanışlı değildir. İsterseniz seçeneği yapılandırılmış olarak bırakabilirsiniz
crashkernel
. Bu parametrenin sanal makinedeki kullanılabilir bellek miktarını 128 MB veya daha fazla azalttığını ve bunun daha küçük sanal makine boyutlarında sorunlu olabileceğini unutmayın.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. Aşağıdaki komutu çalıştırarak extras deposunu etkinleştirin:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Aşağıdaki komutu çalıştırarak 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 sanal makinesi hazırlama', 12. adım olan 'Sağlamayı işlemek için cloud-init'i yükleme' adımlarındaki adımları izleyin.
Değiştirme yapılandırması
İşletim sistemi diskinde değiştirme alanı oluşturmayın. 'Hyper-V Yöneticisi'nden RHEL 7 sanal makinesi hazırlama' adım 13, 'Yapılandırmayı değiştirme' adımlarındaki adımları izleyin
Aboneliğin kaydını silmek istiyorsanız aşağıdaki komutu çalıştırın:
sudo subscription-manager unregister
Sağlamayı kaldır
'Hyper-V Yöneticisi'nden RHEL 7 sanal makinesi hazırlama' adım 15, 'Sağlamayı kaldırma' adımlarındaki adımları izleyin
Sanal makineyi kapatın ve VMDK dosyasını VHD biçimine dönüştürün.
Dekont
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ştirmeniz önerilir. Başvuru: https://bugs.launchpad.net/qemu/+bug/1490611.
Ö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 ayrıntılı 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 # 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 sanal makine oluşturun. Bağlan Sanal Sabit Disk sayfasında Daha sonra Sanal sabit disk ekle'yi seçin ve Yeni Sanal Makine Sihirbazı'nı tamamlayın.
Sanal makine ayarlarını açın:
Sanal makineye yeni bir sanal sabit disk 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.
Sanal makineyi başlatın. Yükleme kılavuzu görüntülendiğinde, önyükleme seçeneklerini yapılandırmak için Sekme tuşuna basın.
Önyükleme seçeneklerinin sonuna girin
inst.ks=<the location of the kickstart file>
ve Enter tuşuna basın.Yüklemenin bitmesini bekleyin. tamamlandığında sanal makine otomatik olarak kapatılır. Linux VHD'niz artık Azure'a yüklenmeye hazırdır.
Bilinen sorunlar
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 (VirtualBox, Xen vb.) kullanırken, ilk RAM diskinde en az hv_vmbus ve hv_storvsc çekirdek modüllerinin kullanılabilir olduğundan emin olmak için initrd'yi yeniden oluşturmanız gerekebilir. Bu, en azından yukarı akış Red Hat dağılımını temel alan sistemlerde bilinen bir sorundur.
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 ayrıntı için initramfs'ı yeniden oluşturma hakkındaki bilgilere bakın.
Sonraki adımlar
- Artık Azure'da yeni sanal makineler oluşturmak için Red Hat Enterprise Linux sanal sabit diskinizi kullanmaya hazırsınız. .vhd dosyasını Azure'a ilk kez yüklüyorsanız bkz . Özel diskten Linux VM oluşturma.
- Red Hat Enterprise Linux ç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 KCG belgeleri sayfasına gidin.