Příprava virtuálního počítače založeného na Red Hat pro Azure
Platí pro: ✔️ Flexibilní škálovací sady virtuálních ✔️ počítačů s Linuxem – Jednotné škálovací sady ✔️
V tomto článku se dozvíte, jak připravit virtuální počítač s Red Hat Enterprise Linuxem (RHEL) pro použití v Azure. Verze RHEL popsané v tomto článku jsou 6.X, 7.X a 8.X. Hypervisory pro přípravu, které jsou popsané v tomto článku, jsou Hyper-V, virtuální počítač založený na jádru (KVM) a VMware.
Další informace o požadavcích na způsobilost pro účast v programu Cloud Access v Red Hatu najdete na webu Red Hat Cloud Access a spuštění RHEL v Azure. Způsoby automatizace vytváření imagí RHEL najdete v Azure Image Builderu.
Poznámka:
Mějte na paměti verze, které jsou na konci životnosti (EOL) a nejsou již podporovány red Hat. Nahrané obrázky, které jsou v EOL nebo nad rámec EOL, jsou podporovány rozumným obchodním úsilím. Další informace najdete v životních cyklech produktů Red Hat.
Správce technologie Hyper-V
V této části se dozvíte, jak pomocí Správce technologie Hyper-V připravit virtuální počítač RHEL 6, RHEL 7 nebo RHEL 8 .
Požadavky
Tato část předpokládá, že jste již získali soubor ISO z webu Red Hat a nainstalovali image RHEL na virtuální pevný disk (VHD). Další informace o tom, jak pomocí Správce technologie Hyper-V nainstalovat image operačního systému, najdete v tématu Instalace role Hyper-V a konfigurace virtuálního počítače.
Poznámky k instalaci RHEL
- Azure nepodporuje formát VHDX. podpora Azure pouze pevný virtuální pevný disk. Pomocí Správce technologie Hyper-V můžete disk převést do formátu VHD nebo můžete použít rutinu
convert-vhd
. Pokud používáte VirtualBox, vyberte při vytváření disku pevnou velikost na rozdíl od výchozí dynamicky přidělené možnosti. - podpora Azure s Gen1 (spouštění systému BIOS) a virtuální počítače Gen2 (spouštění UEFI).
- Maximální povolená velikost virtuálního pevného disku je 1 023 GB.
- Modul jádra vfat musí být v jádru povolený.
- Logický svazek Manager (LVM) je podporovaný a dá se použít na disku s operačním systémem nebo na datových discích na virtuálních počítačích Azure. Obecně doporučujeme místo LVM používat standardní oddíly na disku s operačním systémem. Tento postup zabraňuje konfliktům názvů LVM s klonovanými virtuálními počítači, zejména pokud byste někdy potřebovali připojit disk s operačním systémem k jinému identickému virtuálnímu počítači pro řešení potíží. Další informace najdete v dokumentaci LVM a RAID.
- Vyžaduje se podpora jádra pro připojení systémů souborů UDF (Universal Disk Format). Při prvním spuštění v Azure předá virtuálnímu počítači s Linuxem média formátovaná uživatelem definovaná uživatelem, která je připojená k hostu, konfiguraci zřizování. Agent Azure Linux musí být schopný připojit systém souborů UDF ke čtení konfigurace a zřízení virtuálního počítače. Bez tohoto kroku se zřizování nezdaří.
- Nenakonfigurujte prohození oddílu na disku s operačním systémem. Další informace najdete v následujících krocích.
- Všechny virtuální pevné disky v Azure musí mít virtuální velikost zarovnanou na 1 MB. Při převodu z nezpracovaného disku na virtuální pevný disk je nutné před převodem zajistit, aby velikost nezpracovaného disku byla násobkem 1 MB. Další informace najdete v následujících krocích. Viz také poznámky k instalaci linuxu.
Poznámka:
Cloud-init >= 21.2 odebere požadavek UDF. Bez povoleného modulu definovaného uživatelem se ale disk CD-ROM během zřizování nepřipevní, což zabrání použití vlastních dat. Alternativním řešením je použít vlastní data pomocí uživatelských dat. Na rozdíl od vlastních dat nejsou uživatelská data šifrovaná. Další informace naleznete v tématu Formáty uživatelských dat.
RHEL 6 pomocí Správce technologie Hyper-V
Důležité
30. listopadu 2020 dosáhl RHEL 6 konce fáze údržby. Fáze údržby následuje fáze Rozšířené životnosti. S přechodem RHEL 6 z fází úplné údržby důrazně doporučujeme upgradovat na RHEL 7, 8 nebo 9. Pokud potřebujete zůstat na RHEL 6, doporučujeme přidat doplněk podpory rozšířeného životního cyklu RHEL.
Ve Správci technologie Hyper-V vyberte virtuální počítač.
Výběrem možnosti Připojit otevřete okno konzoly pro virtuální počítač.
V RHEL 6
NetworkManager
může kolidovat s agentem Azure Linux. Odinstalujte tento balíček:sudo rpm -e --nodeps NetworkManager
Vytvořte nebo upravte
/etc/sysconfig/network
soubor a přidejte následující text:NETWORKING=yes HOSTNAME=localhost.localdomain
Vytvořte nebo upravte
/etc/sysconfig/network-scripts/ifcfg-eth0
soubor a přidejte následující text:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Přesuňte (nebo odeberte) pravidla udev, abyste se vyhnuli generování statických pravidel pro ethernetové rozhraní. Tato pravidla způsobují problémy při klonování virtuálního počítače v Azure nebo Hyper-V:
Upozorňující
Mnoho velikostí virtuálních počítačů v5 a novějších vyžaduje akcelerované síťové služby. Pokud není povolená, správce NetworkManager přiřadí stejnou IP adresu všem virtuálním rozhraním funkcí. Pokud chcete zabránit duplicitním IP adresám, nezapomeňte při migraci na novější velikost zahrnout toto pravidlo udev.
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
Poznámka:
Při použití akcelerovaných síťových služeb musí být syntetické rozhraní, které je vytvořeno, nakonfigurováno tak, aby nespravovalo pomocí pravidla udev. Tato akce zabrání
NetworkManager
přiřazení stejné IP adresy jako primární rozhraní.Pokud ho chcete použít:
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
Ujistěte se, že se síťová služba spouští při spuštění:
sudo chkconfig network on
Zaregistrujte své předplatné Red Hat a povolte instalaci balíčků z úložiště RHEL:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Balíček WALinuxAgent ,
WALinuxAgent-<version>
byl nasdílený do úložiště extra Red Hat. Povolte úložiště navíc:sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
Upravte spouštěcí řádek jádra v konfiguraci grubu tak, aby zahrnoval další parametry jádra pro Azure. Pokud chcete tuto změnu provést, otevřete
/boot/grub/menu.lst
ji v textovém editoru. Ujistěte se, že výchozí jádro obsahuje následující parametry:console=ttyS0 earlyprintk=ttyS0
Tato akce také zajišťuje, aby se všechny zprávy konzoly odesílaly na první sériový port, který může pomoct podpora Azure s problémy s laděním.
Doporučujeme také odebrat následující parametry:
rhgb quiet crashkernel=auto
Grafické a tiché spouštění není užitečné v cloudovém prostředí, kde chcete, aby se všechny protokoly odesílaly na sériový port. Pokud chcete, můžete tuto možnost ponechat
crashkernel
nakonfigurovanou. Tento parametr snižuje množství dostupné paměti virtuálního počítače o 128 MB nebo více. Tato konfigurace může být problém s menšími velikostmi virtuálních počítačů.Ujistěte se, že je server SSH (Secure Shell) nainstalovaný a nakonfigurovaný tak, aby se spustil při spuštění, což je obvykle výchozí nastavení. Upravte
/etc/ssh/sshd_config
tak, aby zahrnoval následující řádek:ClientAliveInterval 180
Nainstalujte agenta Azure s Linuxem:
sudo yum install WALinuxAgent sudo chkconfig waagent on
Instalace balíčku WALinuxAgent odebere
NetworkManager
balíčky aNetworkManager-gnome
balíčky, pokud ještě nebyly odebrány v kroku 3.Nevytvávejte místo prohození na disku s operačním systémem.
Agent Azure s Linuxem může automaticky nakonfigurovat místo prohození pomocí disku místního prostředku, který je připojený k virtuálnímu počítači po zřízení virtuálního počítače v Azure. Místní disk prostředku je dočasný disk a pokud je virtuální počítač zrušený, může se vyprázdnit. Po instalaci agenta Azure Linuxu v předchozím kroku odpovídajícím způsobem upravte následující parametry
/etc/waagent.conf
: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.
Zrušení registrace předplatného (v případě potřeby):
sudo subscription-manager unregister
Zrušte zřízení virtuálního počítače a připravte ho na zřizování v Azure:
Poznámka:
Pokud migrujete konkrétní virtuální počítač a nechcete vytvořit generalizovanou image, přeskočte krok zrušení zřízení.
sudo waagent -force -deprovision sudo export HISTSIZE=0
Ve Správci technologie Hyper-V vyberte akci>vypnout. Váš virtuální pevný disk s Linuxem je teď připravený k nahrání do Azure.
RHEL 7 s využitím Správce technologie Hyper-V
Ve Správci technologie Hyper-V vyberte virtuální počítač.
Výběrem možnosti Připojit otevřete okno konzoly pro virtuální počítač.
Vytvořte nebo upravte
/etc/sysconfig/network
soubor a přidejte následující text:NETWORKING=yes HOSTNAME=localhost.localdomain
Vytvořte nebo upravte
/etc/sysconfig/network-scripts/ifcfg-eth0
soubor a přidejte následující text:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes
Poznámka:
Při použití akcelerovaných síťových služeb musí být syntetické rozhraní, které je vytvořeno, nakonfigurováno tak, aby nespravovalo pomocí pravidla udev. Tato akce zabrání
NetworkManager
přiřazení stejné IP adresy jako primární rozhraní.Pokud ho chcete použít:
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
Ujistěte se, že se síťová služba spouští při spuštění:
sudo systemctl enable network
Zaregistrujte své předplatné Red Hat a povolte instalaci balíčků z úložiště RHEL:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Upravte spouštěcí řádek jádra v konfiguraci grubu tak, aby zahrnoval další parametry jádra pro Azure. Chcete-li tuto změnu provést, otevřete
/etc/default/grub
v textovém editoru a upravteGRUB_CMDLINE_LINUX
parametr. Příklad: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
Poznámka:
Pokud ENABLE_BLSCFG=false je místo
/etc/default/grub
ENABLE_BLSCFG=true
, nástroje, jako je grubedit nebo gubby, které spoléhají na specifikaci zavaděče spouštění (BLS) pro správu položek a konfigurací spouštění, nemusí správně fungovat v RHEL 8 a 9. PokudENABLE_BLSCFG
není k dispozici, výchozí chování jefalse
.Tato úprava také zajišťuje, aby se všechny zprávy konzoly odesílaly na první sériový port a povolily interakci se sériovou konzolou, která může pomoct podpora Azure s problémy s laděním. Tato konfigurace také vypne nové zásady vytváření názvů RHEL 7 pro síťové karty.
rhgb quiet crashkernel=auto
Grafické a tiché spouštění není užitečné v cloudovém prostředí, kde chcete, aby se všechny protokoly odesílaly na sériový port. Pokud chcete, můžete tuto možnost ponechat
crashkernel
nakonfigurovanou. Tento parametr snižuje množství dostupné paměti na virtuálním počítači o 128 MB nebo více, což může být problém u menších velikostí virtuálních počítačů.Po dokončení úprav
/etc/default/grub
spusťte následující příkaz, který znovu sestaví konfiguraci grubu:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Poznámka:
Pokud nahráváte virtuální počítač s povoleným rozhraním UEFI, příkaz pro aktualizaci grubu je
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
.Ujistěte se, že je server SSH nainstalovaný a nakonfigurovaný tak, aby se spustil při spuštění, což je obvykle výchozí nastavení. Upravte
/etc/ssh/sshd_config
tak, aby zahrnoval následující řádek:ClientAliveInterval 180
Balíček WALinuxAgent ,
WALinuxAgent-<version>
byl nasdílený do úložiště extra Red Hat. Povolte úložiště navíc:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Nainstalujte agenta
cloud-init
Azure Linux a další nezbytné nástroje:sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons sudo systemctl enable waagent.service sudo systemctl enable cloud-init.service
Konfigurace
cloud-init
pro zpracování zřizování:Konfigurovat
waagent
procloud-init
:sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=auto/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.conf
Poznámka:
Pokud migrujete konkrétní virtuální počítač a nechcete vytvořit generalizovanou image, nastavte
Provisioning.Agent=disabled
ji v/etc/waagent.conf
konfiguraci.Konfigurace připojení:
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
Konfigurace zdroje dat Azure:
sudo echo "Allow only Azure datasource, disable fetching network setting via IMDS" sudo cat > /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF datasource_list: [ Azure ] datasource: Azure: apply_network_config: False EOF
Pokud je nakonfigurovaný, odeberte existující prohození souboru:
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
Konfigurace
cloud-init
protokolování: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
Konfigurace prohození:
Nevytvávejte místo prohození na disku s operačním systémem.
Dříve se agent Azure s Linuxem použil k automatické konfiguraci prohození místa pomocí místního disku prostředku připojeného k virtuálnímu počítači po zřízení virtuálního počítače v Azure. Tato akce je nyní zpracována
cloud-init
. K vytvoření prohození souboru nesmíte použít agenta Linuxu. Odpovídajícím způsobem upravte následující parametry/etc/waagent.conf
:ResourceDisk.Format=n ResourceDisk.EnableSwap=n
Pokud chcete připojit, formátovat a vytvořit prohození, můžete:
Tento kód předejte jako
cloud-init
konfiguraci při každém vytvoření virtuálního počítače prostřednictvím vlastních dat. Tuto metodu doporučujeme.Použijte direktivu upečenou
cloud-init
do image, která tento krok provede při každém vytvoření virtuálního počítače.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
Pokud chcete zrušit registraci předplatného, spusťte následující příkaz:
sudo subscription-manager unregister
Zrušte zřízení virtuálního počítače a připravte ho na zřizování v Azure:
Upozornění
Pokud migrujete konkrétní virtuální počítač a nechcete vytvořit generalizovanou image, přeskočte krok zrušení zřízení. Spuštěním příkazu
waagent -force -deprovision+user
se vykreslí nepoužitelný zdrojový počítač. Tento krok je určený pouze k vytvoření generalizované image.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
Ve Správci technologie Hyper-V vyberte akci>vypnout. Váš virtuální pevný disk s Linuxem je teď připravený k nahrání do Azure.
RHEL 8+ s využitím Správce technologie Hyper-V
Ve Správci technologie Hyper-V vyberte virtuální počítač.
Výběrem možnosti Připojit otevřete okno konzoly pro virtuální počítač.
Ujistěte se, že se služba Network Manager spouští při spuštění:
sudo systemctl enable NetworkManager.service
Nakonfigurujte síťové rozhraní tak, aby se automaticky spustilo při spuštění a používalo protokol dynamické konfigurace hostitele:
sudo nmcli con mod eth0 connection.autoconnect yes ipv4.method auto
Poznámka:
Při použití akcelerovaných síťových služeb musí být syntetické rozhraní, které je vytvořeno, nakonfigurováno tak, aby nespravovalo pomocí pravidla udev. Tato akce zabrání
NetworkManager
přiřazení stejné IP adresy jako primární rozhraní.Pokud ho chcete použít:
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
Zaregistrujte své předplatné Red Hat a povolte instalaci balíčků z úložiště RHEL:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Upravte spouštěcí řádek jádra v konfiguraci grubu tak, aby zahrnoval více parametrů jádra pro Azure a povolte sériovou konzolu.
Odeberte aktuální parametry GRUB:
sudo grub2-editenv - unset kernelopts
Upravte
/etc/default/grub
v textovém editoru a přidejte následující parametry: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"
Tato úprava také zajišťuje, aby se všechny zprávy konzoly odesílaly na první sériový port a povolily interakci se sériovou konzolou, která může pomoct podpora Azure s problémy s laděním. Tato konfigurace také vypne nové zásady vytváření názvů pro síťové karty.
Doporučujeme také odebrat následující parametry:
rhgb quiet crashkernel=auto
Grafické a tiché spouštění není užitečné v cloudovém prostředí, kde chcete, aby se všechny protokoly odesílaly na sériový port. Pokud chcete, můžete tuto možnost ponechat
crashkernel
nakonfigurovanou. Tento parametr snižuje množství dostupné paměti na virtuálním počítači o 128 MB nebo více, což může být problém u menších velikostí virtuálních počítačů.Po dokončení úprav
/etc/default/grub
spusťte následující příkaz, který znovu sestaví konfiguraci grubu:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Pro virtuální počítač s povoleným rozhraním UEFI spusťte následující příkaz:
sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
Ujistěte se, že je server SSH nainstalovaný a nakonfigurovaný tak, aby se spustil při spuštění, což je obvykle výchozí nastavení. Upravte
/etc/ssh/sshd_config
tak, aby zahrnoval následující řádek:ClientAliveInterval 180
Nainstalujte agenta
cloud-init
Azure Linux a další nezbytné nástroje:sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons sudo systemctl enable waagent.service sudo systemctl enable cloud-init.service
Konfigurace
cloud-init
pro zpracování zřizování:Konfigurovat
waagent
procloud-init
:sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=cloud-init/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.conf
Poznámka:
Pokud migrujete konkrétní virtuální počítač a nechcete vytvořit generalizovanou image, nastavte
Provisioning.Agent=disabled
ji v/etc/waagent.conf
konfiguraci.Konfigurace připojení:
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
Konfigurace zdroje dat Azure:
sudo echo "Allow only Azure datasource, disable fetching network setting via IMDS" sudo cat > /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF datasource_list: [ Azure ] datasource: Azure: apply_network_config: False EOF
Pokud je nakonfigurovaný, odeberte existující prohození souboru:
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
Konfigurace
cloud-init
protokolování: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
Konfigurace prohození:
Nevytvávejte místo prohození na disku s operačním systémem.
Dříve se agent Azure s Linuxem použil k automatické konfiguraci prohození místa pomocí místního disku prostředku připojeného k virtuálnímu počítači po zřízení virtuálního počítače v Azure. Tato akce je nyní zpracována
cloud-init
. Agenta Linuxu nesmíte použít k formátování disku prostředku, který vytvoří prohození souboru. Odpovídajícím způsobem upravte následující parametry/etc/waagent.conf
:ResourceDisk.Format=n ResourceDisk.EnableSwap=n
Tento kód předejte jako
cloud-init
konfiguraci při každém vytvoření virtuálního počítače prostřednictvím vlastních dat. Tuto metodu doporučujeme.Použijte direktivu upečenou
cloud-init
do image, která tento krok provede při každém vytvoření virtuálního počítače.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
Pokud chcete zrušit registraci předplatného, spusťte následující příkaz:
sudo subscription-manager unregister
Spuštěním následujících příkazů zrušte zřízení virtuálního počítače a připravte ho na zřízení v Azure:
sudo cloud-init clean sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo sudo rm -f /var/log/waagent.log sudo export HISTSIZE=0
Upozornění
Pokud migrujete konkrétní virtuální počítač a nechcete vytvořit generalizovanou image, přeskočte krok zrušení zřízení. Spuštěním příkazu
waagent -force -deprovision+user
se vykreslí nepoužitelný zdrojový počítač. Tento krok je určený pouze k vytvoření generalizované image.Ve Správci technologie Hyper-V vyberte akci>vypnout. Váš virtuální pevný disk s Linuxem je teď připravený k nahrání do Azure.
KVM
V této části se dozvíte, jak pomocí KVM připravit distribuci RHEL 6 nebo RHEL 7 k nahrání do Azure.
RHEL 6 s využitím KVM
Důležité
30. listopadu 2020 dosáhl RHEL 6 konce fáze údržby. Fáze údržby následuje fáze Rozšířené životnosti. S přechodem RHEL 6 z fází úplné údržby důrazně doporučujeme upgradovat na RHEL 7, 8 nebo 9. Pokud potřebujete zůstat na RHEL 6, doporučujeme přidat doplněk podpory rozšířeného životního cyklu RHEL.
Stáhněte si image KVM RHEL 6 z webu Red Hat.
Nastavte kořenové heslo.
Vygenerujte šifrované heslo a zkopírujte výstup příkazu:
sudo openssl passwd -1 changeme
Nastavení kořenového hesla pomocí hosta:
sudo guestfish --rw -a <image-name> > <fs> run > <fs> list-filesystems > <fs> mount /dev/sda1 / > <fs> vi /etc/shadow > <fs> exit
Změňte druhé pole kořenového uživatele na
!!
šifrované heslo.Vytvořte virtuální počítač v KVM z image qcow2. Nastavte typ disku na qcow2 a nastavte model zařízení virtuálního síťového rozhraní na virtio. Pak spusťte virtuální počítač a přihlaste se jako root.
Vytvořte nebo upravte
/etc/sysconfig/network
soubor a přidejte následující text:NETWORKING=yes HOSTNAME=localhost.localdomain
Vytvořte nebo upravte
/etc/sysconfig/network-scripts/ifcfg-eth0
soubor a přidejte následující text:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Přesuňte (nebo odeberte) pravidla udev, abyste se vyhnuli generování statických pravidel pro ethernetové rozhraní. Tato pravidla způsobují problémy při klonování virtuálního počítače v Azure nebo Hyper-V:
sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
Poznámka:
Při použití akcelerovaných síťových služeb musí být syntetické rozhraní, které je vytvořeno, nakonfigurováno tak, aby nespravovalo pomocí pravidla udev. Tato akce zabrání
NetworkManager
přiřazení stejné IP adresy jako primární rozhraní.Pokud ho chcete použít:
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
Ujistěte se, že se síťová služba spouští při spuštění:
sudo chkconfig network on
Zaregistrujte své předplatné Red Hat a povolte instalaci balíčků z úložiště RHEL:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Upravte spouštěcí řádek jádra v konfiguraci grubu tak, aby zahrnoval další parametry jádra pro Azure. Pokud chcete tuto konfiguraci provést, otevřete
/boot/grub/menu.lst
ji v textovém editoru. Ujistěte se, že výchozí jádro obsahuje následující parametry:console=ttyS0 earlyprintk=ttyS0
Tento krok také zajišťuje, aby se všechny zprávy konzoly odesílaly na první sériový port, který může pomoct podpora Azure s laděním problémů.
Doporučujeme také odebrat následující parametry:
rhgb quiet crashkernel=auto
Grafické a tiché spouštění není užitečné v cloudovém prostředí, kde chcete, aby se všechny protokoly odesílaly na sériový port. Pokud chcete, můžete tuto možnost ponechat
crashkernel
nakonfigurovanou. Tento parametr snižuje množství dostupné paměti na virtuálním počítači o 128 MB nebo více, což může být problém u menších velikostí virtuálních počítačů.Přidejte moduly Hyper-V do initramfs:
Upravte
/etc/dracut.conf
a přidejte následující obsah:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Opětovné sestavení initramfs:
sudo dracut -f -v
Odinstalace
cloud-init
:sudo yum remove cloud-init
Ujistěte se, že je server SSH nainstalovaný a nakonfigurovaný tak, aby se spustil při spuštění:
sudo chkconfig sshd on
Upravte
/etc/ssh/sshd_config
tak, aby zahrnoval následující řádky:PasswordAuthentication yes ClientAliveInterval 180
Balíček WALinuxAgent ,
WALinuxAgent-<version>
byl nasdílený do úložiště extra Red Hat. Povolte úložiště navíc:sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
Nainstalujte agenta Azure s Linuxem:
sudo yum install WALinuxAgent sudo chkconfig waagent on
Agent Azure s Linuxem může automaticky nakonfigurovat místo prohození pomocí disku místního prostředku, který je připojený k virtuálnímu počítači po zřízení virtuálního počítače v Azure. Místní disk prostředku je dočasný disk a pokud je virtuální počítač zrušený, může být vyprázdněn. Po instalaci agenta Azure Linuxu v předchozím kroku odpovídajícím způsobem upravte následující parametry
/etc/waagent.conf
: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.
Zrušení registrace předplatného (v případě potřeby):
sudo subscription-manager unregister
Spuštěním následujících příkazů virtuální počítač zrušte a připravte ho na zřízení v Azure.
Poznámka:
Pokud migrujete konkrétní virtuální počítač a nechcete vytvořit generalizovanou image, přeskočte krok zrušení zřízení.
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
Vypněte virtuální počítač v KVM.
Převeďte image qcow2 do formátu VHD.
Poznámka:
Ve verzích qemu-img = >2.2.1 existuje známá chyba, která vede k nesprávnému formátování virtuálního pevného disku. Tento problém je opravený v QEMU 2.6. Doporučujeme použít qemu-img 2.2.0 nebo nižší nebo aktualizovat na verzi 2.6 nebo vyšší. Další informace naleznete na tomto webu .
Nejprve převeďte obrázek na nezpracovaný formát:
sudo qemu-img convert -f qcow2 -O raw rhel-6.9.qcow2 rhel-6.9.raw
Ujistěte se, že je velikost nezpracovaného obrázku zarovnaná s 1 MB. V opačném případě zaokrouhlete velikost nahoru tak, aby odpovídala 1 MB:
MB=$((1024*1024)) size=$(qemu-img info -f raw --output json "rhel-6.9.raw" | \ gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}') rounded_size=$((($size/$MB + 1)*$MB)) sudo qemu-img resize rhel-6.9.raw $rounded_size
Převeďte nezpracovaný disk na virtuální pevný disk s pevnou velikostí:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd
Nebo pokud máte qemu verze 2.6 nebo novější, uveďte možnost
force_size
:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-6.9.raw rhel-6.9.vhd
RHEL 7 s využitím KVM
Stáhněte si image KVM RHEL 7 z webu Red Hat. Tento postup jako příklad používá RHEL 7.
Nastavte kořenové heslo.
Vygenerujte šifrované heslo a zkopírujte výstup příkazu:
sudo openssl passwd -1 changeme
Nastavení kořenového hesla pomocí hosta:
sudo guestfish --rw -a <image-name> > <fs> run > <fs> list-filesystems > <fs> mount /dev/sda1 / > <fs> vi /etc/shadow > <fs> exit
Změňte druhé pole kořenového uživatele na
!!
šifrované heslo.Vytvořte virtuální počítač v KVM z image qcow2. Nastavte typ disku na qcow2 a nastavte model zařízení virtuálního síťového rozhraní na virtio. Pak spusťte virtuální počítač a přihlaste se jako root.
Vytvořte nebo upravte
/etc/sysconfig/network
soubor a přidejte následující text:NETWORKING=yes HOSTNAME=localhost.localdomain
Vytvořte nebo upravte
/etc/sysconfig/network-scripts/ifcfg-eth0
soubor a přidejte následující text:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes
Poznámka:
Při použití akcelerovaných síťových služeb musí být syntetické rozhraní, které je vytvořeno, nakonfigurováno tak, aby nespravovalo pomocí pravidla udev. Tato akce zabrání
NetworkManager
přiřazení stejné IP adresy jako primární rozhraní.Pokud ho chcete použít:
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
Ujistěte se, že se síťová služba spouští při spuštění:
sudo systemctl enable network
Zaregistrujte si předplatné Red Hat a povolte instalaci balíčků z úložiště RHEL:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Upravte spouštěcí řádek jádra v konfiguraci grubu tak, aby zahrnoval další parametry jádra pro Azure. Pokud chcete tuto konfiguraci provést, otevřete
/etc/default/grub
v textovém editoruGRUB_CMDLINE_LINUX
a upravte parametr. Příklad:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
Tento příkaz také zajistí, aby se všechny zprávy konzoly odesílaly na první sériový port, který může pomoct podpora Azure s laděním problémů. Příkaz také vypne nové zásady vytváření názvů RHEL 7 pro síťové karty. Doporučujeme také odebrat následující parametry:
rhgb quiet crashkernel=auto
Grafické a tiché spouštění není užitečné v cloudovém prostředí, kde chcete, aby se všechny protokoly odesílaly na sériový port. Pokud chcete, můžete tuto možnost ponechat
crashkernel
nakonfigurovanou. Tento parametr snižuje množství dostupné paměti na virtuálním počítači o 128 MB nebo více, což může být problém u menších velikostí virtuálních počítačů.Po dokončení úprav
/etc/default/grub
spusťte následující příkaz, který znovu sestaví konfiguraci grubu:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Přidejte moduly Hyper-V do initramfs.
Upravit
/etc/dracut.conf
a přidat obsah:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Opětovné sestavení initramfs:
sudo dracut -f -v
Odinstalace
cloud-init
:sudo yum remove cloud-init
Ujistěte se, že je server SSH nainstalovaný a nakonfigurovaný tak, aby se spustil při spuštění:
sudo systemctl enable sshd
Upravte
/etc/ssh/sshd_config
tak, aby zahrnoval následující řádky:PasswordAuthentication yes ClientAliveInterval 180
Balíček WALinuxAgent ,
WALinuxAgent-<version>
byl nasdílený do úložiště extra Red Hat. Povolte úložiště navíc:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Nainstalujte agenta Azure s Linuxem:
sudo yum install WALinuxAgent
waagent
Povolte službu:sudo systemctl enable waagent.service
Nainstalujte
cloud-init
.Postupujte podle kroků v části Příprava virtuálního počítače RHEL 7 ze Správce technologie Hyper-V, krok 12 Instalace
cloud-init
pro zpracování zřizování.Konfigurace prohození:
- Nevytvávejte místo prohození na disku s operačním systémem.
- Postupujte podle kroků v části Příprava virtuálního počítače RHEL 7 z Hyper-V Manageru, krok 13– Konfigurace prohození.
Zrušení registrace předplatného (v případě potřeby):
sudo subscription-manager unregister
Zrušte zřízení podle kroků v části Příprava virtuálního počítače RHEL 7 z Hyper-V Manageru, krok 15, zrušení zřízení.
Vypněte virtuální počítač v KVM.
Převeďte image qcow2 do formátu VHD.
Poznámka:
Ve verzích qemu-img = >1.1.1 existuje známá chyba, která vede k nesprávnému formátování virtuálního pevného disku. Tento problém je opravený v QEMU 1.6. Doporučujeme použít qemu-img 1.1.0 nebo nižší nebo aktualizovat na verzi 1.6 nebo vyšší. Další informace najdete na tomto webu.
Nejprve převeďte obrázek na nezpracovaný formát:
sudo qemu-img convert -f qcow2 -O raw rhel-7.4.qcow2 rhel-7.4.raw
Ujistěte se, že je velikost nezpracovaného obrázku zarovnaná s 1 MB. V opačném případě zaokrouhlete velikost nahoru tak, aby odpovídala 1 MB:
MB=$((1024*1024)) size=$(qemu-img info -f raw --output json "rhel-7.4.raw" | \ gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}') rounded_size=$((($size/$MB + 1)*$MB)) sudo qemu-img resize rhel-7.4.raw $rounded_size
Převeďte nezpracovaný disk na virtuální pevný disk s pevnou velikostí:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
Nebo pokud máte qemu verze 1.6+, uveďte možnost
force_size
:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
VMware
V této části se dozvíte, jak připravit distribuci RHEL 6 nebo RHEL 7 z VMware.
Požadavky
V této části se předpokládá, že jste už nainstalovali virtuální počítač RHEL ve VMware. Informace o instalaci operačního systému v prostředí VMware najdete v průvodci instalací hostovaného operačního systému VMware.
- Při instalaci operačního systému Linux doporučujeme místo LVM používat standardní oddíly, což je často výchozí nastavení pro mnoho instalací. Použití oddílů zabraňuje konfliktům názvů LVM s klonovaným virtuálním počítačem, zejména v případě, že by se disk s operačním systémem někdy potřeboval připojit k jinému virtuálnímu počítači pro účely řešení potíží. LVM nebo RAID je možné použít na datových discích, pokud chcete.
- Nenakonfigurujte prohození oddílu na disku s operačním systémem. Agenta s Linuxem můžete nakonfigurovat tak, aby na dočasném disku prostředku vytvořil prohození souboru. Další informace najdete v následujících krocích.
- Při vytváření virtuálního pevného disku vyberte Uložit virtuální disk jako jeden soubor.
RHEL 6 s využitím VMware
Důležité
30. listopadu 2020 dosáhl RHEL 6 konce fáze údržby. Fáze údržby následuje fáze Rozšířené životnosti. S přechodem RHEL 6 z fází úplné údržby důrazně doporučujeme upgradovat na RHEL 7 nebo 8 nebo 9. Pokud potřebujete zůstat na RHEL 6, doporučujeme přidat doplněk podpory rozšířeného životního cyklu RHEL.
V RHEL 6
NetworkManager
může kolidovat s agentem Azure Linux. Odinstalujte tento balíček:sudo rpm -e --nodeps NetworkManager
V adresáři vytvořte soubor s názvem network
/etc/sysconfig/
, který obsahuje následující text:NETWORKING=yes HOSTNAME=localhost.localdomain
Vytvořte nebo upravte
/etc/sysconfig/network-scripts/ifcfg-eth0
soubor a přidejte následující text:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Přesuňte (nebo odeberte) pravidla udev, abyste se vyhnuli generování statických pravidel pro ethernetové rozhraní. Tato pravidla způsobují problémy při klonování virtuálního počítače v Azure nebo Hyper-V:
sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
Poznámka:
Při použití akcelerovaných síťových služeb musí být syntetické rozhraní, které je vytvořeno, nakonfigurováno tak, aby nespravovalo pomocí pravidla udev. Tato akce zabrání
NetworkManager
přiřazení stejné IP adresy jako primární rozhraní.Pokud ho chcete použít:
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
Ujistěte se, že se síťová služba spouští při spuštění:
sudo chkconfig network on
Zaregistrujte své předplatné Red Hat a povolte instalaci balíčků z úložiště RHEL:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Balíček WALinuxAgent ,
WALinuxAgent-<version>
byl nasdílený do úložiště extra Red Hat. Povolte úložiště navíc:sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
Upravte spouštěcí řádek jádra v konfiguraci grubu tak, aby zahrnoval další parametry jádra pro Azure. Pokud chcete tento krok provést, otevřete
/etc/default/grub
ho v textovém editoru a upravteGRUB_CMDLINE_LINUX
parametr. Příklad:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0"
Tento krok také zajišťuje, aby se všechny zprávy konzoly odesílaly na první sériový port, který může pomoct podpora Azure s laděním problémů. Doporučujeme také odebrat následující parametry:
rhgb quiet crashkernel=auto
Grafické a tiché spouštění není užitečné v cloudovém prostředí, kde chcete, aby se všechny protokoly odesílaly na sériový port. Pokud chcete, můžete tuto možnost ponechat
crashkernel
nakonfigurovanou. Tento parametr snižuje množství dostupné paměti na virtuálním počítači o 128 MB nebo více, což může být problém u menších velikostí virtuálních počítačů.Přidejte moduly Hyper-V do initramfs:
Upravte
/etc/dracut.conf
a přidejte následující obsah:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Opětovné sestavení initramfs:
sudo dracut -f -v
Ujistěte se, že je server SSH nainstalovaný a nakonfigurovaný tak, aby se spustil při spuštění, což je obvykle výchozí nastavení. Upravte
/etc/ssh/sshd_config
tak, aby zahrnoval následující řádek:ClientAliveInterval 180
Nainstalujte agenta Azure s Linuxem:
sudo yum install WALinuxAgent sudo chkconfig waagent on
Nevytvávejte místo prohození na disku s operačním systémem.
Agent Azure s Linuxem může automaticky nakonfigurovat místo prohození pomocí disku místního prostředku, který je připojený k virtuálnímu počítači po zřízení virtuálního počítače v Azure. Místní disk prostředku je dočasný disk a pokud je virtuální počítač zrušený, může být vyprázdněn. Po instalaci agenta Azure Linuxu v předchozím kroku odpovídajícím způsobem upravte následující parametry
/etc/waagent.conf
: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.
Zrušení registrace předplatného (v případě potřeby):
sudo subscription-manager unregister
Spuštěním následujících příkazů zrušte zřízení virtuálního počítače a připravte ho na zřízení v Azure:
Poznámka:
Pokud migrujete konkrétní virtuální počítač a nechcete vytvořit generalizovanou image, přeskočte krok zrušení zřízení.
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
Vypněte virtuální počítač a převeďte soubor VMDK na soubor .vhd.
Poznámka:
Ve verzích qemu-img = >2.2.1 existuje známá chyba, která vede k nesprávnému formátování virtuálního pevného disku. Tento problém je opravený v QEMU 2.6. Doporučujeme použít qemu-img 2.2.0 nebo nižší nebo aktualizovat na verzi 2.6 nebo vyšší. Další informace najdete na tomto webu.
Nejprve převeďte obrázek na nezpracovaný formát:
sudo qemu-img convert -f vmdk -O raw rhel-6.9.vmdk rhel-6.9.raw
Ujistěte se, že je velikost nezpracovaného obrázku zarovnaná s 1 MB. V opačném případě zaokrouhlete velikost nahoru tak, aby odpovídala 1 MB:
MB=$((1024*1024)) size=$(qemu-img info -f raw --output json "rhel-6.9.raw" | \ gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}') rounded_size=$((($size/$MB + 1)*$MB)) sudo qemu-img resize rhel-6.9.raw $rounded_size
Převeďte nezpracovaný disk na virtuální pevný disk s pevnou velikostí:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd
Nebo pokud máte qemu verze 2.6 nebo novější, uveďte možnost
force_size
:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-6.9.raw rhel-6.9.vhd
RHEL 7 s využitím VMware
Vytvořte nebo upravte
/etc/sysconfig/network
soubor a přidejte následující text:NETWORKING=yes HOSTNAME=localhost.localdomain
Vytvořte nebo upravte
/etc/sysconfig/network-scripts/ifcfg-eth0
soubor a přidejte následující text:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes
Poznámka:
Při použití akcelerovaných síťových služeb musí být syntetické rozhraní, které je vytvořeno, nakonfigurováno tak, aby nespravovalo pomocí pravidla udev. Tato akce zabrání
NetworkManager
přiřazení stejné IP adresy jako primární rozhraní.Pokud ho chcete použít:
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
Ujistěte se, že se síťová služba spouští při spuštění:
sudo systemctl enable network
Zaregistrujte své předplatné Red Hat a povolte instalaci balíčků z úložiště RHEL:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Upravte spouštěcí řádek jádra v konfiguraci grubu tak, aby zahrnoval další parametry jádra pro Azure. Chcete-li tuto změnu provést, otevřete
/etc/default/grub
v textovém editoru a upravteGRUB_CMDLINE_LINUX
parametr. Příklad:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
Tato konfigurace také zajišťuje, aby se všechny zprávy konzoly odesílaly na první sériový port, což může pomoct podpora Azure s laděním problémů. Vypne také nové zásady vytváření názvů RHEL 7 pro síťové karty. Kromě toho doporučujeme odebrat následující parametry:
rhgb quiet crashkernel=auto
Grafické a tiché spouštění není užitečné v cloudovém prostředí, kde chcete, aby se všechny protokoly odesílaly na sériový port. Pokud chcete, můžete tuto možnost ponechat
crashkernel
nakonfigurovanou. Tento parametr snižuje množství dostupné paměti na virtuálním počítači o 128 MB nebo více, což může být problém u menších velikostí virtuálních počítačů.Po dokončení úprav
/etc/default/grub
spusťte následující příkaz, který znovu sestaví konfiguraci grubu:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Přidejte moduly Hyper-V do initramfs:
Upravit
/etc/dracut.conf
, přidat obsah:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Opětovné sestavení initramfs:
sudo dracut -f -v
Ujistěte se, že je server SSH nainstalovaný a nakonfigurovaný tak, aby se spustil při spuštění. Toto nastavení je obvykle výchozí. Upravte
/etc/ssh/sshd_config
tak, aby zahrnoval následující řádek:ClientAliveInterval 180
Balíček WALinuxAgent ,
WALinuxAgent-<version>
byl nasdílený do úložiště extra Red Hat. Povolte úložiště navíc:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Nainstalujte agenta Azure s Linuxem:
sudo yum install WALinuxAgent sudo systemctl enable waagent.service
Nainstalujte
cloud-init
:Postupujte podle kroků v části Příprava virtuálního počítače RHEL 7 ze Správce technologie Hyper-V, krok 12 Instalace
cloud-init
pro zpracování zřizování.Konfigurace prohození:
- Nevytvávejte místo prohození na disku s operačním systémem.
- Postupujte podle kroků v části Příprava virtuálního počítače RHEL 7 z Hyper-V Manageru, krok 13– Konfigurace prohození.
Pokud chcete zrušit registraci předplatného, spusťte následující příkaz:
sudo subscription-manager unregister
Zrušte zřízení podle kroků v části Příprava virtuálního počítače RHEL 7 z Hyper-V Manageru, krok 15, zrušení zřízení.
Vypněte virtuální počítač a převeďte soubor VMDK do formátu VHD.
Poznámka:
Ve verzích qemu-img = >2.2.1 existuje známá chyba, která vede k nesprávnému formátování virtuálního pevného disku. Tento problém je opravený v QEMU 2.6. Doporučujeme použít qemu-img 2.2.0 nebo nižší nebo aktualizovat na verzi 2.6 nebo vyšší. Další informace najdete na tomto webu.
Nejprve převeďte obrázek na nezpracovaný formát:
sudo qemu-img convert -f vmdk -O raw rhel-7.4.vmdk rhel-7.4.raw
Ujistěte se, že je velikost nezpracovaného obrázku zarovnaná s 1 MB. V opačném případě zaokrouhlete velikost nahoru tak, aby odpovídala 1 MB:
MB=$((1024*1024)) size=$(qemu-img info -f raw --output json "rhel-7.4.raw" | \ gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}') rounded_size=$((($size/$MB + 1)*$MB)) sudo qemu-img resize rhel-7.4.raw $rounded_size
Převeďte nezpracovaný disk na virtuální pevný disk s pevnou velikostí:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
Nebo pokud máte qemu verze 2.6 nebo novější, uveďte možnost
force_size
:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
Soubor Kickstart
V této části se dozvíte, jak připravit distribuci RHEL 7 z ISO pomocí souboru kickstart.
RHEL 7 ze souboru kickstartu
Vytvořte soubor kickstartu, který obsahuje následující obsah, a soubor uložte. Informace o instalaci kickstartu naleznete v úvodní instalační příručce.
# 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
Umístěte soubor kickstartu, kde k němu má instalační systém přístup.
Ve Správci technologie Hyper-V vytvořte nový virtuální počítač. Na stránce Připojit virtuální pevný disk vyberte Později připojit virtuální pevný disk a dokončete průvodce novým virtuálním počítačem.
Otevřete nastavení virtuálního počítače:
Připojte k virtuálnímu počítači nový virtuální pevný disk. Nezapomeňte vybrat formát virtuálního pevného disku a pevnou velikost.
Připojte instalační ISO k jednotce DVD.
Nastavte systém BIOS tak, aby se spouštěl z disku CD.
Spusťte virtuální počítač. Až se zobrazí průvodce instalací, vyberte klávesu Tab a nakonfigurujte možnosti spouštění.
Zadejte
inst.ks=<the location of the kickstart file>
na konci možností spuštění a vyberte klávesu Enter .Počkejte na dokončení instalace. Po dokončení se virtuální počítač automaticky vypne. Váš virtuální pevný disk s Linuxem je teď připravený k nahrání do Azure.
Známé problémy
Následující problém je známý.
Ovladač Hyper-V nelze zahrnout do počátečního disku RAM při použití hypervisoru jiného typu než Hyper-V.
V některých případech nemusí instalační programy pro Linux do počátečního disku RAM (initrd nebo initramfs) zahrnovat ovladače pro Hyper-V, pokud Linux nezjistí, že je spuštěný v prostředí Hyper-V.
Pokud k přípravě image Linuxu používáte jiný virtualizační systém (například VirtualBox nebo Xen), možná budete muset znovu sestavit initrd, abyste zajistili, že na počátečním disku RAM budou k dispozici alespoň hv_vmbus
moduly jádra a hv_storvsc
moduly jádra. Tento problém je známý alespoň v systémech založených na nadřazené distribuci Red Hatu.
Pokud chcete tento problém vyřešit, přidejte moduly Hyper-V do initramfs a znovu ho sestavte:
Upravte /etc/dracut.conf
a přidejte následující obsah:
add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Opětovné sestavení initramfs:
sudo dracut -f -v
Další informace naleznete v tématu Opětovné sestavení initramfs.
Související obsah
- Teď jste připraveni použít virtuální pevný disk RHEL k vytvoření nových virtuálních počítačů v Azure. Pokud soubor .vhd nahráváte do Azure poprvé, přečtěte si téma Vytvoření virtuálního počítače s Linuxem z vlastního disku.
- Další informace o hypervisorech certifikovaných ke spuštění RHEL najdete na webu Red Hat.
- Další informace o použití imagí RHEL BYOS připravených pro produkční prostředí najdete na stránce dokumentace k funkci Přineste si vlastní předplatné.