Ejercicio: Definición de un DSC y configuración de un estado deseado

Completado

En este ejercicio, creará una cuenta de Azure Automation y cargará una instancia de DSC de PowerShell. A continuación incorporará una máquina virtual existente a Azure Automation. Por último, comprobará si falta IIS en la máquina virtual. Si es así, ejecutará código para instalar y configurar IIS en la máquina virtual.

Creación de una máquina virtual

Para comenzar, implemente una nueva máquina virtual a partir de una imagen de Windows Server 2019.

  1. En el panel derecho de Azure Cloud Shell, ejecute los comandos siguientes para crear un nombre de usuario y generar una contraseña aleatoria:

    USERNAME=azureuser
    PASSWORD=$(openssl rand -base64 32)
    
  2. Ejecute el comando siguiente en Cloud Shell para crear una máquina virtual:

    az vm create \
      --resource-group <rgn>[Sandbox resource group name]</rgn> \
      --name myVM \
      --image win2019datacenter \
      --admin-username $USERNAME \
      --admin-password $PASSWORD
    

    La creación de la máquina virtual y los recursos auxiliares tarda unos minutos en realizarse. Si la máquina virtual se crea correctamente, debería ver una salida similar a la siguiente:

    {
      "fqdns": "",
      "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
      "location": "eastus",
      "macAddress": "00-0D-3A-36-BA-28",
      "powerState": "virtual machine running",
      "privateIpAddress": "10.0.0.4",
      "publicIpAddress": "104.40.69.56",
      "resourceGroup": "myResourceGroup"
    }
    
  3. Copie la publicIpAddress de esta salida y guárdela. Más adelante en el ejercicio, usará esta dirección para acceder a la máquina virtual.

  4. Ejecute el comando siguiente en Cloud Shell para abrir el puerto 80 en la máquina virtual para el tráfico web:

    az vm open-port \
      --port 80 \
      --resource-group <rgn>[Sandbox resource group name]</rgn> \
      --name myVM
    
  5. En el explorador web, vaya a la dirección IP pública de la máquina virtual http://[public-ip]. Aunque el puerto 80 está abierto, la conexión debe tener un tiempo de espera de This site can't be reached. Este error se produce porque IIS no está implementado en la máquina virtual. Lo corregiremos más adelante en este ejercicio.

Creación de una cuenta de Azure Automation

  1. Inicie sesión en Azure Portal con la misma cuenta que ha usado para activar el espacio aislado.

  2. En el menú de recursos de Azure Portal, o bien en la página Inicio, seleccione Crear un recurso. Aparecerá el panel Crear un recurso.

  3. En el cuadro de texto Search services and marketplace (Servicios de búsqueda y Marketplace), escriba Automation y seleccione Entrar para ver los resultados de la búsqueda.

  4. En los resultados de la búsqueda de Automation, seleccione el servicio de Azure Automation publicado por Microsoft.

  5. Seleccione Crear. Aparece el panel Crear cuenta de Automation.

  6. Escriba los valores siguientes para cada opción.

    Configuración Value
    Subscription Suscripción de Concierge
    Grupo de recursos Seleccione el grupo de recursos existente en la lista desplegable.
    Nombre Escriba un nombre para la cuenta de Automation. Se recomienda usar [sus iniciales]-automation-account. Use este nombre siempre que vea [nombre-de-la-cuenta-de-Automation] en este ejercicio.
    Region Aceptar la ubicación predeterminada
  7. Seleccione Revisar y crear y, a continuación, seleccione Crear. Espere hasta que se implemente la cuenta de Automation.

  8. Seleccione Ir al recurso cuando se complete la implementación. Aparece el panel Cuenta de Automation del recurso.

