Een virtuele SLES- of openSUSE Leap-machine voorbereiden voor Azure

Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️ Van toepassing op: ✔️ Uniforme schaalsets

In dit artikel wordt ervan uitgegaan dat u al een SUSE- of openSUSE Leap Linux-besturingssysteem hebt geïnstalleerd op een virtuele harde schijf. Er bestaan meerdere hulpprogramma's om VHD-bestanden te maken, bijvoorbeeld een virtualisatieoplossing zoals Hyper-V. Zie De Hyper-V-rol installeren en een virtuele machine configureren voor instructies.

SLES / openSUSE Leap-installatienotities

  • Zie ook Algemene linux-installatieopmerkingen voor meer tips over het voorbereiden van Linux voor Azure.
  • 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 cmdlet convert-vhd.
  • Bij het installeren van het Linux-systeem wordt aanbevolen dat u standaardpartities gebruikt in plaats van LVM (vaak de standaardinstelling voor veel installaties). Hierdoor voorkomt u lvM-naamconflicten met gekloonde VM's, met name als een besturingssysteemschijf ooit moet worden gekoppeld aan een andere VM voor probleemoplossing. LVM of RAID kan indien gewenst worden gebruikt op gegevensschijven.
  • Configureer geen wisselpartitie op de besturingssysteemschijf. De Linux-agent kan worden geconfigureerd voor het maken van een wisselbestand op de tijdelijke resourceschijf. Meer informatie hierover vindt u in de onderstaande stappen.
  • Alle VHD's in Azure moeten een virtuele grootte hebben die is afgestemd op 1 MB. Bij het converteren van een onbewerkte schijf naar VHD moet u ervoor zorgen dat de onbewerkte schijfgrootte een veelvoud van 1 MB is voordat deze wordt geconverteerd. Zie Linux-installatieopmerkingen voor meer informatie.

SUSE Studio gebruiken

SUSE Studio kan eenvoudig uw SLES maken en beheren en openSUSE Leap-installatiekopieën voor Azure en Hyper-V. Dit is de aanbevolen methode voor het aanpassen van uw eigen SLES en openSUSE Leap-afbeeldingen.

Als alternatief voor het bouwen van uw eigen VHD publiceert SUSE ook BYOS-installatiekopieën (Bring Your Own Subscription) voor SLES bij VM Depot.

SUSE Linux Enterprise Server voorbereiden voor Azure

  1. Selecteer de virtuele machine in het middelste deelvenster van Hyper-V-beheer.

  2. Klik op Verbinding maken om het venster voor de virtuele machine te openen.

  3. Registreer uw SUSE Linux Enterprise-systeem zodat het updates kan downloaden en pakketten kan installeren.

  4. Werk het systeem bij met de nieuwste patches:

    # sudo zypper update
    
  5. Azure Linux-agent en cloud-init installeren

    # SUSEConnect -p sle-module-public-cloud/15.2/x86_64  (SLES 15 SP2)
    # sudo zypper refresh
    # sudo zypper install python-azure-agent
    # sudo zypper install cloud-init
    
  6. Waagent & cloud-init inschakelen om te starten bij opstarten

    # sudo chkconfig waagent on
    # systemctl enable cloud-init-local.service
    # systemctl enable cloud-init.service
    # systemctl enable cloud-config.service
    # systemctl enable cloud-final.service
    # systemctl daemon-reload
    # cloud-init clean
    
  7. Waagent- en cloud-init-configuratie bijwerken

    # sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/g' /etc/waagent.conf
    # sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/g' /etc/waagent.conf
    
    # sudo sh -c 'printf "datasource:\n  Azure:" > /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg'
    # sudo sh -c 'printf "reporting:\n  logging:\n    type: log\n  telemetry:\n    type: hyperv" > /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg'
    
  8. Bewerk /etc/default/grub-bestand om ervoor te zorgen dat consolelogboeken worden verzonden naar de seriële poort en werk vervolgens het hoofdconfiguratiebestand bij met grub2-mkconfig -o /boot/grub2/grub.cfg

    console=ttyS0 earlyprintk=ttyS0 
    

    Dit zorgt ervoor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die Ondersteuning van Azure kan helpen bij foutopsporingsproblemen.

  9. Zorg ervoor dat /etc/fstab-bestand naar de schijf verwijst met behulp van de UUID (by-uuid)

  10. Wijzig udev-regels om te voorkomen dat statische regels worden gegenereerd voor de Ethernet-interface(s). Deze regels kunnen problemen veroorzaken bij het klonen van een virtuele machine 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
    
  11. Het wordt aanbevolen om het bestand '/etc/sysconfig/network/dhcp' te bewerken en de DHCLIENT_SET_HOSTNAME parameter te wijzigen in het volgende:

    DHCLIENT_SET_HOSTNAME="no"
    
  12. In "/etc/sudoers" markeert u de volgende regels of verwijdert u deze als deze bestaan:

    Defaults targetpw   # ask for the password of the target user i.e. root
    ALL    ALL=(ALL) ALL   # WARNING! Only use this together with 'Defaults targetpw'!
    
  13. Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Dit is meestal de standaardinstelling.

  14. 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. 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:

    # 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
    

    Als u koppelen, formatteren en wisselen wilt maken, kunt u het volgende doen:

    • Geef dit door als een cloud-init-configuratie telkens wanneer u een virtuele machine maakt.

    • Gebruik een cloud-init-instructie die is gebakken in de installatiekopieën die dit doen 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"]
        - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"]
      EOF
      
  15. 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 rm -rf /var/lib/waagent/
    # sudo rm -f /var/log/waagent.log
    
    # waagent -force -deprovision+user
    # rm -f ~/.bash_history
    
    
    # export HISTSIZE=0
    
    # logout
    
  16. Klik op Actie -> Afsluiten in Hyper-V-beheer. Uw Linux-VHD is nu klaar om te worden geüpload naar Azure.


