Preparación de una máquina virtual SLES u openSUSE para AzurePrepare a SLES or openSUSE virtual machine for Azure

En este artículo se supone que ya ha instalado un sistema operativo Linux SUSE u openSUSE en un disco duro virtual.This article assumes that you have already installed a SUSE or openSUSE Linux operating system to a virtual hard disk. Existen varias herramientas para crear archivos .vhd; por ejemplo, una solución de virtualización como Hyper-V.Multiple tools exist to create .vhd files, for example a virtualization solution such as Hyper-V. Para obtener instrucciones, consulte Instalación del rol de Hyper-V y configuración de una máquina Virtual.For instructions, see Install the Hyper-V Role and Configure a Virtual Machine.

Notas sobre la instalación de SLES/openSUSESLES / openSUSE installation notes

  • Consulte también Notas generales sobre la instalación de Linux para obtener más consejos sobre la preparación de Linux para Azure.Please see also General Linux Installation Notes for more tips on preparing Linux for Azure.
  • El formato VHDX no se admite en Azure, solo el VHD fijo.The VHDX format is not supported in Azure, only fixed VHD. Puede convertir el disco al formato VHD con el Administrador de Hyper-V o el cmdlet Convert-VHD.You can convert the disk to VHD format using Hyper-V Manager or the convert-vhd cmdlet.
  • Al instalar el sistema Linux se recomienda utilizar las particiones estándar en lugar de un LVM (que a menudo viene de forma predeterminada en muchas instalaciones).When installing the Linux system it is recommended that you use standard partitions rather than LVM (often the default for many installations). De este modo se impedirá que el nombre del LVM entre en conflicto con las máquinas virtuales clonadas, especialmente si en algún momento hace falta adjuntar un disco de SO a otra máquina virtual para solucionar problemas.This will avoid LVM name conflicts with cloned VMs, particularly if an OS disk ever needs to be attached to another VM for troubleshooting. LVM o RAID se pueden utilizar en discos de datos si así se prefiere.LVM or RAID may be used on data disks if preferred.
  • No cree una partición de intercambio en el disco del SO.Do not configure a swap partition on the OS disk. El agente de Linux se puede configurar para crear un archivo de intercambio en el disco de recursos temporal.The Linux agent can be configured to create a swap file on the temporary resource disk. Puede encontrar más información al respecto en los pasos que vienen a continuación.More information about this can be found in the steps below.
  • En Azure, todos los discos duros virtuales deben tener un tamaño virtual alineado con 1 MB.All VHDs on Azure must have a virtual size aligned to 1MB. Al convertir un disco sin procesar en un disco duro virtual, tiene que asegurarse de que su tamaño es un múltiplo de 1 MB antes de la conversión.When converting from a raw disk to VHD you must ensure that the raw disk size is a multiple of 1MB before conversion. Para más información, consulte Notas sobre la instalación de Linux.See Linux Installation Notes for more information.

Uso de SUSE StudioUse SUSE Studio

SUSE Studio puede crear y administrar fácilmente sus imágenes de SLES y openSUSE para Hyper-V y Azure.SUSE Studio can easily create and manage your SLES and openSUSE images for Azure and Hyper-V. Este es el enfoque recomendado para personalizar sus propias imágenes SLES y openSUSE.This is the recommended approach for customizing your own SLES and openSUSE images.

Como alternativa a la creación de su propio VHD, SUSE también publica imágenes de BYOS ("traiga su propia suscripción") para SLES en VM Depot.As an alternative to building your own VHD, SUSE also publishes BYOS (Bring Your Own Subscription) images for SLES at VM Depot.