Creación de un script de configuración de DSC

  1. En Cloud Shell, ejecute el comando siguiente para iniciar una sesión de PowerShell:

    pwsh
    
  2. En el símbolo del sistema de PowerShell, ejecute el comando siguiente para abrir un nuevo archivo denominado MyDscConfiguration.ps1 en el editor de código:

    code $HOME/MyDscConfiguration.ps1
    
  3. Escriba el bloque de código siguiente en el archivo. Este código crea una configuración para instalar IIS si aún no se ha instalado. El código ejecuta entonces el script para compilar la configuración.

    Configuration MyDscConfiguration {
      Node "localhost" {
        WindowsFeature MyFeatureInstance {
          Ensure = 'Present'
          Name = 'Web-Server'
        }
      }
    }
    
  4. Seleccione Ctrl+S para guardar el archivo en el directorio principal y después Ctrl+Q para cerrar el editor.

  5. En la sesión de PowerShell de Azure Cloud Shell, escriba el código siguiente, reemplazando [your-automation-account-name] por el nombre del recurso de la cuenta de Automation, para cargar el script de DSC en la cuenta de Azure Automation.

    Import-AzAutomationDscConfiguration `
        -Published `
        -ResourceGroupName <rgn>[Sandbox resource group name]</rgn> `
        -SourcePath $HOME/MyDscConfiguration.ps1 `
        -Force `
        -AutomationAccountName [your-automation-account-name]
    

    El comando debería generar una salida similar al texto siguiente:

    ResourceGroupName     : <rgn>[Sandbox resource group name]</rgn>
    AutomationAccountName : [your-automation-account-name]
    Location              : eastus
    State                 : Published
    Name                  : MyDscConfiguration
    Tags                  : {}
    CreationTime          : 6/25/21 5:44:36 PM +00:00
    LastModifiedTime      : 6/25/21 5:44:36 PM +00:00
    Description           :
    Parameters            : {}
    LogVerbose            : False
    

Adición de los módulos necesarios (opcional)

Después de cargar el script de configuración de DSC, importe los módulos de PowerShell que necesite el proceso de DSC. En la configuración no hay que importar otros módulos, de modo que este paso se puede omitir. Si necesita importar o agregar módulos a su cuenta de Automation, vaya a la cuenta de Automation en Azure Portal. Desde allí, seleccionará Módulos en el encabezado Recursos compartidos de la izquierda y, a continuación, seleccionará Agregar un módulo.

Compilación del script DSC

  1. En Azure Portal, todavía debe mostrarse el panel Información general de la cuenta de Azure Automation.

  2. En el menú de la cuenta de AUtomation, en Administración de configuración, seleccione State Configuration (DSC). Aparece el panel State configuration (DSC) de la cuenta de Automation.

  3. Seleccione la pestaña Configuraciones. Compruebe que aparece la configuración MyDscConfiguration y luego selecciónela. Compruebe que aparece el panel de configuración MyDscConfiguration.

    Screenshot of the Azure portal, showing the state configurations available on the State configuration (DSC) pane.

  4. En la barra de comandos, seleccione Compilar.

  5. En el cuadro de diálogo Compilar configuración DSC, seleccione .

  6. Compruebe las notificaciones (el icono Notificaciones se encuentra en los controles globales del encabezado de página). Espere a que el trabajo de compilación muestre la opción Estado como Completado, lo cual puede tardar varios minutos.

    Nota:

    Es posible que tenga que actualizar para ver el cambio de estado. Para actualizar, en la ruta de acceso de la ruta de navegación superior izquierda de Azure Portal, seleccione la cuenta de Automation. Aparece el panel State configuration (DSC). En la barra de menús superior, seleccione Actualizar. A continuación, seleccione la configuración MyDscConfiguration en la lista para volver al panel MyDscConfiguration. En la pestaña Trabajos de compilación, la opción Estado debería aparecer ahora como Completado.

    Screenshot of the Azure portal, showing the state of the compilation job for the configuration.

  7. Cuando se haya completado la compilación, cierre el panel MyDscConfiguration. Aparece el panel Configuración de estado (DSC).

Registro de la máquina virtual con la cuenta de Azure Automation

  1. En el panel State Configuration (DSC) de [nombre-cuenta-Automation], seleccione la pestaña Nodos y, en la barra de comandos, seleccione Agregar. Aparece el panel Máquina virtual de la cuenta de Automation.

    Screenshot of the Azure portal, showing the Nodes pane.

  2. Seleccione la máquina virtual que creó en la primera tarea de este ejercicio (myVM). La configuración y la máquina virtual pueden tardar hasta 10 minutos en propagarse en la red. Si la máquina virtual no aparece en la lista, espere unos minutos y seleccione Actualizar en la barra de comandos hasta que aparezca.

  3. En la barra de comandos, seleccione Conectar. Aparece el panel Registro.

    Screenshot of the Azure portal, showing the Virtual Machines pane.

  4. Escriba los valores siguientes para cada opción.

    Configuración Valor
    Nombre de la configuración de nodo En la lista desplegable, seleccione MyDscConfiguration.localhost
    Actualizar frecuencia 30
    Frecuencia del modo de configuración 15
    Modo de configuración ApplyAndMonitor
    Permitir invalidación de módulo Seleccionar casilla
    Reiniciar nodo si es necesario Seleccionar casilla
    Acción tras el reinicio ContinueConfiguration
  5. Seleccione Aceptar.

  6. Espere a que la máquina virtual esté conectada. Este proceso puede tardar unos minutos. Cuando myVM se haya conectado, en la ruta de navegación de la parte superior izquierda del portal, seleccione la cuenta de Automation para cerrar el panel Registro y Máquinas virtuales. Aparece el panel State configuration (DSC) de la cuenta de Automation.

  7. En la barra de comandos, seleccione Actualizar.

  8. Compruebe que el nodo myVM aparece en la lista y que su estado es Compatible.

    Screenshot of the Azure portal, showing the Nodes pane with myVM registered.

Comprobación de que IIS se ha instalado en la máquina virtual

En el explorador web, vaya a http://[public-ip], donde [public-ip] es la dirección IP pública que registró anteriormente en este ejercicio.

Debería ver la página web predeterminada de IIS. Screenshot of the web browser, showing the default IIS pane.

¡Enhorabuena! Ha implementado IIS correctamente. Azure Automation ha usado el script DSC de PowerShell que ha cargado en la cuenta de Azure Automation.