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 RhEL-machine (Red Hat Enterprise Linux) 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 virtuele machine (KVM) en VMware. Zie de Website van Red Hat Cloud Access en RHEL uitvoeren in Azure voor meer informatie over geschiktheidsvereisten voor deelname aan het Cloud Access-programma van Red Hat. Zie Azure Image Builder voor manieren om het bouwen van RHEL-installatiekopieën te automatiseren.
Notitie
Houd rekening met versies die end-of-life (EOL) zijn en niet langer worden ondersteund door Redhat. Geüploade afbeeldingen die zich op of buiten EOL bevinden, worden op redelijke basis van zakelijke inspanningen ondersteund. Koppeling naar de productlevenscyclus van Redhat
Hyper-V-beheer
In deze sectie wordt beschreven hoe u een virtuele RHEL 6-, RHEL 7- of RHEL 8-machine 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 cmdlet convert-vhd 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 (BIOS boot) & Gen2 (UEFI boot) Virtuele machines.
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 echter aan standaardpartities op de besturingssysteemschijf te gebruiken in plaats van LVM. Deze procedure voorkomt conflicten met de LVM-naam met gekloonde virtuele machines, met name als u ooit een besturingssysteemschijf moet koppelen aan een andere identieke virtuele machine voor probleemoplossing. Zie de LVM - en RAID-documentatie .
Kernelondersteuning voor het koppelen van UDF-bestandssystemen (Universal Disk Format) is vereist. Bij het opstarten in Azure geeft de door UDF opgemaakte 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 dat dit het inrichten mislukt.
Configureer geen wisselpartitie op de schijf van het besturingssysteem. Meer informatie hierover vindt u in de volgende stappen.
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. Meer informatie vindt u in de onderstaande stappen. Zie ook Opmerkingen bij de Installatie van Linux voor meer informatie.
Notitie
Cloud-init >= 21.2 verwijdert de udf-vereiste. Zonder dat de udf-module is ingeschakeld, wordt de cdrom niet bevestigd tijdens het inrichten, waardoor aangepaste gegevens niet kunnen worden toegepast. Een tijdelijke oplossing hiervoor is het toepassen van aangepaste gegevens met behulp van gebruikersgegevens. In tegenstelling tot aangepaste gegevens worden gebruikersgegevens echter niet versleuteld. https://cloudinit.readthedocs.io/en/latest/topics/format.html
RHEL 6 met Hyper-V-beheer
Belangrijk
Vanaf 30 november 2020 bereikt Red Hat Enterprise Linux 6 het einde van de onderhoudsfase. De onderhoudsfase wordt gevolgd door de verlengde levensduurfase. Omdat Red Hat Enterprise Linux 6 overstapt van de fase Volledig/Onderhoud, raden we u ten zeerste aan een upgrade uit te voeren naar Red Hat Enterprise Linux 7, 8 of 9. Als klanten Red Hat Enterprise Linux 6 moeten blijven gebruiken, raden we u aan de ELS-invoegtoepassing (Extended Life Cycle Support) voor Red Hat Enterprise Linux toe te voegen.
Selecteer in Hyper-V-beheer de virtuele machine.
Klik op Verbinding maken om een consolevenster voor de virtuele machine te openen.
In RHEL 6 kan NetworkManager de Azure Linux-agent verstoren. Verwijder dit pakket door de volgende opdracht uit te voeren:
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 Microsoft 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 (AN) gebruikt, moet ik de synthetische interface die wordt gemaakt, worden geconfigureerd om onbeheerd te zijn met behulp van een udev-regel. Hierdoor voorkomt u dat NetworkManager hetzelfde IP-adres toewijst als de primaire interface.
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=="add", ENV{NM_UNMANAGED}="1"
EOF
Zorg ervoor dat de netwerkservice bij het opstarten wordt gestart door de volgende opdracht uit te voeren:
sudo chkconfig network on
Registreer uw Red Hat-abonnement om de installatie van pakketten vanuit de RHEL-opslagplaats in te schakelen door de volgende opdracht uit te voeren:
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 door de volgende opdracht uit te voeren:sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
Wijzig de kernelstartregel in uw grub-configuratie om extra kernelparameters voor Azure op te nemen. Als u deze wijziging wilt uitvoeren, opent
/boot/grub/menu.lst
u een teksteditor en zorgt u ervoor dat de standaardkernel de volgende parameters bevat:console=ttyS0 earlyprintk=ttyS0
Dit zorgt er ook voor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen.
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 alle logboeken naar de seriële poort moeten worden verzonden. U kunt desgewenst de
crashkernel
geconfigureerde optie laten staan. Houd er rekening mee dat deze parameter de hoeveelheid beschikbaar geheugen in de virtuele machine met 128 MB of meer vermindert. Deze configuratie kan problematisch zijn voor kleinere grootten van virtuele machines.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 om de volgende regel op te nemen:
ClientAliveInterval 180
Installeer de Azure Linux-agent door de volgende opdracht uit te voeren:
sudo yum install WALinuxAgent sudo chkconfig waagent on
Als u het WALinuxAgent-pakket installeert, worden de NetworkManager- en NetworkManager-kabouterpakketten 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. Houd er rekening mee dat de lokale resourceschijf een tijdelijke schijf is en dat deze mogelijk wordt geleegd als de virtuele machine is gedeprovisioneerd. Nadat u de Azure Linux-agent in de vorige stap hebt geïnstalleerd, wijzigt u de volgende parameters in /etc/waagent.conf op 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.
Maak de registratie van het abonnement ongedaan (indien nodig) door de volgende opdracht uit te voeren:
sudo subscription-manager unregister
Voer de volgende opdrachten uit om de inrichting van de virtuele machine ongedaan te maken en deze voor te bereiden op inrichting in Azure:
Notitie
Als u een specifieke virtuele machine migreert en geen gegeneraliseerde installatiekopieën wilt maken, slaat u de inrichtingsstap over.
sudo waagent -force -deprovision
sudo export HISTSIZE=0
- Klik op 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 in Hyper-V-beheer de virtuele machine.
Klik op 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
Zorg ervoor dat de netwerkservice bij het opstarten wordt gestart door de volgende opdracht uit te voeren:
sudo systemctl enable network
Registreer uw Red Hat-abonnement om de installatie van pakketten vanuit de RHEL-opslagplaats in te schakelen door de volgende opdracht uit te voeren:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Wijzig de kernelstartregel in uw grub-configuratie om extra 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
/etc/default/grub
plaats van 'ENABLE_BLSCFG=true'-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. Houd er rekening mee dat als ENABLE_BLSCFG niet aanwezig is, het standaardgedrag 'false' is.Dit 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 NIC's uitgeschakeld.
rhgb quiet crashkernel=auto
Grafische en stille laarzen zijn niet handig in een cloudomgeving waarin alle logboeken naar de seriële poort moeten worden verzonden. U kunt desgewenst de
crashkernel
geconfigureerde optie laten staan. Houd er rekening mee dat deze parameter de hoeveelheid beschikbaar geheugen in de virtuele machine met 128 MB of meer vermindert, wat mogelijk problematisch is voor kleinere grootten van virtuele machines.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 VM met UEFI 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 door de volgende opdracht uit te voeren:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Installeer de Azure Linux-agent, cloud-init en andere benodigde hulpprogramma's door de volgende opdracht uit te voeren:
sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons sudo systemctl enable waagent.service sudo systemctl enable cloud-init.service
Configureer cloud-init voor het afhandelen van de inrichting:
- Waagent configureren voor cloud-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 virtuele machine migreert en geen gegeneraliseerde installatiekopieën wilt maken, stelt u deze in
Provisioning.Agent=disabled
op 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
- Azure-gegevensbron configureren:
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 een bestaand 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
- Cloud-init-logboekregistratie configureren:
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 is gekoppeld aan de virtuele machine nadat de virtuele machine is ingericht in Azure. Dit wordt nu echter 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 koppelen, opmaken en wisselen wilt maken, kunt u het volgende doen:
Geef deze door als een cloud-init-configuratie telkens wanneer u een virtuele machine maakt via customdata. Dit is de aanbevolen methode.
Gebruik een cloud-init-instructie die is gebakken in de installatiekopieën die dit doen 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
Inrichting ongedaan maken
Voer de volgende opdrachten uit om de inrichting van de virtuele machine ongedaan te maken en deze voor te bereiden op inrichting in Azure:
Let op
Als u een specifieke virtuele machine 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 gemaakt. 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
Klik op 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 in Hyper-V-beheer de virtuele machine.
Klik op Verbinding maken om een consolevenster voor de virtuele machine te openen.
Zorg ervoor dat de Network Manager-service wordt gestart bij het opstarten door de volgende opdracht uit te voeren:
sudo systemctl enable NetworkManager.service
Configureer de netwerkinterface om automatisch te starten bij het opstarten en DHCP te gebruiken:
sudo nmcli con mod eth0 connection.autoconnect yes ipv4.method auto
Registreer uw Red Hat-abonnement om de installatie van pakketten vanuit de RHEL-opslagplaats in te schakelen door de volgende opdracht uit te voeren:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Wijzig de kernel-opstartlijn in uw grub-configuratie om extra kernelparameters voor Azure op te nemen en de seriële console in te schakelen.
- 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"
Dit 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.
- 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 alle logboeken naar de seriële poort moeten worden verzonden. U kunt desgewenst de
crashkernel
geconfigureerde optie laten staan. Houd er rekening mee dat deze parameter de hoeveelheid beschikbaar geheugen in de virtuele machine met 128 MB of meer vermindert, wat mogelijk problematisch is voor kleinere grootten van virtuele machines.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 door de volgende opdracht uit te voeren:
sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons sudo systemctl enable waagent.service sudo systemctl enable cloud-init.service
Configureer cloud-init voor het afhandelen van de inrichting:
- Waagent configureren voor cloud-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 virtuele machine migreert en geen gegeneraliseerde installatiekopieën wilt maken, stelt
Provisioning.Agent=disabled
u deze in op 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
- Azure-gegevensbron configureren:
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 een bestaand 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
- Cloud-init-logboekregistratie configureren:
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
Wisselconfiguratie 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 is gekoppeld aan de virtuele machine nadat de virtuele machine is ingericht in Azure. Dit wordt nu echter 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
Geef deze door als een cloud-init-configuratie telkens wanneer u een virtuele machine maakt via customdata. Dit is de aanbevolen methode.
Gebruik een cloud-init-instructie die is gebakken in de installatiekopieën die dit doen 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
Inrichting ongedaan maken
Voer de volgende opdrachten uit om de inrichting van de virtuele machine ongedaan te maken en deze voor te bereiden op 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 virtuele machine 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 gemaakt. Deze stap is alleen bedoeld om een gegeneraliseerde installatiekopieën te maken.Klik op 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
Vanaf 30 november 2020 bereikt Red Hat Enterprise Linux 6 het einde van de onderhoudsfase. De onderhoudsfase wordt gevolgd door de verlengde levensduurfase. Omdat Red Hat Enterprise Linux 6 overstapt van de fase Volledig/Onderhoud, raden we u ten zeerste aan een upgrade uit te voeren naar Red Hat Enterprise Linux 7, 8 of 9. Als klanten Red Hat Enterprise Linux 6 moeten blijven gebruiken, raden we u aan de ELS-invoegtoepassing (Extended Life Cycle Support) voor Red Hat Enterprise Linux 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 van '!!' 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 root.
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 (AN) gebruikt, moet ik de synthetische interface die wordt gemaakt, worden geconfigureerd om onbeheerd te zijn met behulp van een udev-regel. Hierdoor voorkomt u dat NetworkManager hetzelfde IP-adres toewijst als de primaire interface.
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=="add", ENV{NM_UNMANAGED}="1"
EOF
Zorg ervoor dat de netwerkservice bij het opstarten wordt gestart door de volgende opdracht uit te voeren:
sudo chkconfig network on
Registreer uw Red Hat-abonnement om de installatie van pakketten vanuit de RHEL-opslagplaats in te schakelen door de volgende opdracht uit te voeren:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Wijzig de kernelstartregel in uw grub-configuratie om extra kernelparameters voor Azure op te nemen. Als u deze configuratie wilt uitvoeren, opent
/boot/grub/menu.lst
u deze in een teksteditor en zorgt u ervoor dat de standaardkernel de volgende parameters bevat:console=ttyS0 earlyprintk=ttyS0
Dit zorgt er ook voor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen.
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 alle logboeken naar de seriële poort moeten worden verzonden. U kunt desgewenst de
crashkernel
geconfigureerde optie laten staan. Houd er rekening mee dat deze parameter de hoeveelheid beschikbaar geheugen in de virtuele machine met 128 MB of meer vermindert, wat mogelijk problematisch is voor kleinere grootten van virtuele machines.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
Cloud-init verwijderen:
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 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 door de volgende opdracht uit te voeren:sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
Installeer de Azure Linux-agent door de volgende opdracht uit te voeren:
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 inrichting van de virtuele machine ongedaan wordt gemaakt. Nadat u de Azure Linux-agent in de vorige stap hebt geïnstalleerd, wijzigt u de volgende parameters in /etc/waagent.conf op 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.
Maak de registratie van het abonnement ongedaan (indien nodig) door de volgende opdracht uit te voeren:
sudo subscription-manager unregister
Voer de volgende opdrachten uit om de inrichting van de virtuele machine ongedaan te maken en deze voor te bereiden op inrichting in Azure:
Notitie
Als u een specifieke virtuele machine 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 in KVM af.
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. Het wordt aanbevolen om qemu-img 2.2.0 of lager te gebruiken of bij te werken naar 2.6 of hoger. Naslaginformatie: https://bugs.launchpad.net/qemu/+bug/1490611.
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 vaste grootte:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd
Of met qemu versie 2.6+ kunt u de
force_size
optie opnemen: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 van '!!' 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 root.
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
Zorg ervoor dat de netwerkservice bij het opstarten wordt gestart door de volgende opdracht uit te voeren:
sudo systemctl enable network
Registreer uw Red Hat-abonnement om de installatie van pakketten vanuit de RHEL-opslagplaats in te schakelen door de volgende opdracht uit te voeren:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Wijzig de kernelstartregel in uw grub-configuratie om extra 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. 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 alle logboeken naar de seriële poort moeten worden verzonden. U kunt desgewenst de
crashkernel
geconfigureerde optie laten staan. Houd er rekening mee dat deze parameter de hoeveelheid beschikbaar geheugen in de virtuele machine met 128 MB of meer vermindert, wat mogelijk problematisch is voor kleinere grootten van virtuele machines.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
Cloud-init verwijderen:
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 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 door de volgende opdracht uit te voeren:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Installeer de Azure Linux-agent door de volgende opdracht uit te voeren:
sudo yum install WALinuxAgent
Schakel de waagent-service in:
sudo systemctl enable waagent.service
Installeer cloud-init. Volg de stappen in 'Een virtuele RHEL 7-machine voorbereiden vanuit Hyper-V-beheer', stap 12, 'Cloud-init installeren om de inrichting af te handelen'.
Configuratie wisselen
Maak geen wisselruimte op de besturingssysteemschijf. Volg de stappen in 'Een virtuele RHEL 7-machine voorbereiden vanuit Hyper-V-beheer', stap 13, 'Configuratie wisselen'
Maak de registratie van het abonnement ongedaan (indien nodig) door de volgende opdracht uit te voeren:
sudo subscription-manager unregister
Inrichting ongedaan maken
Volg de stappen in 'Een virtuele RHEL 7-machine voorbereiden vanuit Hyper-V-beheer', stap 15, 'Deprovision'
Sluit de virtuele machine in KVM af.
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. Het wordt aanbevolen om qemu-img 2.2.0 of lager te gebruiken of bij te werken naar 2.6 of hoger. Naslaginformatie: https://bugs.launchpad.net/qemu/+bug/1490611.
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 vaste grootte:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
Of met qemu versie 2.6+ kunt u de
force_size
optie opnemen: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 virtuele RHEL-machine in VMware hebt geïnstalleerd. Zie de installatiehandleiding voor VMware-gastbesturingssystemen voor meer 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. Dit voorkomt conflicten met de LVM-naam met gekloonde virtuele machine, met name als een besturingssysteemschijf ooit moet worden gekoppeld aan een andere virtuele machine voor probleemoplossing. LVM of RAID kan indien gewenst 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. U vindt hier meer informatie over in de volgende stappen.
- Wanneer u de virtuele harde schijf maakt, selecteert u Virtuele schijf opslaan als één bestand.
RHEL 6 met VMware
Belangrijk
Vanaf 30 november 2020 bereikt Red Hat Enterprise Linux 6 het einde van de onderhoudsfase. De onderhoudsfase wordt gevolgd door de verlengde levensduurfase. Omdat Red Hat Enterprise Linux 6 overstapt van de volledige/onderhoudsfasen, wordt het sterk aanbevolen om een upgrade uit te voeren naar Red Hat Enterprise Linux 7 of 8 of 9. Als klanten Red Hat Enterprise Linux 6 moeten blijven gebruiken, is het raadzaam om de invoegtoepassing Red Hat Enterprise Linux Extended Life Cycle Support (ELS) toe te voegen.
In RHEL 6 kan NetworkManager de Azure Linux-agent verstoren. Verwijder dit pakket door de volgende opdracht uit te voeren:
sudo rpm -e --nodeps NetworkManager
Maak een bestand met de naam netwerk in de map /etc/sysconfig/ die de volgende tekst bevat:
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 (AN) gebruikt, moet ik de synthetische interface die wordt gemaakt, worden geconfigureerd om onbeheerd te zijn met behulp van een udev-regel. Hierdoor voorkomt u dat NetworkManager hetzelfde IP-adres toewijst als de primaire interface.
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=="add", ENV{NM_UNMANAGED}="1"
EOF
Zorg ervoor dat de netwerkservice bij het opstarten wordt gestart door de volgende opdracht uit te voeren:
sudo chkconfig network on
Registreer uw Red Hat-abonnement om de installatie van pakketten vanuit de RHEL-opslagplaats in te schakelen door de volgende opdracht uit te voeren:
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 door de volgende opdracht uit te voeren:sudo subscription-manager repos --enable=rhel-6-server-extras-rpms
Wijzig de kernelstartregel in uw grub-configuratie om extra kernelparameters voor Azure op te nemen. U doet dit door in een teksteditor te openen
/etc/default/grub
en deGRUB_CMDLINE_LINUX
parameter te bewerken. Voorbeeld:GRUB_CMDLINE_LINUX="console=ttyS0 earlyprintk=ttyS0"
Dit zorgt er ook voor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen. 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 alle logboeken naar de seriële poort moeten worden verzonden. U kunt desgewenst de
crashkernel
geconfigureerde optie laten staan. Houd er rekening mee dat deze parameter de hoeveelheid beschikbaar geheugen in de virtuele machine met 128 MB of meer vermindert, wat mogelijk problematisch is voor kleinere grootten van virtuele machines.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 door de volgende opdracht uit te voeren:
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 inrichting van de virtuele machine ongedaan wordt 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.
Maak de registratie van het abonnement ongedaan (indien nodig) door de volgende opdracht uit te voeren:
sudo subscription-manager unregister
Voer de volgende opdrachten uit om de inrichting van de virtuele machine ongedaan te maken en deze voor te bereiden op inrichting in Azure:
Notitie
Als u een specifieke virtuele machine 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. Het wordt aanbevolen om qemu-img 2.2.0 of lager te gebruiken of bij te werken naar 2.6 of hoger. Naslaginformatie: https://bugs.launchpad.net/qemu/+bug/1490611.
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 vaste grootte:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-6.9.raw rhel-6.9.vhd
Of met qemu versie 2.6+ kunt u de
force_size
optie opnemen: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
Zorg ervoor dat de netwerkservice bij het opstarten wordt gestart door de volgende opdracht uit te voeren:
sudo systemctl enable network
Registreer uw Red Hat-abonnement om de installatie van pakketten vanuit de RHEL-opslagplaats in te schakelen door de volgende opdracht uit te voeren:
sudo subscription-manager register --auto-attach --username=XXX --password=XXX
Wijzig de kernelstartregel in uw grub-configuratie om extra 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 alle logboeken naar de seriële poort moeten worden verzonden. U kunt desgewenst de
crashkernel
geconfigureerde optie laten staan. Houd er rekening mee dat deze parameter de hoeveelheid beschikbaar geheugen in de virtuele machine met 128 MB of meer vermindert, wat mogelijk problematisch is voor kleinere grootten van virtuele machines.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 door de volgende opdracht uit te voeren:sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
Installeer de Azure Linux-agent door de volgende opdracht uit te voeren:
sudo yum install WALinuxAgent sudo systemctl enable waagent.service
Cloud-init installeren
Volg de stappen in 'Een virtuele RHEL 7-machine voorbereiden vanuit Hyper-V-beheer', stap 12, 'Cloud-init installeren om de inrichting af te handelen'.
Configuratie wisselen
Maak geen wisselruimte op de besturingssysteemschijf. Volg de stappen in 'Een virtuele RHEL 7-machine 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
Inrichting ongedaan maken
Volg de stappen in 'Een virtuele RHEL 7-machine 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. Het wordt aanbevolen om qemu-img 2.2.0 of lager te gebruiken of bij te werken naar 2.6 of hoger. Naslaginformatie: https://bugs.launchpad.net/qemu/+bug/1490611.
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 vaste grootte:
sudo qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
Of met qemu versie 2.6+ kunt u de
force_size
optie opnemen: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 # 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 Verbinding maken Virtuele harde schijf een virtuele harde schijf toevoegen en voltooi de wizard Nieuwe virtuele machine.
Open de instellingen van de virtuele machine:
Koppel een nieuwe virtuele harde schijf 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, drukt u op Tab om de opstartopties te configureren.
Voer aan
inst.ks=<the location of the kickstart file>
het einde van de opstartopties in en druk op Enter.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 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 (dat wil weten VirtualBox, Xen, enzovoort) 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 en hv_storvsc kernelmodules beschikbaar zijn op de eerste RAM-schijf. Dit is een bekend probleem 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 de informatie over het herbouwen van initramfs voor meer informatie.
Volgende stappen
- U bent nu klaar om de virtuele harde schijf van Red Hat Enterprise Linux te gebruiken om nieuwe virtuele machines 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 Red Hat Enterprise Linux.
- Ga naar de documentatiepagina voor BYOS voor meer informatie over het gebruik van RHEL BYOS-installatiekopieën die gereed zijn voor productie.