Preparare una macchina virtuale SLES o openSUSE per AzurePrepare a SLES or openSUSE virtual machine for Azure

In questo articolo si presuppone che l'utente abbia già installato un sistema operativo Linux SUSE od openSUSE in un disco rigido virtuale.This article assumes that you have already installed a SUSE or openSUSE Linux operating system to a virtual hard disk. Sono disponibili vari strumenti per creare file con estensione vhd, ad esempio una soluzione di virtualizzazione come Hyper-V.Multiple tools exist to create .vhd files, for example a virtualization solution such as Hyper-V. Per istruzioni, vedere Installare il ruolo Hyper-V e configurare una macchina virtuale.For instructions, see Install the Hyper-V Role and Configure a Virtual Machine.

Note di installazione di SLES/openSUSESLES / openSUSE installation notes

  • Vedere anche Note generali sull'installazione di Linux per altri suggerimenti sulla preparazione di Linux per Azure.Please see also General Linux Installation Notes for more tips on preparing Linux for Azure.
  • Il formato VHDX non è supportato in Azure, solo nei VHD fissi.The VHDX format is not supported in Azure, only fixed VHD. È possibile convertire il disco in formato VHD tramite la console di gestione di Hyper-V o il cmdlet convert-vhd.You can convert the disk to VHD format using Hyper-V Manager or the convert-vhd cmdlet.
  • Durante l'installazione del sistema operativo Linux è consigliabile usare partizioni standard anziché LVM, che spesso è la scelta predefinita per numerose installazioni.When installing the Linux system it is recommended that you use standard partitions rather than LVM (often the default for many installations). In questo modo sarà possibile evitare conflitti di nome LVM con le macchine virtuali clonate, in particolare se fosse necessario collegare un disco del sistema operativo a un'altra macchina virtuale per la risoluzione dei problemi.This will avoid LVM name conflicts with cloned VMs, particularly if an OS disk ever needs to be attached to another VM for troubleshooting. Se si preferisce, su dischi di dati si può usare LVM o RAID.LVM or RAID may be used on data disks if preferred.
  • Non configurare una partizione swap nel disco del sistema operativo.Do not configure a swap partition on the OS disk. L'agente Linux può essere configurato in modo da creare un file swap sul disco temporaneo delle risorse.The Linux agent can be configured to create a swap file on the temporary resource disk. Altre informazioni su questo argomento sono disponibili nei passaggi seguenti.More information about this can be found in the steps below.
  • Le dimensioni virtuali di tutti i dischi rigidi virtuali su Azure devono essere allineate a 1 MB.All VHDs on Azure must have a virtual size aligned to 1MB. Quando si converte un disco non formattato in un disco rigido virtuale, prima della conversione è necessario assicurarsi che le dimensioni del disco non formattato siano un multiplo di 1 MB.When converting from a raw disk to VHD you must ensure that the raw disk size is a multiple of 1MB before conversion. Per altre informazioni, vedere Note sull'installazione di Linux.See Linux Installation Notes for more information.

Usare SUSE StudioUse SUSE Studio

SUSE Studio consente di creare e gestire facilmente le immagini SLES e openSUSE per Azure e Hyper-V.SUSE Studio can easily create and manage your SLES and openSUSE images for Azure and Hyper-V. Questo è l'approccio consigliato per personalizzare le proprie immagini SLES e openSUSE.This is the recommended approach for customizing your own SLES and openSUSE images.

In alternativa alla creazione di un disco rigido virtuale personalizzato, SUSE pubblica anche immagini BYOS (Bring your own Subscription) per SLES in VM Depot.As an alternative to building your own VHD, SUSE also publishes BYOS (Bring Your Own Subscription) images for SLES at VM Depot.

