Ejercicio: Creación de una imagen de una máquina virtual de Azure desde la CLI de Azure y aprovisionamiento de una nueva máquina virtual

Completado

En este escenario de ejemplo, la organización va a implementar un nuevo entorno en Azure en el que se usan máquinas virtuales. Ya ha creado una máquina virtual que contiene el software y las herramientas necesarias para admitir las funciones de la organización. Tendrá que usar esta máquina virtual para generar una imagen personalizada que le servirá para crear instancias de máquina virtual.

En este ejercicio, creará una máquina virtual y la generalizará. Después, creará una imagen a partir de la máquina virtual generalizada, que luego usará para crear otra máquina virtual. Puede probarlo con Windows o Linux (o ambos) si selecciona el tipo de plataforma en el cuadro anterior.

Establecimiento del grupo de recursos predeterminado

  1. Para activar la ventana de Cloud Shell de la derecha, inicie sesión en el espacio aislado de Azure.

  2. Para establecer el grupo de recursos predeterminado con el que se va a trabajar, escriba el comando siguiente en la ventana de Cloud Shell de la derecha. Esto le permite omitir el nombre del grupo de recursos de todos los comandos.

    az configure --defaults group="<rgn>[Sandbox resource group name]</rgn>"
    

Creación de una máquina virtual

En esta tarea, creará rápidamente una máquina virtual que ejecuta una aplicación web simple. La aplicación web muestra el nombre del equipo host. Usará esta máquina virtual como base para el resto del ejercicio.

  1. En Azure Cloud Shell, ejecute los comandos siguientes para crear una máquina virtual de Windows Server Datacenter que ejecute IIS. Cuando se le solicite la contraseña de azureuser, escriba la que prefiera.

    az vm create \
        --name MyWindowsVM \
        --image Win2019Datacenter \
        --admin-username azureuser
    
  2. Cuando la máquina virtual termine de crearse, ejecute el siguiente comando para instalar IIS y configurar una página web predeterminada:

    az vm extension set \
        --name CustomScriptExtension \
        --vm-name MyWindowsVM \
        --publisher Microsoft.Compute \
        --settings '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $(hostname)"}'
    
  3. Cuando IIS termine de instalarse, ejecute el siguiente comando para abrir el puerto 80 en el servidor web:

    az vm open-port \
        --name MyWindowsVM \
        --port 80
    
  4. Ejecute el comando siguiente para obtener la dirección IP pública de la nueva máquina virtual:

    echo http://$(az vm list-ip-addresses \
                 --name MyWindowsVM \
                 --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
                 --output tsv)
    
  5. En el explorador web, vaya a la dirección IP pública de la máquina virtual. Compruebe que aparece una página web en la que se muestra el nombre de la máquina virtual (MyWindowsVM).

    Screenshot of the webpage from the Windows virtual machine.

  1. En Cloud Shell, ejecute los comandos siguientes para crear una máquina virtual Ubuntu Server que ejecute Nginx.

    az vm create \
        --name MyUbuntuVM \
        --image Ubuntu2204 \
        --generate-ssh-keys
    
    az vm open-port \
        --name MyUbuntuVM \
        --port 80
    
    az vm extension set \
        --publisher Microsoft.Azure.Extensions \
        --name CustomScript \
        --vm-name MyUbuntuVM \
        --settings '{"commandToExecute":"apt-get -y update && apt-get -y install nginx && hostname > /var/www/html/index.html"}'
    
  2. Cuando la máquina virtual termine de crearse, ejecute el comando siguiente para obtener la dirección IP pública de la nueva máquina virtual:

    echo http://$(az vm list-ip-addresses \
                 --name MyUbuntuVM \
                 --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
                 --output tsv)
    
  3. En el explorador web, vaya a la dirección IP pública de la máquina virtual. Compruebe que aparece una página web en la que se muestra el nombre de la máquina virtual, MyUbuntuVM.

    Screenshot of the webpage from the Ubuntu virtual machine.