OpenSUSE 15.2+ voorbereiden

  1. Selecteer de virtuele machine in het middelste deelvenster van Hyper-V-beheer.

  2. Klik op Verbinding maken om het venster voor de virtuele machine te openen.

  3. Voer in de shell de opdracht 'zypper lr' uit. Als deze opdracht uitvoer retourneert die vergelijkbaar is met het volgende, worden de opslagplaatsen geconfigureerd zoals verwacht. Er zijn geen aanpassingen nodig (houd er rekening mee dat versienummers kunnen variëren):

    # Alias Name Ingeschakeld Vernieuwen
    1 Cloud:Tools_15.2 Cloud:Tools_15.2 Ja Ja
    2 openSUSE_15.2_OSS openSUSE_15.2_OSS Ja Ja
    3 openSUSE_15.2_Updates openSUSE_15.2_Updates Ja Ja

    Als met de opdracht 'Geen opslagplaatsen gedefinieerd...' wordt geretourneerd gebruik vervolgens de volgende opdrachten om deze opslagplaatsen toe te voegen:

    # sudo zypper ar -f http://download.opensuse.org/repositories/Cloud:Tools/openSUSE_15.2 Cloud:Tools_15.2
    # sudo zypper ar -f https://download.opensuse.org/distribution/15.2/repo/oss openSUSE_15.2_OSS
    # sudo zypper ar -f http://download.opensuse.org/update/15.2 openSUSE_15.2_Updates
    

    Vervolgens kunt u controleren of de opslagplaatsen zijn toegevoegd door de opdracht 'zypper lr' opnieuw uit te voeren. Als een van de relevante updateopslagplaatsen niet is ingeschakeld, schakelt u deze in met de volgende opdracht:

    # sudo zypper mr -e [NUMBER OF REPOSITORY]
    
  4. Werk de kernel bij naar de meest recente beschikbare versie:

    # sudo zypper up kernel-default
    

    Of om het systeem bij te werken met alle nieuwste patches:

    # sudo zypper update
    
  5. Installeer de Azure Linux-agent.

    # sudo zypper install WALinuxAgent
    
  6. Wijzig de kernel-opstartlijn in uw grub-configuratie om extra kernelparameters voor Azure op te nemen. Hiervoor opent u '/boot/grub/menu.lst' in een teksteditor en zorgt u ervoor dat de standaardkernel de volgende parameters bevat:

     console=ttyS0 earlyprintk=ttyS0 
    

    Dit zorgt ervoor dat alle consoleberichten worden verzonden naar de eerste seriële poort, die Ondersteuning van Azure kan helpen bij foutopsporingsproblemen. Verwijder bovendien de volgende parameters uit de kernelstartregel als deze bestaan:

     libata.atapi_enabled=0 reserve=0x1f0,0x8
    
  7. Het wordt aanbevolen om het bestand '/etc/sysconfig/network/dhcp' te bewerken en de DHCLIENT_SET_HOSTNAME parameter te wijzigen in het volgende:

     DHCLIENT_SET_HOSTNAME="no"
    
  8. Belangrijk: In "/etc/sudoers" markeert u de volgende regels of verwijdert u deze als deze bestaan:

    Defaults targetpw   # ask for the password of the target user i.e. root
    ALL    ALL=(ALL) ALL   # WARNING! Only use this together with 'Defaults targetpw'!
    
  9. Zorg ervoor dat de SSH-server is geïnstalleerd en geconfigureerd om te starten tijdens het opstarten. Dit is meestal de standaardinstelling.

  10. 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. Houd er rekening mee dat de lokale resourceschijf een tijdelijke schijf is en mogelijk wordt geleegd wanneer de vm wordt gedeprovisioneerd. Nadat u de Azure Linux-agent hebt geïnstalleerd (zie de vorige stap), 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.
    
  11. 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 waagent -force -deprovision
    # export HISTSIZE=0
    # logout
    
  12. Zorg ervoor dat de Azure Linux-agent wordt uitgevoerd bij het opstarten:

    # sudo systemctl enable waagent.service
    
  13. Klik op Actie -> Afsluiten in Hyper-V-beheer. Uw Linux-VHD is nu klaar om te worden geüpload naar Azure.

Volgende stappen

U bent nu klaar om de virtuele harde schijf van SUSE 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 op basis van een aangepaste schijf.