Preparare SUSE Linux Enterprise Server per AzurePrepare SUSE Linux Enterprise Server for Azure

  1. Nel riquadro centrale della console di gestione di Hyper-V selezionare la macchina virtuale.In the center pane of Hyper-V Manager, select the virtual machine.

  2. Fare clic su Connect per aprire la finestra della macchina virtuale.Click Connect to open the window for the virtual machine.

  3. Registrare il sistema SUSE Linux Enterprise per scaricare gli aggiornamenti e installare i pacchetti.Register your SUSE Linux Enterprise system to allow it to download updates and install packages.

  4. Aggiornare il sistema con tutte le patch più recenti:Update the system with the latest patches:

    # sudo zypper update
    
  5. Installare l'agente Linux di Azure e cloud-initInstall Azure Linux Agent and cloud-init

    # 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. Abilitare waagent & cloud-init per l'avvio all'avvioEnable waagent & cloud-init to start on boot

    # 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. Aggiornare la configurazione di waagent e cloud-initUpdate waagent and cloud-init configuration

    # 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. Modificare il file/etc/default/grub per assicurarsi che i log della console vengano inviati alla porta seriale e quindi aggiornare il file di configurazione principale con GRUB2-mkconfig-o/boot/GRUB2/grub.cfgEdit /etc/default/grub file to ensure console logs are sent to serial port and then update the main configuration file with grub2-mkconfig -o /boot/grub2/grub.cfg

    console=ttyS0 earlyprintk=ttyS0 rootdelay=300
    

    In questo modo si garantisce che tutti i messaggi della console vengano inviati alla prima porta seriale, agevolando così il supporto di Azure nella risoluzione dei problemi di debug.This will ensure all console messages are sent to the first serial port, which can assist Azure support with debugging issues.

  9. Verificare che il file/etc/fstab faccia riferimento al disco usando il relativo UUID (by-uuid)Ensure /etc/fstab file reference the disk using its UUID (by-uuid)

  10. Modificare le regole udev per evitare la generazione di regole statiche per l'interfaccia Ethernet.Modify udev rules to avoid generating static rules for the Ethernet interface(s). Le regole seguenti possono provocare problemi quando si clona una macchina virtuale in Microsoft Azure o Hyper-V:These rules can cause problems when cloning a virtual machine in Microsoft Azure or 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. Si consiglia di modificare il file "/etc/sysconfig/network/dhcp" e modificare il parametro DHCLIENT_SET_HOSTNAME come segue:It is recommended to edit the file "/etc/sysconfig/network/dhcp" and change the DHCLIENT_SET_HOSTNAME parameter to the following:

    DHCLIENT_SET_HOSTNAME="no"
    
  12. In "/etc/sudoers" rimuovere o impostare come commento le righe seguenti, se esistenti:In "/etc/sudoers", comment out or remove the following lines if they exist:

    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. Verificare che il server SSH sia installato e configurato per l'esecuzione all'avvio.Ensure that the SSH server is installed and configured to start at boot time. Questo è in genere il valore predefinito.This is usually the default.

  14. Scambia configurazioneSwap configuration

    Non creare lo spazio di swapping sul disco del sistema operativo.Do not create swap space on the operating system disk.

    In precedenza, l'agente Linux di Azure è stato usato per configurare automaticamente lo spazio di swapping usando il disco risorse locale collegato alla macchina virtuale dopo il provisioning della macchina virtuale in Azure.Previously, the Azure Linux Agent was used automatically configure swap space by using the local resource disk that is attached to the virtual machine after the virtual machine is provisioned on Azure. Tuttavia, questo è ora gestito da cloud-init, non è necessario usare l'agente Linux per formattare il disco risorse creare il file di scambio, modificare i parametri seguenti in /etc/waagent.conf modo appropriato:However this is now handled by cloud-init, you must not use the Linux Agent to format the resource disk create the swap file, modify the following parameters in /etc/waagent.conf appropriately:

    # 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
    

    Se si desidera installare, formattare e creare uno scambio è possibile:If you want mount, format and create swap you can either:

    • Passarla come configurazione cloud-init ogni volta che si crea una macchina virtuale.Pass this in as a cloud-init config every time you create a VM.

    • Usare una direttiva cloud-init nell'immagine che eseguirà questa operazione ogni volta che viene creata la macchina virtuale:Use a cloud-init directive baked into the image that will do this every time the VM is created:

      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", "0", "0"]
      EOF
      
  15. Eseguire i comandi seguenti per effettuare il deprovisioning della macchina virtuale e prepararla per il provisioning in Azure:Run the following commands to deprovision the virtual machine and prepare it for provisioning on 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. Fare clic su Azione -> Arresta nella console di gestione di Hyper-V.Click Action -> Shut Down in Hyper-V Manager. Il file VHD Linux è ora pronto per il caricamento in Azure.Your Linux VHD is now ready to be uploaded to Azure.