Preparación de SUSE Linux Enterprise Server para AzurePrepare SUSE Linux Enterprise Server for Azure

  1. Seleccione la máquina virtual en el panel central del Administrador de Hyper-V.In the center pane of Hyper-V Manager, select the virtual machine.

  2. Haga clic en Conectar para abrir la ventana de la máquina virtual.Click Connect to open the window for the virtual machine.

  3. Registre el sistema de SUSE Linux Enterprise para permitir que descargue actualizaciones e instale paquetes.Register your SUSE Linux Enterprise system to allow it to download updates and install packages.

  4. Actualice el sistema con las revisiones más recientes:Update the system with the latest patches:

    # sudo zypper update
    
  5. Instale el agente Linux de Azure y 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. Habilite waagent y cloud-init para que se inicien en el arranqueEnable 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. Actualice la configuración de waagent y 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. Edite el archivo /etc/default/grub para asegurarse de que los registros de la consola se envíen al puerto serie y, luego, actualice el archivo de configuración principal 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
    

    Así se asegurará de que todos los mensajes de la consola se envían al primer puerto serie, lo que puede ayudar al soporte técnico de Azure con los problemas de depuración de errores.This will ensure all console messages are sent to the first serial port, which can assist Azure support with debugging issues.

  9. Asegúrese de que el archivo /etc/fstab haga referencia al disco mediante su UUID (by-uuid)Ensure /etc/fstab file reference the disk using its UUID (by-uuid)

  10. Modifique las reglas udev para impedir que se generen reglas estáticas para las interfaces Ethernet.Modify udev rules to avoid generating static rules for the Ethernet interface(s). Estas reglas pueden causar problemas al clonar una máquina virtual en 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. Se recomienda editar el archivo "/etc/sysconfig/network/dhcp" y cambiar el parámetro DHCLIENT_SET_HOSTNAME por lo siguiente: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. En "/etc/sudoers", convierta en comentario o quite las líneas siguientes, si existen: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. Asegúrese de que el servidor SSH se haya instalado y configurado para iniciarse en el tiempo de arranque.Ensure that the SSH server is installed and configured to start at boot time. Este es normalmente el valor predeterminado.This is usually the default.

  14. Configuración de intercambioSwap configuration

    No cree espacio de intercambio en el disco del sistema operativo.Do not create swap space on the operating system disk.

    Anteriormente, el agente de Linux de Azure se usaba para configurar automáticamente un espacio de intercambio mediante el disco de recursos local que se adjunta a la máquina virtual, después de que la máquina virtual se aprovisione en 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. Ahora, en cambio, esto se controla mediante cloud-init, y no tiene que usar el agente de Linux para formatear el disco de recursos, crear el archivo de intercambio y modificar los parámetros siguientes en /etc/waagent.conf adecuadamente: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
    

    Si quiere montar, formatear y crear un intercambio, puede:If you want mount, format and create swap you can either:

    • Pasarlo como una configuración de cloud-init cada vez que cree una máquina virtual.Pass this in as a cloud-init config every time you create a VM.

    • Usar una directiva de cloud-init preparada en la imagen que hará esto cada vez que se cree la máquina virtual: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. Ejecute los comandos siguientes para desaprovisionar la máquina virtual y prepararla para aprovisionarse en 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. Haga clic en Acción -> Apagar en el Administrador de Hyper-V.Click Action -> Shut Down in Hyper-V Manager. El VHD de Linux ya está listo para cargarse en Azure.Your Linux VHD is now ready to be uploaded to Azure.


