Prueba de los artefactos de paquete de configuración de máquina personalizado

El módulo de PowerShell GuestConfiguration incluye herramientas para automatizar las pruebas de un paquete de configuración fuera de Azure. Use estas herramientas para buscar problemas e iterar rápidamente antes de pasar a la prueba en un entorno conectado a Azure o Arc.

Antes de comenzar las pruebas, debe configurar el entorno de creación y crear un artefacto de paquete de configuración de máquina personalizado.

Importante

Los paquetes personalizados que auditan el estado de un entorno y aplican configuraciones tienen un estado de compatibilidad de disponibilidad general (GA). Sin embargo, se aplican las siguientes limitaciones:

Para usar paquetes de configuración de máquina que aplican configuraciones, se requiere la versión de la extensión de configuración de invitado de máquina virtual de Azure 1.26.24 o posterior, o el agente de Arc 1.10.0 o posterior.

El módulo GuestConfiguration solo está disponible en Ubuntu 18 y versiones superiores. Sin embargo, el paquete y las directivas producidas por el módulo pueden usarse en cualquier distribución/versión de Linux compatible con Azure o Arc.

La prueba de paquetes en macOS no está disponibles.

Puede probar el paquete desde la estación de trabajo o el entorno de integración continua e implementación continua (CI/CD). El módulo GuestConfiguration incluye el mismo agente para el entorno de desarrollo que se usa en máquinas habilitadas para Azure o Arc. El agente incluye una instancia independiente de PowerShell 7.1.3 para Windows y 7.2.0-preview.7 para Linux. La instancia independiente garantiza que el entorno de script en el que se prueba el paquete es coherente con las máquinas que administra mediante la configuración de máquinas.

El servicio de agente en máquinas habilitadas para Azure y Arc se ejecuta como la cuenta LocalSystem en Windows y Root en Linux. Ejecute los comandos de este artículo en un contexto de seguridad con privilegios para obtener los mejores resultados.

Para ejecutar PowerShell como LocalSystem en Windows, use la herramienta SysInternals PSExec.

Para ejecutar PowerShell como Root en Linux, use el comando sudo.

Validación de que el paquete de configuración cumple los requisitos

En primer lugar, compruebe que el paquete de configuración cumple los requisitos básicos mediante Get-GuestConfigurationPackageComplianceStatus. El comando comprueba los siguientes requisitos de paquete.

  • MOF está presente y es válido en la ubicación correcta.
  • Los módulos o dependencias necesarios están presentes con la versión correcta, sin duplicados.
  • Validación de que el paquete está firmado (opcional).
  • Comprobación de que Test y Get devuelven información sobre el estado de cumplimiento.

Parámetros del cmdlet Get-GuestConfigurationPackageComplianceStatus:

  • Ruta de acceso: ruta de acceso o URI del archivo del paquete de configuración de máquina.
  • Parámetro: parámetros de directiva proporcionados en una tabla hash.

Cuando este comando se ejecuta por primera vez, el agente de configuración de máquina se instala en el equipo de prueba en la ruta de acceso C:\ProgramData\GuestConfig\bin en Windows y /var/lib/GuestConfig/bin en Linux. Esta ruta de acceso no es accesible para una cuenta de usuario, por lo que el comando requiere elevación.

Ejecute el siguiente comando para comprobar el paquete:

En Windows, desde una sesión de PowerShell 7 con privilegios elevados.

# Get the current compliance results for the local machine
Get-GuestConfigurationPackageComplianceStatus -Path ./MyConfig.zip

En Linux, mediante la ejecución de PowerShell con sudo.

# Get the current compliance results for the local machine
sudo pwsh -command 'Get-GuestConfigurationPackageComplianceStatus -Path ./MyConfig.zip'

El comando genera un objeto que contiene el estado de cumplimiento y los detalles por recurso.

  complianceStatus  resources
  ----------------  ---------
  True              @{BuiltInAccount=localSystem; ConfigurationName=MyConfig; …

Comprobación de que el paquete de configuración puede aplicar una configuración

Por último, si el modo de paquete de configuración es AuditandSet, puede probar que el método Set puede aplicar la configuración a un equipo local mediante el comando Start-GuestConfigurationPackageRemediation.

Importante

Este comando intenta realizar cambios en el entorno local donde se ejecuta.

Parámetros del cmdlet Start-GuestConfigurationPackageRemediation:

  • Ruta de acceso: ruta de acceso completa del paquete de configuración de máquina.

En Windows, desde una sesión de PowerShell 7 con privilegios elevados.

# Test applying the configuration to local machine
Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip

En Linux, mediante la ejecución de PowerShell con sudo.

# Test applying the configuration to local machine
sudo pwsh -command 'Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip'

El comando solo devuelve la salida cuando se producen errores. Para solucionar problemas relacionados con los eventos que se producen durante Set, use el parámetro -verbose.

Después de ejecutar el comando Start-GuestConfigurationPackageRemediation, puede volver a ejecutar el comando Get-GuestConfigurationComplianceStatus para confirmar que la máquina está ahora en el estado correcto.

Paso siguiente