Generalización de la máquina virtual

  1. Inicie sesión en Azure Portal.

  2. En el menú de Azure Portal o en la página Inicio, seleccione Grupos de recursos y, después, seleccione el grupo de recursos [Nombre del grupo de recursos del espacio aislado].

  3. Seleccione la máquina virtual MyWindowsVM.

  4. En la página MyWindowsVM, seleccione Conectar y, a continuación, seleccione el botón Seleccionar en el cuadro RDP nativo.

  5. En la ventana RDP nativo, seleccione Descargar archivo RDP.

    Screenshot of the Windows virtual machine page, highlighting the Connect button and RDP download.

  6. Cuando se haya descargado el archivo RDP, selecciónelo para abrir una conexión RDP a la máquina virtual.

  7. En el cuadro de diálogo Conexión a Escritorio remoto, seleccione Conectar.

    Screenshot of the Remote Desktop Connection dialog box, stating that the remote connection can't be identified. The Connect button is highlighted.

  8. En el cuadro de diálogo Seguridad de Windows, seleccione Más opciones y, después, Usar otra cuenta.

  9. Inicie sesión con el nombre de usuario azureuser y la contraseña de administrador que ha usado al crear la máquina virtual original.

  10. En el cuadro de diálogo Conexión a Escritorio remoto, seleccione para continuar.

    Screenshot of the Remote Desktop Connection dialog box, warning of problems with the security certificate. The Yes button is highlighted.

  11. En la máquina virtual, seleccione el botón Buscar en la esquina inferior izquierda de la pantalla.

    The Search button in the Windows taskbar.

  12. En el cuadro Escriba aquí para buscar, escriba Símbolo del sistema, pero no presione la tecla Entrar.

  13. En la ventana Mejor coincidencia, haga clic con el botón derecho en la aplicación Símbolo del sistema y, después, seleccione Ejecutar como administrador.

    Screenshot of opening the Windows command prompt as an administrator.

  14. En la ventana del símbolo del sistema, use el comando siguiente para ejecutar la herramienta Sysprep:

    C:\windows\system32\sysprep\sysprep
    
  15. En el cuadro de diálogo Herramienta de preparación del sistema, seleccione las opciones siguientes y, después, seleccione Aceptar:

    Propiedad Valor
    Acción de limpieza del sistema Iniciar la configuración rápida (OOBE) del sistema
    Generalizar Seleccionar
    Opciones de apagado Apagar

    Screenshot of the Sysprep dialog box.

  16. Espere a que termine la herramienta Sysprep y finalice la conexión a la máquina virtual. Después, en el cuadro de mensaje Conexión a Escritorio remoto, seleccione Aceptar.

    Screenshot of the Session Ended dialog box.

  17. En la ventana de Cloud Shell, ejecute el comando siguiente para desasignar la máquina virtual:

    az vm deallocate \
        --name MyWindowsVM
    
  18. Cuando la máquina virtual termine de desasignar, ejecute el siguiente comando para generalizar la máquina virtual:

    az vm generalize \
        --name MyWindowsVM
    
  1. En la ventana de Cloud Shell, ejecute el comando siguiente para conectarse a la máquina virtual de Ubuntu. Reemplace <ip address> por la dirección IP pública de la máquina virtual que ha anotado durante la tarea de instalación.

    ssh -o StrictHostKeyChecking=no <ip address>
    
  2. Ejecute el comando siguiente para preparar la máquina virtual para la generalización:

    sudo waagent -deprovision+user
    

    En el mensaje ¿Desea continuar? (S/N), escriba S y presione Entrar.

  3. Cuando haya finalizado la operación, ejecute el comando siguiente para cerrar la conexión a la máquina virtual:

    exit
    
  4. En Cloud Shell, ejecute el comando siguiente para desasignar la máquina virtual:

    az vm deallocate \
        --name MyUbuntuVM
    
  5. Cuando la máquina virtual termine de desasignar, ejecute el siguiente comando para generalizar la máquina virtual:

    az vm generalize \
        --name MyUbuntuVM
    