Preparare openSUSE 13.1+Prepare openSUSE 13.1+

  1. Nel riquadro centrale della console di gestione di Hyper-V selezionare la macchina virtuale.In the center pane of Hyper-V Manager, select the virtual machine.

  2. Fare clic su Connect per aprire la finestra della macchina virtuale.Click Connect to open the window for the virtual machine.

  3. Nella shell eseguire il comando 'zypper lr'.On the shell, run the command 'zypper lr'. Se questo comando restituisce un output simile al seguente, i repository vengono configurati come previsto e non sono necessarie modifiche. Si noti che i numeri di versione possono variare:If this command returns output similar to the following, then the repositories are configured as expected--no adjustments are necessary (note that version numbers may vary):

    # AliasAlias NomeName EnabledEnabled AggiornaRefresh
    11 Cloud: Tools_13.1Cloud:Tools_13.1 Cloud: Tools_13.1Cloud:Tools_13.1 Yes Yes
    22 openSUSE_13 openSUSE_13.1_OSSopenSUSE_13.1_OSS openSUSE_13 openSUSE_13.1_OSSopenSUSE_13.1_OSS Yes Yes
    33 openSUSE_13 openSUSE_13.1_UpdatesopenSUSE_13.1_Updates openSUSE_13 openSUSE_13.1_UpdatesopenSUSE_13.1_Updates Yes Yes

    Se il comando restituisce un messaggio simile a "Nessun archivio definito..." usare i comandi seguenti per aggiungere gli archivi:If the command returns "No repositories defined..." then use the following commands to add these repos:

    # sudo zypper ar -f http://download.opensuse.org/repositories/Cloud:Tools/openSUSE_13.1 Cloud:Tools_13.1
    # sudo zypper ar -f https://download.opensuse.org/distribution/13.1/repo/oss openSUSE_13.1_OSS
    # sudo zypper ar -f http://download.opensuse.org/update/13.1 openSUSE_13.1_Updates
    

    Sarà quindi possibile verificare che i repository siano stati aggiunti eseguendo nuovamente il comando 'zypper lr' .You can then verify the repositories have been added by running the command 'zypper lr' again. Se uno degli archivi di aggiornamento pertinenti non è abilitato, abilitarlo con il comando seguente:In case one of the relevant update repositories is not enabled, enable it with following command:

    # sudo zypper mr -e [NUMBER OF REPOSITORY]
    
  4. Aggiornare il kernel all'ultima versione disponibile:Update the kernel to the latest available version:

    # sudo zypper up kernel-default
    

    Oppure per aggiornare il sistema con tutte le patch più recenti:Or to update the system with all the latest patches:

    # sudo zypper update
    
  5. Installare l'agente Linux di Azure.Install the Azure Linux Agent.

    # sudo zypper install WALinuxAgent
    
  6. Modificare la riga di avvio del kernel nella configurazione GRUB per includere ulteriori parametri del kernel per Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. A questo scopo, aprire "/boot/grub/menu.lst" in un editor di testo e verificare che il kernel predefinito includa i parametri seguenti:To do this, open "/boot/grub/menu.lst" in a text editor and ensure that the default kernel includes the following parameters:

     console=ttyS0 earlyprintk=ttyS0 rootdelay=300
    

    In questo modo si garantisce che tutti i messaggi della console vengano inviati alla prima porta seriale, agevolando così il supporto di Azure nella risoluzione dei problemi di debug.This will ensure all console messages are sent to the first serial port, which can assist Azure support with debugging issues. Rimuovere inoltre i messaggi seguenti dalla riga di avvio del kernel, se presenti:In addition, remove the following parameters from the kernel boot line if they exist:

     libata.atapi_enabled=0 reserve=0x1f0,0x8
    
  7. Si consiglia di modificare il file "/etc/sysconfig/network/dhcp" e modificare il parametro DHCLIENT_SET_HOSTNAME come segue:It is recommended to edit the file "/etc/sysconfig/network/dhcp" and change the DHCLIENT_SET_HOSTNAME parameter to the following:

     DHCLIENT_SET_HOSTNAME="no"
    
  8. Importante: In "/etc/sudoers" rimuovere o impostare come commento le righe seguenti, se esistenti:Important: In "/etc/sudoers", comment out or remove the following lines if they exist:

    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. Verificare che il server SSH sia installato e configurato per l'esecuzione all'avvio.Ensure that the SSH server is installed and configured to start at boot time. Questo è in genere il valore predefinito.This is usually the default.

  10. Non creare l'area di swap sul disco del sistema operativo.Do not create swap space on the OS disk.

    L'agente Linux di Azure può configurare automaticamente l'area di swap utilizzando il disco risorse locale collegato alla VM dopo il provisioning in Azure.The Azure Linux Agent can automatically configure swap space using the local resource disk that is attached to the VM after provisioning on Azure. Si noti che il disco risorse locale è un disco temporaneo e potrebbe essere svuotato in seguito al deprovisioning della macchina virtuale.Note that the local resource disk is a temporary disk, and might be emptied when the VM is deprovisioned. Dopo aver installato l'agente Linux di Azure come illustrato nel passaggio precedente, modificare i parametri seguenti in /etc/waagent.conf in modo appropriato:After installing the Azure Linux Agent (see previous step), modify the following parameters in /etc/waagent.conf appropriately:

    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. Eseguire i comandi seguenti per effettuare il deprovisioning della macchina virtuale e prepararla per il provisioning in Azure:Run the following commands to deprovision the virtual machine and prepare it for provisioning on Azure:

    # sudo waagent -force -deprovision
    # export HISTSIZE=0
    # logout
    
  12. Verificare che l'agente Linux di Azure venga eseguito all'avvio:Ensure the Azure Linux Agent runs at startup:

    # sudo systemctl enable waagent.service
    
  13. Fare clic su Azione -> Arresta nella console di gestione di Hyper-V.Click Action -> Shut Down in Hyper-V Manager. Il file VHD Linux è ora pronto per il caricamento in Azure.Your Linux VHD is now ready to be uploaded to Azure.

Passaggi successiviNext steps

È ora possibile usare il disco rigido virtuale SUSE Linux per creare nuove macchine virtuali in Azure.You're now ready to use your SUSE Linux virtual hard disk to create new virtual machines in Azure. Se è la prima volta che si carica il file VHD in Azure, vedere Creare una macchina virtuale Linux da un disco personalizzato.If this is the first time that you're uploading the .vhd file to Azure, see Create a Linux VM from a custom disk.