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 6.X, 7.X en 8.X. De hypervisors voor voorbereiding die in dit artikel worden behandeld, zijn Hyper-V, op kernel gebaseerde VM (KVM) en VMware.
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.
Hyper-V-beheer
In deze sectie wordt beschreven hoe u een RHEL 6-, RHEL 7- of RHEL 8-VM voorbereidt met Hyper-V-beheer.
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 6 met Hyper-V-beheer
Belangrijk
Op 30 november 2020 bereikte RHEL 6 het einde van de onderhoudsfase. De onderhoudsfase wordt gevolgd door de verlengde levensduurfase. Als RHEL 6 uit de fase Volledig/Onderhoud overstapt, raden we u ten zeerste aan om een upgrade uit te voeren naar RHEL 7, 8 of 9. Als u OP RHEL 6 moet blijven, raden we u aan de RHEL Extended Life Cycle Support-invoegtoepassing toe te voegen.
Selecteer de VIRTUELE machine in Hyper-V-beheer.
Selecteer Verbinding maken om een consolevenster voor de virtuele machine te openen.
In RHEL 6
NetworkManager
kan dit de Azure Linux-agent verstoren. Verwijder dit pakket:sudo rpm -e --nodeps NetworkManager
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
Verplaats (of verwijder) de udev-regels om te voorkomen dat statische regels voor de Ethernet-interface worden gegenereerd. Deze regels veroorzaken problemen wanneer u een VIRTUELE machine kloont in Azure of Hyper-V:
Waarschuwing
Veel v5- en nieuwere VM-grootten vereisen versneld netwerken. Als deze niet is ingeschakeld, wijst NetworkManager hetzelfde IP-adres toe aan alle virtuele functie-interfaces. Als u dubbele IP-adressen wilt voorkomen, moet u deze udev-regel opnemen bij het migreren naar een nieuwere grootte.
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
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 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
Zorg ervoor dat de netwerkservice begint bij het opstarten:
sudo chkconfig network on
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
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-6-server-extras-rpms
Wijzig de kernelstartlijn in uw grub-configuratie om meer kernelparameters voor Azure op te nemen. Als u deze wijziging wilt uitvoeren, opent
/boot/grub/menu.lst
u deze in een teksteditor. Zorg ervoor dat de standaardkernel de volgende parameters bevat:console=ttyS0 earlyprintk=ttyS0
Deze actie zorgt er ook voor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen.
U wordt ook aangeraden de volgende parameters te verwijderen:
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. Deze configuratie kan een probleem zijn voor kleinere VM-grootten.Zorg ervoor dat de SSH-server (Secure Shell) 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
Installeer de Azure Linux-agent:
sudo yum install WALinuxAgent sudo chkconfig waagent on
Als u het WALinuxAgent-pakket installeert, worden de
NetworkManager
enNetworkManager-gnome
pakketten verwijderd als ze nog niet zijn verwijderd in stap 3.Maak geen wisselruimte op de besturingssysteemschijf.
De Azure Linux-agent kan automatisch wisselruimte configureren met behulp van de lokale resourceschijf die is gekoppeld aan de VIRTUELE machine nadat de VIRTUELE machine is ingericht in Azure. De lokale resourceschijf is een tijdelijke schijf en kan worden geleegd als de vm ongedaan is gemaakt. Nadat u de Azure Linux-agent in de vorige stap hebt geïnstalleerd, wijzigt u de volgende parameters op
/etc/waagent.conf
de juiste manier: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.
Registratie van het abonnement ongedaan maken (indien nodig):
sudo subscription-manager unregister
Maak de inrichting van de VIRTUELE machine ongedaan en bereid deze voor op inrichting in Azure:
Notitie
Als u een specifieke VM migreert en geen gegeneraliseerde installatiekopieën wilt maken, slaat u de inrichtingsstap over.
sudo waagent -force -deprovision sudo export HISTSIZE=0
Selecteer Actie>afsluiten in Hyper-V-beheer. Uw Linux-VHD is nu klaar om te worden geüpload naar Azure.
RHEL 7 met Hyper-V-beheer
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 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
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 maken met de seriële console, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen. Met deze configuratie worden ook de nieuwe RHEL 7-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 cat > /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 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
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 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
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 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.
RHEL 8+ met Hyper-V-beheer
Selecteer de VIRTUELE machine in Hyper-V-beheer.
Selecteer Verbinding maken om een consolevenster voor de virtuele machine te openen.
Zorg ervoor dat de Network Manager-service begint bij het opstarten:
sudo systemctl enable NetworkManager.service
Configureer de netwerkinterface om automatisch te starten bij het opstarten en het Dynamic Host Configuration Protocol te gebruiken:
sudo nmcli con mod eth0 connection.autoconnect yes ipv4.method auto
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 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
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 zodat er meer kernelparameters voor Azure worden opgenomen en de seriële console wordt ingeschakeld.
Huidige GRUB-parameters verwijderen:
sudo grub2-editenv - unset kernelopts
Bewerk
/etc/default/grub
in een teksteditor en voeg de volgende parameters toe: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"
Deze wijziging zorgt er ook voor dat alle consoleberichten naar de eerste seriële poort worden verzonden en interactie mogelijk maken met de seriële console, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen. Met deze configuratie worden ook de nieuwe naamconventies voor NIC's uitgeschakeld.
U wordt aangeraden ook de volgende parameters te verwijderen:
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
Voer voor een UEFI-VM de volgende opdracht uit:
sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
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
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=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
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 cat > /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 defaul swapoff /mnt/resource/swapfile rm /mnt/resource/swapfile -f fi
Logboekregistratie configureren
cloud-init
:sudo echo "Add console log file" sudo cat >> /etc/cloud/cloud.cfg.d/05_logging.cfg <<EOF # This tells cloud-init to redirect its stdout and stderr to # 'tee -a /var/log/cloud-init-output.log' so the user can see output # there without needing to look on the console. output: {all: '| tee -a /var/log/cloud-init-output.log'} EOF
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 en het wisselbestand te maken. Wijzig de volgende parameters op/etc/waagent.conf
de juiste manier:ResourceDisk.Format=n ResourceDisk.EnableSwap=n
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 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
Als u de registratie van het abonnement ongedaan wilt maken, voert u de volgende opdracht uit:
sudo subscription-manager unregister
Voer de volgende opdrachten uit om de inrichting van de VIRTUELE machine ongedaan te maken en deze voor te bereiden voor inrichting in 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
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.Selecteer Actie>afsluiten in Hyper-V-beheer. Uw Linux-VHD is nu klaar om te worden geüpload naar Azure.
KVM
In deze sectie wordt beschreven hoe u KVM gebruikt om een RHEL 6 - of RHEL 7-distributie voor te bereiden om te uploaden naar Azure.
RHEL 6 met KVM
Belangrijk
Op 30 november 2020 bereikte RHEL 6 het einde van de onderhoudsfase. De onderhoudsfase wordt gevolgd door de verlengde levensduurfase. Als RHEL 6 uit de fase Volledig/Onderhoud overstapt, raden we u ten zeerste aan om een upgrade uit te voeren naar RHEL 7, 8 of 9. Als u OP RHEL 6 moet blijven, raden we u aan de RHEL Extended Life Cycle Support-invoegtoepassing toe te voegen.
Download de KVM-afbeelding van RHEL 6 van de Red Hat-website.
Stel een hoofdwachtwoord in.
Genereer een versleuteld wachtwoord en kopieer de uitvoer van de opdracht:
sudo openssl passwd -1 changeme
Stel een hoofdwachtwoord in met gastvis:
sudo guestfish --rw -a <image-name> > <fs> run > <fs> list-filesystems > <fs> mount /dev/sda1 / > <fs> vi /etc/shadow > <fs> exit
Wijzig het tweede veld van de hoofdgebruiker in
!!
het versleutelde wachtwoord.Maak een VIRTUELE machine in KVM op basis van de qcow2-installatiekopieën. Stel het schijftype in op qcow2 en stel het apparaatmodel van de virtuele netwerkinterface in op virtio. Start vervolgens de virtuele machine en meld u aan als hoofdmap.
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
Verplaats (of verwijder) de udev-regels om te voorkomen dat statische regels voor de Ethernet-interface worden gegenereerd. Deze regels veroorzaken problemen wanneer u een VIRTUELE machine kloont in Azure of 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
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 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
Zorg ervoor dat de netwerkservice begint bij het opstarten:
sudo chkconfig network on
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 configuratie wilt uitvoeren, opent
/boot/grub/menu.lst
u deze in een teksteditor. Zorg ervoor dat de standaardkernel de volgende parameters bevat:console=ttyS0 earlyprintk=ttyS0
Deze stap zorgt er ook voor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen.
U wordt ook aangeraden de volgende parameters te verwijderen:
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.Hyper-V-modules toevoegen aan initramfs:
Bewerk
/etc/dracut.conf
en voeg de volgende inhoud toe:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Bouw initramfs opnieuw:
sudo dracut -f -v
Verwijderen
cloud-init
:sudo yum remove cloud-init
Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten:
sudo chkconfig sshd on
Wijzig
/etc/ssh/sshd_config
dit om de volgende regels op te nemen:PasswordAuthentication yes 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-6-server-extras-rpms
Installeer de Azure Linux-agent:
sudo yum install WALinuxAgent sudo chkconfig waagent on
De Azure Linux-agent kan automatisch wisselruimte configureren met behulp van de lokale resourceschijf die is gekoppeld aan de VIRTUELE machine nadat de VIRTUELE machine is ingericht in Azure. De lokale resourceschijf is een tijdelijke schijf en kan worden geleegd als de vm ongedaan is gemaakt. Nadat u de Azure Linux-agent in de vorige stap hebt geïnstalleerd, wijzigt u de volgende parameters op
/etc/waagent.conf
de juiste manier: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.
Registratie van het abonnement ongedaan maken (indien nodig):
sudo subscription-manager unregister
Voer de volgende opdrachten uit om de inrichting van de VIRTUELE machine ongedaan te maken en deze voor te bereiden voor inrichting in Azure.
Notitie
Als u een specifieke VM migreert en geen gegeneraliseerde installatiekopieën wilt maken, slaat u de inrichtingsstap over.
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
Sluit de VIRTUELE machine af in KVM.
Converteer de qcow2-installatiekopieën naar de VHD-indeling.
Notitie
Er is een bekende fout in qemu-img-versies >=2.2.1 die resulteert in een onjuist opgemaakte VHD. Het probleem is opgelost in QEMU 2.6. U wordt aangeraden qemu-img 2.2.0 of lager te gebruiken of bij te werken naar 2.6 of hoger. Zie deze website voor meer informatie.
Converteer eerst de afbeelding naar onbewerkte indeling:
sudo qemu-img convert -f qcow2 -O raw rhel-6.9.qcow2 rhel-6.9.raw
Zorg ervoor dat de grootte van de onbewerkte afbeelding is uitgelijnd met 1 MB. Als u dat niet doet, rondt u de grootte af om uit te lijnen met 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
Converteer de onbewerkte schijf naar een VHD met een vaste grootte:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd
Of neem met qemu versie 2.6+ de
force_size
optie op:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-6.9.raw rhel-6.9.vhd
RHEL 7 met KVM
Download de KVM-afbeelding van RHEL 7 op de Website van Red Hat. In deze procedure wordt RHEL 7 gebruikt als voorbeeld.
Stel een hoofdwachtwoord in.
Genereer een versleuteld wachtwoord en kopieer de uitvoer van de opdracht:
sudo openssl passwd -1 changeme
Stel een hoofdwachtwoord in met gastvis:
sudo guestfish --rw -a <image-name> > <fs> run > <fs> list-filesystems > <fs> mount /dev/sda1 / > <fs> vi /etc/shadow > <fs> exit
Wijzig het tweede veld van de hoofdgebruiker in
!!
het versleutelde wachtwoord.Maak een VIRTUELE machine in KVM op basis van de qcow2-installatiekopieën. Stel het schijftype in op qcow2 en stel het apparaatmodel van de virtuele netwerkinterface in op virtio. Start vervolgens de virtuele machine en meld u aan als hoofdmap.
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 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
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 configuratie wilt uitvoeren, opent
/etc/default/grub
u deze in een teksteditor en bewerkt u deGRUB_CMDLINE_LINUX
parameter. Voorbeeld:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
Deze opdracht zorgt er ook voor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen. Met de opdracht worden ook de nieuwe RHEL 7-naamconventies voor NIC's uitgeschakeld. U wordt ook aangeraden de volgende parameters te verwijderen:
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
Hyper-V-modules toevoegen aan initramfs.
Inhoud bewerken
/etc/dracut.conf
en toevoegen:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Bouw initramfs opnieuw:
sudo dracut -f -v
Verwijderen
cloud-init
:sudo yum remove cloud-init
Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten:
sudo systemctl enable sshd
Wijzig
/etc/ssh/sshd_config
dit om de volgende regels op te nemen:PasswordAuthentication yes 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:
sudo yum install WALinuxAgent
Schakel de
waagent
service in:sudo systemctl enable waagent.service
Installeer
cloud-init
.Volg de stappen in 'Een RHEL 7-VM voorbereiden vanuit Hyper-V-beheer', stap 12, 'Installeren
cloud-init
om de inrichting af te handelen'.Configuratie wisselen:
- Maak geen wisselruimte op de besturingssysteemschijf.
- Volg de stappen in 'Een RHEL 7-VM voorbereiden vanuit Hyper-V-beheer', stap 13, 'Configuratie wisselen'.
Registratie van het abonnement ongedaan maken (indien nodig):
sudo subscription-manager unregister
De inrichting ongedaan maken door de stappen te volgen in 'Een RHEL 7-VM voorbereiden vanuit Hyper-V-beheer', stap 15, 'Deprovision'.
Sluit de VIRTUELE machine af in KVM.
Converteer de qcow2-installatiekopieën naar de VHD-indeling.
Notitie
Er is een bekende fout in qemu-img-versies >=1.1.1 die resulteert in een onjuist opgemaakte VHD. Het probleem is opgelost in QEMU 1.6. U wordt aangeraden qemu-img 1.1.0 of lager te gebruiken of bij te werken naar 1,6 of hoger. Zie deze website voor meer informatie.
Converteer eerst de afbeelding naar onbewerkte indeling:
sudo qemu-img convert -f qcow2 -O raw rhel-7.4.qcow2 rhel-7.4.raw
Zorg ervoor dat de grootte van de onbewerkte afbeelding is uitgelijnd met 1 MB. Als u dat niet doet, rondt u de grootte af om uit te lijnen met 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
Converteer de onbewerkte schijf naar een VHD met een vaste grootte:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
Of neem met qemu versie 1.6+ de
force_size
optie op:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
VMware
In deze sectie wordt beschreven hoe u een RHEL 6 - of RHEL 7-distributie van VMware voorbereidt.
Vereisten
In deze sectie wordt ervan uitgegaan dat u al een RHEL-VM in VMware hebt geïnstalleerd. Zie de installatiehandleiding van het VMware-gastbesturingssysteem voor informatie over het installeren van een besturingssysteem in VMware.
- Wanneer u het Linux-besturingssysteem installeert, wordt u aangeraden standaardpartities te gebruiken in plaats van LVM. Dit is vaak de standaardinstelling voor veel installaties. Als u partities gebruikt, voorkomt u dat de LVM-naam conflicteert met een gekloonde VM, met name als een besturingssysteemschijf ooit aan een andere VIRTUELE machine moet worden gekoppeld om problemen op te lossen. LVM of RAID kan desgewenst worden gebruikt op gegevensschijven.
- Configureer geen wisselpartitie op de schijf van het besturingssysteem. U kunt de Linux-agent configureren om een wisselbestand te maken op de tijdelijke resourceschijf. Lees de volgende stappen voor meer informatie.
- Wanneer u de VHD maakt, selecteert u Virtuele schijf opslaan als één bestand.
RHEL 6 met VMware
Belangrijk
Op 30 november 2020 bereikte RHEL 6 het einde van de onderhoudsfase. De onderhoudsfase wordt gevolgd door de verlengde levensduurfase. Als RHEL 6 overstapt van de fase Volledig/Onderhoud, raden we u ten zeerste aan om een upgrade uit te voeren naar RHEL 7 of 8 of 9. Als u OP RHEL 6 moet blijven, raden we u aan de RHEL Extended Life Cycle Support-invoegtoepassing toe te voegen.
In RHEL 6
NetworkManager
kan dit de Azure Linux-agent verstoren. Verwijder dit pakket:sudo rpm -e --nodeps NetworkManager
Maak een bestand met de naam netwerk in de
/etc/sysconfig/
map met de volgende tekst: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
Verplaats (of verwijder) de udev-regels om te voorkomen dat statische regels voor de Ethernet-interface worden gegenereerd. Deze regels veroorzaken problemen wanneer u een VIRTUELE machine kloont in Azure of 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
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 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
Zorg ervoor dat de netwerkservice begint bij het opstarten:
sudo chkconfig network on
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
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-6-server-extras-rpms
Wijzig de kernelstartlijn in uw grub-configuratie om meer kernelparameters voor Azure op te nemen. Als u deze stap wilt uitvoeren, opent
/etc/default/grub
u deze in een teksteditor en bewerkt u deGRUB_CMDLINE_LINUX
parameter. Voorbeeld:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0"
Deze stap zorgt er ook voor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen. U wordt ook aangeraden de volgende parameters te verwijderen:
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.Hyper-V-modules toevoegen aan initramfs:
Bewerk
/etc/dracut.conf
en voeg de volgende inhoud toe:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Bouw initramfs opnieuw:
sudo dracut -f -v
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
Installeer de Azure Linux-agent:
sudo yum install WALinuxAgent sudo chkconfig waagent on
Maak geen wisselruimte op de besturingssysteemschijf.
De Azure Linux-agent kan automatisch wisselruimte configureren met behulp van de lokale resourceschijf die is gekoppeld aan de VIRTUELE machine nadat de VIRTUELE machine is ingericht in Azure. De lokale resourceschijf is een tijdelijke schijf en kan worden geleegd als de vm ongedaan is gemaakt. Nadat u de Azure Linux-agent in de vorige stap hebt geïnstalleerd, wijzigt u de volgende parameters op
/etc/waagent.conf
de juiste manier: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.
Registratie van het abonnement ongedaan maken (indien nodig):
sudo subscription-manager unregister
Voer de volgende opdrachten uit om de inrichting van de VIRTUELE machine ongedaan te maken en deze voor te bereiden voor inrichting in Azure:
Notitie
Als u een specifieke VM migreert en geen gegeneraliseerde installatiekopieën wilt maken, slaat u de inrichtingsstap over.
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
Sluit de virtuele machine af en converteer het VMDK-bestand naar een VHD-bestand.
Notitie
Er is een bekende fout in qemu-img-versies >=2.2.1 die resulteert in een onjuist opgemaakte VHD. Het probleem is opgelost in QEMU 2.6. U wordt aangeraden qemu-img 2.2.0 of lager te gebruiken of bij te werken naar 2.6 of hoger. Zie deze website voor meer informatie.
Converteer eerst de afbeelding naar onbewerkte indeling:
sudo qemu-img convert -f vmdk -O raw rhel-6.9.vmdk rhel-6.9.raw
Zorg ervoor dat de grootte van de onbewerkte afbeelding is uitgelijnd met 1 MB. Als u dat niet doet, rondt u de grootte af om uit te lijnen met 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
Converteer de onbewerkte schijf naar een VHD met een vaste grootte:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd
Of neem met qemu versie 2.6+ de
force_size
optie op:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-6.9.raw rhel-6.9.vhd
RHEL 7 met VMware
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 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
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. Voorbeeld:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
Deze configuratie zorgt er ook voor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen. Ook worden de nieuwe RHEL 7-naamconventies voor NIC's uitgeschakeld. Daarnaast raden we u aan de volgende parameters te verwijderen:
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
Hyper-V-modules toevoegen aan initramfs:
Bewerken
/etc/dracut.conf
, inhoud toevoegen:add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Bouw initramfs opnieuw:
sudo dracut -f -v
Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Deze instelling 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:
sudo yum install WALinuxAgent sudo systemctl enable waagent.service
cloud-init
installeren:Volg de stappen in 'Een RHEL 7-VM voorbereiden vanuit Hyper-V-beheer', stap 12, 'Installeren
cloud-init
om de inrichting af te handelen'.Configuratie wisselen:
- Maak geen wisselruimte op de besturingssysteemschijf.
- Volg de stappen in 'Een RHEL 7-VM voorbereiden vanuit Hyper-V-beheer', stap 13, 'Configuratie wisselen'.
Als u de registratie van het abonnement ongedaan wilt maken, voert u de volgende opdracht uit:
sudo subscription-manager unregister
De inrichting ongedaan maken door de stappen te volgen in 'Een RHEL 7-VM voorbereiden vanuit Hyper-V-beheer', stap 15, 'Deprovision'.
Sluit de VIRTUELE machine af en converteer het VMDK-bestand naar de VHD-indeling.
Notitie
Er is een bekende fout in qemu-img-versies >=2.2.1 die resulteert in een onjuist opgemaakte VHD. Het probleem is opgelost in QEMU 2.6. U wordt aangeraden qemu-img 2.2.0 of lager te gebruiken of bij te werken naar 2.6 of hoger. Zie deze website voor meer informatie.
Converteer eerst de afbeelding naar onbewerkte indeling:
sudo qemu-img convert -f vmdk -O raw rhel-7.4.vmdk rhel-7.4.raw
Zorg ervoor dat de grootte van de onbewerkte afbeelding is uitgelijnd met 1 MB. Als u dat niet doet, rondt u de grootte af om uit te lijnen met 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
Converteer de onbewerkte schijf naar een VHD met een vaste grootte:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
Of neem met qemu versie 2.6+ de
force_size
optie op:sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
Kickstart-bestand
In deze sectie wordt beschreven hoe u een RHEL 7-distributie van een ISO voorbereidt met behulp van een kickstartbestand.
RHEL 7 uit een kickstart-bestand
Maak een kickstartbestand met de volgende inhoud en sla het bestand op. Zie de Kickstart-installatiehandleiding voor meer informatie over de installatie van kickstarts.
# 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
Plaats het kickstartbestand waar het installatiesysteem er toegang toe heeft.
Maak in Hyper-V-beheer een nieuwe VIRTUELE machine. Selecteer op de pagina Virtuele harde schijf verbinden de optie Een virtuele harde schijf later koppelen en voltooi de wizard Nieuwe virtuele machine .
Open de VM-instellingen:
Koppel een nieuwe VHD aan de virtuele machine. Zorg ervoor dat u VHD-indeling en vaste grootte selecteert.
Bevestig de installatie-ISO aan het dvd-station.
Stel het BIOS in om vanaf cd op te starten.
Start de virtuele machine. Wanneer de installatiehandleiding wordt weergegeven, selecteert u de Tab-toets om de opstartopties te configureren.
Voer
inst.ks=<the location of the kickstart file>
aan het einde van de opstartopties in en selecteer de Enter-toets.Wacht tot de installatie is voltooid. Wanneer deze is voltooid, wordt de virtuele machine automatisch afgesloten. Uw Linux-VHD is nu klaar om te worden geüpload naar Azure.
Bekende problemen
Het volgende probleem is bekend.
Het Hyper-V-stuurprogramma kan niet worden opgenomen in de eerste RAM-schijf wanneer u een niet-Hyper-V-hypervisor gebruikt
In sommige gevallen bevatten Linux-installatieprogramma's mogelijk niet de stuurprogramma's voor Hyper-V in de eerste RAM-schijf (initrd of initramfs) tenzij Linux detecteert dat deze wordt uitgevoerd in een Hyper-V-omgeving.
Wanneer u een ander virtualisatiesysteem (bijvoorbeeld VirtualBox of Xen) gebruikt om uw Linux-installatiekopieën voor te bereiden, moet u mogelijk initrd opnieuw bouwen om ervoor te zorgen dat ten minste de hv_vmbus
modules en hv_storvsc
kernelmodules beschikbaar zijn op de eerste RAM-schijf. Dit probleem is bekend, ten minste op systemen die zijn gebaseerd op de upstream Red Hat-distributie.
U kunt dit probleem oplossen door Hyper-V-modules toe te voegen aan initramfs en opnieuw te bouwen:
Bewerk /etc/dracut.conf
en voeg de volgende inhoud toe:
add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
Bouw initramfs opnieuw:
sudo dracut -f -v
Zie Herbouwen initramfs voor meer informatie.
Gerelateerde inhoud
- U kunt nu uw RHEL-VHD gebruiken om nieuwe VM's te maken in Azure. Als dit de eerste keer is dat u het VHD-bestand uploadt naar Azure, raadpleegt u Een Virtuele Linux-machine maken vanaf een aangepaste schijf.
- Zie de Red Hat-website voor meer informatie over de hypervisors die zijn gecertificeerd voor het uitvoeren van RHEL.
- Ga naar de documentatiepagina voor Bring Your Own Subscription voor meer informatie over het gebruik van RHEL BYOS-installatiekopieën die gereed zijn voor productie.