Crear una imagen de máquina virtual

Ejecute el comando siguiente para crear una imagen de máquina virtual con el nombre MyVMImage a partir de la máquina virtual generalizada:

az image create \
    --name MyVMIMage \
    --source MyWindowsVM
  1. Ejecute el comando siguiente para crear una imagen de máquina virtual con el nombre MyVMImage a partir de la máquina virtual generalizada:

    az image create \
        --name MyVMIMage \
        --source MyUbuntuVM
    

Creación de una máquina virtual mediante la nueva imagen

  1. Ejecute este comando para crear una máquina virtual mediante la imagen MyVMImage:

    az vm create \
      --name MyVMFromImage \
      --computer-name MyVMFromImage \
      --image MyVMImage \
      --admin-username azureuser \
      --generate-ssh-keys
    
  2. Cuando la máquina virtual termine de crearse, ejecute el siguiente comando para actualizar la página web predeterminada con el nombre del servidor:

        az vm extension set \
        --publisher Microsoft.Azure.Extensions \
        --name CustomScript \
        --vm-name MyVMFromImage \
        --settings '{"commandToExecute":"hostname > /var/www/html/index.html"}'
    
  3. Cuando la página web predeterminada termine de actualizarse, ejecute el siguiente comando para abrir el puerto 80 en la nueva máquina virtual:

    az vm open-port \
        --name MyVMFromImage \
        --port 80
    
  4. Ejecute el comando siguiente para obtener la dirección IP pública de la nueva máquina virtual:

    echo http://$(az vm list-ip-addresses \
                    --name MyVMFromImage \
                    --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
                    --output tsv)
    
  5. En el explorador web, vaya a la dirección IP pública de la nueva máquina virtual. Compruebe que aparezca una página web con el nombre de la máquina virtual a partir de la que se ha compilado la imagen, MyVMFromImage.

  1. Ejecute el comando siguiente para crear una máquina virtual mediante la imagen MyVMImage. Escriba la contraseña azureuser que usó al crear la máquina virtual original.

    az vm create \
      --name MyVMFromImage \
      --computer-name MyVMFromImage \
      --image MyVMImage \
      --admin-username azureuser
    
  2. Cuando la máquina virtual termine de crearse, ejecute el siguiente comando para actualizar la página web predeterminada con el nombre del servidor:

    az vm extension set \
        --name CustomScriptExtension \
        --vm-name MyVMFromImage \
        --publisher Microsoft.Compute \
        --settings '{"commandToExecute":"powershell Clear-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\"; Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $(hostname)"}'
    
  3. Cuando la página web predeterminada termine de actualizarse, ejecute el siguiente comando para abrir el puerto 80 en la nueva máquina virtual:

    az vm open-port \
        --name MyVMFromImage \
        --port 80
    
  4. Ejecute el comando siguiente para obtener la dirección IP pública de la nueva máquina virtual:

    echo http://$(az vm list-ip-addresses \
                    --name MyVMFromImage \
                    --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \
                    --output tsv)
    
  5. En el explorador web, vaya a la dirección IP pública de la nueva máquina virtual. Confirme que aparece una página web con el nombre de la máquina virtual a partir de la que se ha compilado la imagen, MyVMFromImage.

Limpieza de los recursos

Cuando termine este módulo, el espacio aislado limpia los recursos de forma automática.

Al trabajar en una suscripción propia, se recomienda identificar al final de un proyecto si aún necesita los recursos creados. Los recursos que se dejan en ejecución pueden costarle mucho dinero. Puede eliminar los recursos de forma individual o eliminar el grupo de recursos para eliminar todo el conjunto de recursos.