Preparación de openSUSE 13.1+Prepare openSUSE 13.1+

  1. Seleccione la máquina virtual en el panel central del Administrador de Hyper-V.In the center pane of Hyper-V Manager, select the virtual machine.

  2. Haga clic en Conectar para abrir la ventana de la máquina virtual.Click Connect to open the window for the virtual machine.

  3. En el shell, ejecute el comando 'zypper lr'.On the shell, run the command 'zypper lr'. Si este comando devuelve una salida similar a la siguiente, los repositorios están configurados según lo esperado y no es necesario ningún ajuste (tenga en cuenta que los números de versión pueden variar):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 NombreName habilitadoEnabled ActualizarRefresh
    11 Cloud:Tools_13.1Cloud:Tools_13.1 Cloud:Tools_13.1Cloud:Tools_13.1 Yes Yes
    22 openSUSE_13.1_OSSopenSUSE_13.1_OSS openSUSE_13.1_OSSopenSUSE_13.1_OSS Yes Yes
    33 openSUSE_13.1_UpdatesopenSUSE_13.1_Updates openSUSE_13.1_UpdatesopenSUSE_13.1_Updates Yes Yes

    Si el comando devuelve el mensaje "No repositories defined...", utilice los comandos siguientes para agregar estos repositorios: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
    

    Puede verificar entonces que se han agregado los repositorios al volver a ejecutar el comando 'zypper lr'.You can then verify the repositories have been added by running the command 'zypper lr' again. En caso de que no haya un repositorio de actualizaciones relevante habilitado, habilítelo con el comando siguiente:In case one of the relevant update repositories is not enabled, enable it with following command:

    # sudo zypper mr -e [NUMBER OF REPOSITORY]
    
  4. Actualice el kernel a la versión más reciente disponible:Update the kernel to the latest available version:

    # sudo zypper up kernel-default
    

    O para actualizar el sistema con todos los parches más recientes:Or to update the system with all the latest patches:

    # sudo zypper update
    
  5. Instale el Agente de Linux de Azure.Install the Azure Linux Agent.

    # sudo zypper install WALinuxAgent
    
  6. Modifique la línea de arranque de kernel de su configuración grub para que incluya parámetros de kernel adicionales para Azure.Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. Para ello, abra "/boot/grub/menu.lst" en un editor de texto y asegúrese de que el kernel predeterminado incluye los parámetros siguientes: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
    

    Así se asegurará de que todos los mensajes de la consola se envían al primer puerto serie, lo que puede ayudar al soporte técnico de Azure con los problemas de depuración de errores.This will ensure all console messages are sent to the first serial port, which can assist Azure support with debugging issues. Además, elimine los parámetros siguientes de la línea de arranque de kernel, si es que están:In addition, remove the following parameters from the kernel boot line if they exist:

     libata.atapi_enabled=0 reserve=0x1f0,0x8
    
  7. Se recomienda editar el archivo "/etc/sysconfig/network/dhcp" y cambiar el parámetro DHCLIENT_SET_HOSTNAME por lo siguiente: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: En "/etc/sudoers", convierta en comentario o quite las líneas siguientes, si existen: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. Asegúrese de que el servidor SSH se haya instalado y configurado para iniciarse en el tiempo de arranque.Ensure that the SSH server is installed and configured to start at boot time. Este es normalmente el valor predeterminado.This is usually the default.

  10. No cree espacio de intercambio en el disco del SO.Do not create swap space on the OS disk.

    El Agente de Linux de Azure puede configurar automáticamente un espacio de intercambio utilizando el disco de recursos local que se adjunta a la máquina virtual después de aprovisionarse en 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. Tenga en cuenta que el disco de recursos local es un disco temporal que debe vaciarse cuando la máquina virtual se desaprovisiona.Note that the local resource disk is a temporary disk, and might be emptied when the VM is deprovisioned. Después de instalar el Agente de Linux de Azure (consulte el paso anterior), modifique apropiadamente los parámetros siguientes en /etc/waagent.conf: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. Ejecute los comandos siguientes para desaprovisionar la máquina virtual y prepararla para aprovisionarse en 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. Asegúrese de que el Agente de Linux de Azure se ejecute al inicio:Ensure the Azure Linux Agent runs at startup:

    # sudo systemctl enable waagent.service
    
  13. Haga clic en Acción -> Apagar en el Administrador de Hyper-V.Click Action -> Shut Down in Hyper-V Manager. El VHD de Linux ya está listo para cargarse en Azure.Your Linux VHD is now ready to be uploaded to Azure.

Pasos siguientesNext steps

Ya está listo para usar el disco duro virtual de SUSE para crear nuevas máquinas virtuales de Azure.You're now ready to use your SUSE Linux virtual hard disk to create new virtual machines in Azure. Si es la primera vez que carga el archivo .vhd en Azure, vea Crear una VM Linux a partir de un disco personalizado.If this is the first time that you're uploading the .vhd file to Azure, see Create a Linux VM from a custom disk.