Een op Red Hat gebaseerde virtuele machine voor Azure voorbereiden
Van toepassing op: ✔️ Flexibele schaalsets ✔️ voor Linux-VM's ✔️ Uniform-schaalsets
In dit artikel leert u hoe u een virtuele Machine (RHEL) van Red Hat Enterprise Linux (VM) voorbereidt voor gebruik in Azure. De versies van RHEL die in dit artikel worden behandeld, zijn 7.x, 8.X., 9.x. De hypervisors voor voorbereiding die in dit artikel worden behandeld, zijn Hyper-V, op kernel gebaseerde VM (KVM), VMware en Kickstart.
Zie de Red Hat Cloud Access-website en RHEL uitvoeren in Azure voor meer informatie over geschiktheidsvereisten voor deelname aan het Red Hat Cloud Access-programma. Zie Azure Image Builder voor manieren om het bouwen van RHEL-installatiekopieën te automatiseren.
Notitie
Houd rekening met versies die aan hun einde van de levensduur (EOL) staan en die niet meer worden ondersteund door Red Hat. Geüploade afbeeldingen die zich op of buiten EOL bevinden, worden op redelijke basis ondersteund. Zie de Red Hat Product Life Cycles voor meer informatie.
Vereisten
In deze sectie wordt ervan uitgegaan dat u al een ISO-bestand hebt verkregen van de Website van Red Hat en de RHEL-installatiekopie hebt geïnstalleerd op een virtuele harde schijf (VHD). Zie De Hyper-V-rol installeren en een virtuele machine configureren voor meer informatie over het gebruik van Hyper-V-beheer om een installatiekopieën van een besturingssysteem te installeren.
RHEL-installatieopmerkingen
- Azure biedt geen ondersteuning voor de VHDX-indeling. ondersteuning voor Azure alleen vaste VHD. U kunt Hyper-V-beheer gebruiken om de schijf te converteren naar VHD-indeling of u kunt de
convert-vhd
cmdlet gebruiken. Als u VirtualBox gebruikt, selecteert u Vaste grootte in plaats van de standaardoptie dynamisch toegewezen wanneer u de schijf maakt. - ondersteuning voor Azure s Gen1 -VM's (BIOS boot) en Gen2 (UEFI boot).
- De maximale grootte die is toegestaan voor de VHD is 1023 GB.
- De vfat-kernelmodule moet zijn ingeschakeld in de kernel.
- Logical Volume Manager (LVM) wordt ondersteund en kan worden gebruikt op de besturingssysteemschijf of gegevensschijven in virtuele Azure-machines. Over het algemeen raden we u aan standaardpartities op de besturingssysteemschijf te gebruiken in plaats van LVM. Deze procedure voorkomt dat de LVM-naam conflicteert met gekloonde VM's, met name als u ooit een besturingssysteemschijf moet koppelen aan een andere identieke VM voor probleemoplossing. Zie de LVM - en RAID-documentatie voor meer informatie.
- Kernelondersteuning voor het koppelen van UDF-bestandssystemen (Universal Disk Format) is vereist. Bij het opstarten in Azure geeft de door UDF geformatteerde media die aan de gast zijn gekoppeld de inrichtingsconfiguratie door aan de Virtuele Linux-machine. De Azure Linux-agent moet het UDF-bestandssysteem kunnen koppelen om de configuratie ervan te lezen en de VIRTUELE machine in te richten. Zonder deze stap mislukt het inrichten.
- Configureer geen wisselpartitie op de schijf van het besturingssysteem. Lees de volgende stappen voor meer informatie.
- Alle VHD's in Azure moeten een virtuele grootte hebben die is afgestemd op 1 MB. Wanneer u converteert van een onbewerkte schijf naar VHD, moet u ervoor zorgen dat de grootte van de onbewerkte schijf vóór de conversie een veelvoud van 1 MB is. Lees de volgende stappen voor meer informatie. Zie ook opmerkingen bij de installatie van Linux.
Notitie
Cloud-init >= 21.2 verwijdert de UDF-vereiste. Als de UDF-module echter niet is ingeschakeld, wordt de CD-ROM niet bevestigd tijdens het inrichten, waardoor aangepaste gegevens niet kunnen worden toegepast. Een tijdelijke oplossing is het toepassen van aangepaste gegevens met behulp van gebruikersgegevens. In tegenstelling tot aangepaste gegevens worden gebruikersgegevens niet versleuteld. Zie Indelingen voor gebruikersgegevens voor meer informatie.
- RHEL 7 met Hyper-V-beheer
- RHEL 8+/9+ met Hyper-V-beheer
- RHEL 7 met KVM
- RHEL 8+/9+ met behulp van KVM
- RHEL 7 met VMware
- RHEL 8+/9+ met VMware
- RHEL 7 met kickstart
- RHEL 8+/9+ met kickstart
Selecteer de VIRTUELE machine in Hyper-V-beheer.
Selecteer Verbinding maken om een consolevenster voor de virtuele machine te openen.
Maak of bewerk het
/etc/sysconfig/network
bestand en voeg de volgende tekst toe:NETWORKING=yes HOSTNAME=localhost.localdomain
Maak of bewerk het
/etc/sysconfig/network-scripts/ifcfg-eth0
bestand en voeg de volgende tekst toe:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yes
Notitie
Wanneer u versneld netwerken gebruikt, moet de synthetische interface die wordt gemaakt, worden geconfigureerd om onbeheerd te zijn met behulp van een udev-regel. Met deze actie voorkomt u dat
NetworkManager
hetzelfde IP-adres als de primaire interface wordt toegewezen.Ga als volgende te werk om deze toe te passen:
sudo tee <<EOF /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules > /dev/null # 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
Zorg ervoor dat de netwerkservice begint bij het opstarten:
sudo systemctl enable network
Registreer uw Red Hat-abonnement om de installatie van pakketten vanuit de RHEL-opslagplaats in te schakelen:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Wijzig de kernelstartlijn in uw grub-configuratie om meer kernelparameters voor Azure op te nemen. Als u deze wijziging wilt uitvoeren, opent
/etc/default/grub
u deze in een teksteditor en bewerkt u deGRUB_CMDLINE_LINUX
parameter. Bijvoorbeeld: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
Notitie
Als ENABLE_BLSCFG=false aanwezig is in plaats van
ENABLE_BLSCFG=true
,/etc/default/grub
hulpprogramma's zoals grubedit of gubby, die afhankelijk zijn van de Boot Loader Specification (BLS) voor het beheren van opstartvermeldingen en configuraties, werken mogelijk niet correct in RHEL 8 en 9. AlsENABLE_BLSCFG
deze niet aanwezig is, isfalse
het standaardgedrag.Deze wijziging zorgt er ook voor dat alle consoleberichten naar de eerste seriële poort worden verzonden en interactie mogelijk maakt met de seriële console, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen. Met deze configuratie worden ook de nieuwe naamconventies voor netwerkinterfacekaarten (NIC's) uitgeschakeld.
rhgb quiet crashkernel=auto
Grafische en stille laarzen zijn niet handig in een cloudomgeving waarin u wilt dat alle logboeken naar de seriële poort worden verzonden. U kunt de
crashkernel
geconfigureerde optie desgewenst laten staan. Deze parameter vermindert de hoeveelheid beschikbaar geheugen in de VIRTUELE machine met 128 MB of meer, wat een probleem kan zijn voor kleinere VM-grootten.Nadat u klaar bent met bewerken
/etc/default/grub
, voert u de volgende opdracht uit om de grub-configuratie opnieuw te bouwen:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Notitie
Als u een UEFI-VM uploadt, is
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
de opdracht om grub bij te werken.Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Dit is meestal de standaardinstelling. Wijzig
/etc/ssh/sshd_config
dit om de volgende regel op te nemen:ClientAliveInterval 180
Het WALinuxAgent-pakket,
WALinuxAgent-<version>
is naar de Red Hat-opslagplaats voor extra's gepusht. Schakel de opslagplaats extra's in:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Installeer de Azure Linux-agent
cloud-init
en andere benodigde hulpprogramma's:sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons sudo systemctl enable waagent.service sudo systemctl enable cloud-init.service
Configureren
cloud-init
voor het afhandelen van de inrichting:Configureren
waagent
voorcloud-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
Notitie
Als u een specifieke VM migreert en geen gegeneraliseerde installatiekopieën wilt maken, stelt u deze in
Provisioning.Agent=disabled
voor de/etc/waagent.conf
configuratie.Koppels configureren:
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
Configureer de Azure-gegevensbron:
sudo echo "Allow only Azure datasource, disable fetching network setting via IMDS" sudo tee /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF datasource_list: [ Azure ] datasource: Azure: apply_network_config: False EOF
Als dit is geconfigureerd, verwijdert u het bestaande wisselbestand:
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
Logboekregistratie configureren
cloud-init
:sudo echo "Add console log file" sudo tee <<EOF /etc/cloud/cloud.cfg.d/05_logging.cfg > /dev/null # 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
Configuratie wisselen:
Maak geen wisselruimte op de besturingssysteemschijf.
Voorheen werd de Azure Linux-agent gebruikt om wisselruimte automatisch te configureren met behulp van de lokale resourceschijf die aan de VIRTUELE machine is gekoppeld nadat de VIRTUELE machine is ingericht in Azure. Deze actie wordt nu verwerkt door
cloud-init
. U moet de Linux-agent niet gebruiken om de resourceschijf te formatteren om het wisselbestand te maken. Wijzig de volgende parameters op/etc/waagent.conf
de juiste manier:ResourceDisk.Format=n ResourceDisk.EnableSwap=n
Als u de wissel wilt koppelen, opmaken en maken, kunt u het volgende doen:
Geef deze code door als een
cloud-init
configuratie telkens wanneer u een virtuele machine maakt via aangepaste gegevens. We raden deze methode aan.Gebruik een
cloud-init
instructie die is gebakken in de installatiekopieën die deze stap uitvoeren telkens wanneer de virtuele machine wordt gemaakt.sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf sudo tee /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
Configureer
cloud-init
telemetrie om u te helpen bij het oplossen van problemen met de inrichting:sudo tee >> /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg << EOF # This config enables cloud-init to report provisioning telemetry to aid with troubleshooting Reporting: logging: type: log telemetry: type: hyperv EOF
Als u de registratie van het abonnement ongedaan wilt maken, voert u de volgende opdracht uit:
sudo subscription-manager unregister
Maak de inrichting van de VIRTUELE machine ongedaan en bereid deze voor op inrichting in Azure:
Let op
Als u een specifieke VM migreert en geen gegeneraliseerde installatiekopieën wilt maken, slaat u de inrichtingsstap over. Als u de opdracht
waagent -force -deprovision+user
uitvoert, wordt de bronmachine onbruikbaar. Deze stap is alleen bedoeld om een gegeneraliseerde installatiekopieën te maken.sudo rm -f /var/log/waagent.log sudo cloud-init clean --logs --seed sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo export HISTSIZE=0
Selecteer Actie>afsluiten in Hyper-V-beheer. Uw Linux-VHD is nu klaar om te worden geüpload naar Azure.