Een virtuele Oracle Linux VM voor Azure voorbereiden
Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️
In dit artikel wordt ervan uitgegaan dat u al een Oracle Linux-besturingssysteem (OS) hebt geïnstalleerd op een virtuele harde schijf (VHD). Er bestaan meerdere hulpprogramma's om VHD-bestanden te maken. Een voorbeeld hiervan is een virtualisatieoplossing zoals Hyper-V. Zie De Hyper-V-rol installeren en een virtuele machine (VM) configureren voor instructies.
Oracle Linux-installatieopmerkingen
- Zie algemene linux-installatieopmerkingen voor meer tips over het voorbereiden van Linux voor Azure.
- Hyper-V en ondersteuning voor Azure Oracle Linux met de Unbreakable Enterprise Kernel (UEK) of de Red Hat Compatibele Kernel.
- De UEK2 van Oracle wordt niet ondersteund op Hyper-V en Azure omdat deze niet de vereiste stuurprogramma's bevat.
- De VHDX-indeling wordt niet ondersteund in Azure, alleen vaste VHD. U kunt de schijf converteren naar VHD-indeling met Hyper-V-beheer of de
convert-vhd
cmdlet. - Kernelondersteuning voor het koppelen van door de gebruiker gedefinieerde functies (UDF) bestandssystemen is vereist. Bij het eerste opstarten in Azure wordt de inrichtingsconfiguratie doorgegeven aan de Virtuele Linux-machine via UDF-geformatteerde media die aan de gast zijn gekoppeld. De Azure Linux-agent moet het UDF-bestandssysteem kunnen koppelen om de configuratie ervan te lezen en de VIRTUELE machine in te richten.
- Wanneer u het Linux-systeem installeert, wordt u aangeraden standaardpartities te gebruiken in plaats van LVM (Logical Volume Manager). Dit is vaak de standaardinstelling voor veel installaties. Deze standaardpartities voorkomen conflicten met de LVM-naam met gekloonde VM's, met name als een besturingssysteemschijf ooit aan een andere VM moet worden gekoppeld voor probleemoplossing. LVM of RAID kan ook worden gebruikt op gegevensschijven.
- Linux-kernelversies ouder dan 2.6.37 bieden geen ondersteuning voor NUMA op Hyper-V met grotere VM-grootten. Dit probleem is voornamelijk van invloed op oudere distributies die gebruikmaken van de upstream Red Hat 2.6.32-kernel en is opgelost in Oracle Linux 6.6 en hoger.
- Configureer geen wisselpartitie op de besturingssysteemschijf.
- 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. Zie de installatieopmerkingen voor Linux voor meer informatie.
- Zorg ervoor dat de
Addons
opslagplaats is ingeschakeld. Bewerk het bestand/etc/yum.repos.d/public-yum-ol6.repo
(Oracle Linux 6) of/etc/yum.repos.d/public-yum-ol7.repo
(Oracle Linux 7). Wijzig de regelenabled=0
enabled=1
onder [ol6_addons] of [ol7_addons] in dit bestand.
Oracle Linux 6.X
Belangrijk
Houd er rekening mee dat Oracle Linux 6.x al aan het einde van de levensduur is. Oracle Linux versie 6.10 biedt uitgebreide ondersteuning voor levenscyclus, die eindigt op juli 2024.
U moet specifieke configuratiestappen uitvoeren in het besturingssysteem om de VM uit te voeren in Azure.
Selecteer de VIRTUELE machine in het middelste deelvenster van Hyper-V-beheer.
Selecteer Verbinding maken om het venster voor de virtuele machine te openen.
Verwijderen
NetworkManager
:sudo rpm -e --nodeps NetworkManager
Notitie
Als het pakket nog niet is geïnstalleerd, mislukt deze opdracht met een foutbericht. Dit bericht wordt verwacht.
Maak een bestand met de naam netwerk in de
/etc/sysconfig/
map met de volgende tekst:NETWORKING=yes HOSTNAME=localhost.localdomain
Maak een bestand met de naam ifcfg-eth0 in de
/etc/sysconfig/network-scripts/
map met de volgende tekst:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Wijzig udev-regels om te voorkomen dat statische regels voor de Ethernet-interfaces worden gegenereerd. Deze regels kunnen problemen veroorzaken 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
Zorg ervoor dat de netwerkservice begint bij het opstarten:
sudo chkconfig network on
python-pyasn1
installeren:sudo yum install python-pyasn1
Wijzig de kernelstartlijn in uw grub-configuratie om meer kernelparameters voor Azure op te nemen. Als u deze stap wilt uitvoeren, opent
/boot/grub/menu.lst
u in een teksteditor en zorgt u ervoor dat de kernel de volgende parameters bevat:console=ttyS0 earlyprintk=ttyS0
Deze instelling zorgt ervoor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die kan helpen ondersteuning voor Azure met foutopsporingsproblemen.
Naast de voorgaande stappen raden we u aan de volgende parameters te verwijderen :
rhgb quiet crashkernel=auto
Grafisch en stil opstarten is niet handig in een cloudomgeving waarin u wilt dat alle logboeken naar de seriële poort worden verzonden.
De
crashkernel
optie kan desgewenst worden geconfigureerd. 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.Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Deze instelling is meestal de standaardinstelling.
Installeer de Azure Linux-agent door de volgende opdracht uit te voeren. De nieuwste versie is 2.0.15.
sudo yum install WALinuxAgent
Als u het
WALinuxAgent
pakket installeert, worden deNetworkManager
enNetworkManager-gnome
pakketten verwijderd als ze nog niet zijn verwijderd, zoals beschreven in stap 2.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 na inrichting in Azure. De lokale resourceschijf is een tijdelijke schijf en kan worden geleegd wanneer de vm ongedaan wordt gemaakt. Nadat u de Azure Linux-agent hebt geïnstalleerd (zie de vorige stap), wijzigt u de volgende parameters op
/etc/waagent.conf
de juiste manier:ResourceDisk.Format=y ResourceDisk.Filesystem=ext4 ResourceDisk.MountPoint=/mnt ResourceDisk.EnableSwap=y ResourceDisk.SwapSizeMB=2048 ## NOTE: set this to whatever you need it to be.
Maak de inrichting van de VIRTUELE machine ongedaan en bereid deze voor op inrichting in Azure:
sudo waagent -force -deprovision sudo export HISTSIZE=0 sudo logout
Selecteer Actie>afsluiten in Hyper-V-beheer. Uw Linux-VHD is nu klaar om te worden geüpload naar Azure.
Oracle Linux 7.0 en hoger
Volg de stappen in de volgende secties als u Oracle Linux 7.0 of hoger gebruikt.
Wijzigingen in Oracle Linux 7
Het voorbereiden van een Oracle Linux 7-VM voor Azure is vergelijkbaar met Oracle Linux 6, maar er zijn verschillende verschillen die het vermelden waard zijn:
- ondersteuning voor Azure Oracle Linux met de Unbreakable Enterprise Kernel (UEK) of de Red Hat Compatibele Kernel. We raden u aan Oracle Linux te gebruiken met UEK.
- Het
NetworkManager
pakket conflicteert niet meer met de Azure Linux-agent. Dit pakket is standaard geïnstalleerd en we raden u aan het pakket niet te verwijderen. - GRUB2 wordt nu gebruikt als de standaard bootloader, dus de procedure voor het bewerken van kernelparameters is gewijzigd. (Zie de sectie Configuratiestappen.)
- XFS is nu het standaardbestandssysteem. Het ext4-bestandssysteem kan nog steeds worden gebruikt als u wilt.
Configuratiestappen
Selecteer de VIRTUELE machine in Hyper-V-beheer.
Selecteer Verbinding maken om een consolevenster voor de virtuele machine te openen.
Maak een bestand met de naam netwerk in de
/etc/sysconfig/
map met de volgende tekst:NETWORKING=yes HOSTNAME=localhost.localdomain
Maak een bestand met de naam ifcfg-eth0 in de
/etc/sysconfig/network-scripts/
map met de volgende tekst:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
Wijzig udev-regels om te voorkomen dat statische regels voor de Ethernet-interfaces worden gegenereerd. Deze regels kunnen problemen veroorzaken 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
Zorg ervoor dat de netwerkservice begint bij het opstarten:
sudo chkconfig network on
Installeer het
python-pyasn1
pakket:sudo yum install python3-pyasn1
Wis de huidige yum-metagegevens en installeer eventuele updates:
sudo yum clean all sudo yum -y update
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 net.ifnames=0"
Deze wijziging 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 naamconventies voor netwerkinterfacekaarten in Oracle Linux 7 met de UEK uitgeschakeld. U wordt ook aangeraden de volgende parameters te verwijderen :
rhgb quiet crashkernel=auto
Grafisch en stil opstarten is niet handig in een cloudomgeving waarin u wilt dat alle logboeken naar de seriële poort worden verzonden.
De
crashkernel
optie kan desgewenst worden geconfigureerd. 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
, bouwt u de grub-configuratie opnieuw op:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Deze instelling is meestal de standaardinstelling.
Installeer de Azure Linux-agent en afhankelijkheden:
sudo yum install WALinuxAgent sudo systemctl enable waagent
Installeren
cloud-init
om de inrichting af te handelen:sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
Configureren
waagent
voorcloud-init
:sudo sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/g' /etc/waagent.conf sudo sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/g' /etc/waagent.conf
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
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 if [[ -f /mnt/resource/swapfile ]]; then echo Removing swapfile - Oracle Linux uses a swapfile by default swapoff /mnt/swapfile rm /mnt/swapfile -f fi echo "Add console log file" 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 automatisch gebruikt om wisselruimte te configureren met behulp van de lokale resourceschijf die is gekoppeld aan de VIRTUELE machine nadat de VIRTUELE machine is ingericht in Azure.
cloud-init
Deze stap wordt nu echter verwerkt. 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: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
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. - Gebruik een
cloud-init
instructie die in de installatiekopieën is gebakken om deze stap uit te voeren telkens wanneer de virtuele machine wordt gemaakt:
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/resource"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"] EOF
- Geef deze code door als een
Maak de inrichting van de VIRTUELE machine ongedaan en bereid deze voor op inrichting in Azure:
sudo cloud-init clean sudo rm -f /var/log/waagent.log sudo waagent -force -deprovision sudo rm -f ~/.bash_history sudo export HISTSIZE=0
Notitie
Als u een specifieke VM migreert en geen gegeneraliseerde installatiekopieën wilt maken, slaat u de inrichtingsstap over.
Selecteer Actie>afsluiten in Hyper-V-beheer. Uw Linux-VHD is nu klaar om te worden geüpload naar Azure.
Gerelateerde inhoud
U kunt nu uw Oracle Linux.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.