Configuración de máquinas en un estado deseado
Nota:
State Configuration de Azure Automation se retirará el 30 de septiembre de 2027. Realice la transición a Azure Machine Configuration para esa fecha. Para obtener más información, vea la entrada de blog del anuncio. El servicio Azure Machine Configuration combina características de la extensión DSC, Azure Automation State Configuration y las características que más solicitan los clientes en sus comentarios. Azure Machine Configuration también incluye compatibilidad con las máquinas híbridas mediante servidores habilitados para Arc.
Precaución
DSC de Automatización de Azure para Linux se ha retirado el 30 de septiembre de 2023. Para obtener más información, consulte el anuncio.
Azure Automation State Configuration permite especificar configuraciones para los servidores y asegurarse de que dichos servidores se encuentran en el estado especificado a lo largo del tiempo.
- Incorporación de una máquina virtual para su administración por DSC de Azure Automation
- Carga de una configuración en Azure Automation
- Compilación de una configuración en una configuración de nodo
- Asignación de una configuración de nodo a un nodo administrado
- Comprobación del estado de cumplimiento de un nodo administrado
Para este tutorial, se usa una configuración DSC simple que se asegura de que IIS está instalado en la máquina virtual.
Requisitos previos
- Una cuenta de Azure Automation Para más información sobre las cuentas de Automation y sus requisitos, consulte Introducción a la autenticación de cuentas de Automation.
- Una máquina virtual de Azure Resource Manager (que no es clásica) ejecuta Windows Server 2008 R2, o cualquier versión posterior. Para obtener instrucciones sobre la creación de una máquina virtual, consulte Creación de la primera máquina virtual de Windows en Azure Portal.
- Módulo Azure PowerShell, versión 3.6 o posterior. Ejecute
Get-Module -ListAvailable Az
para encontrar la versión. Si necesita actualizarla, consulte Instalación del módulo de Azure PowerShell. - Familiaridad con Desired State Configuration (DSC). Para obtener información sobre DSC, consulte Información general sobre la configuración de estado deseado de Windows PowerShell.
Compatibilidad con configuraciones parciales
State Configuration de Azure Automation admite el uso de configuraciones parciales. En este escenario, DSC está configurado para administrar varias configuraciones de forma independiente, y cada configuración se recupera de Azure Automation. Sin embargo, solo se puede asignar una configuración a un nodo por cuenta de Automation. Esto significa que si usa dos configuraciones para un nodo, necesita dos cuentas de Automation.
Para obtener más información sobre cómo registrar una configuración parcial de un servicio de extracción, consulte la documentación sobre configuraciones parciales.
Para obtener más información acerca de cómo los equipos pueden trabajar juntos para administrar de forma colaborativa los servidores con la configuración como código, consulte Descripción del rol de DSC en una canalización de CI/CD.
Inicio de sesión en Azure
Inicie sesión en la suscripción a Azure con el cmdlet Connect-AzAccount y siga las instrucciones de la pantalla.
Connect-AzAccount
Creación y carga de una configuración en Azure Automation
En un editor de texto, escriba lo siguiente y guárdelo localmente como TestConfig.ps1.
configuration TestConfig {
Node WebServer {
WindowsFeature IIS {
Ensure = 'Present'
Name = 'Web-Server'
IncludeAllSubFeature = $true
}
}
}
Nota:
Los nombres de configuración en Azure Automation deben limitarse a no más de 100 caracteres.
En escenarios más avanzados en los que se requiere la importación de varios módulos que proporcionen recursos de DSC, asegúrese de que cada módulo tenga una línea única Import-DscResource
en la configuración.
Llame al cmdlet Import-AzAutomationDscConfiguration para cargar una configuración de nodo en la cuenta de Automation.
$importAzAutomationDscConfigurationSplat = @{
SourcePath = 'C:\DscConfigs\TestConfig.ps1'
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
Published = $ture
}
Import-AzAutomationDscConfiguration @importAzAutomationDscConfigurationSplat
Compilación de una configuración en una configuración de nodo
Una configuración DSC se debe compilar en una configuración de nodo antes de que se pueda asignar a un nodo. Consulte Configuraciones de DSC.
Llame al cmdlet Start-AzAutomationDscCompilationJob para compilar la configuración TestConfig
en una configuración de nodo denominada TestConfig.WebServer
de la cuenta de Automation.
$startAzAutomationDscCompilationJobSplat = @{
ConfigurationName = 'TestConfig'
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
}
Start-AzAutomationDscCompilationJob @startAzAutomationDscCompilationJobSplat
Registro de una máquina virtual para su administración mediante State Configuration
Puede usar Azure Automation State Configuration para administrar máquinas virtuales de Azure (tanto clásicas como de Resource Manager), máquinas virtuales locales, máquinas Linux, máquinas virtuales de AWS y máquinas físicas locales. En este artículo, se explicará cómo registrar solo máquinas virtuales de Azure Resource Manager. Para más información sobre el registro de otros tipos de máquinas, consulte Incorporación de máquinas para administrarlas con Azure Automation State Configuration.
Llame al cmdlet Register-AzAutomationDscNode para registrar la máquina virtual con State Configuration de Azure Automation como nodo administrado.
$registerAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
AzureVMName = 'DscVm'
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat
Especificación de opciones del modo de configuración
Use el cmdlet Register-AzAutomationDscNode para registrar una máquina virtual como un nodo administrado y especificar las propiedades de configuración. Por ejemplo, puede especificar que el estado de la máquina se aplique solo una vez; para ello, especifique ApplyOnly
como valor de la propiedad ConfigurationMode
. State Configuration no intenta aplicar la configuración después de la comprobación inicial.
$registerAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
AzureVMName = 'DscVm'
ConfigurationMode = 'ApplyOnly'
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat```
You can also specify how often DSC checks the configuration state by using the
`ConfigurationModeFrequencyMins` property. For more information about DSC configuration settings,
see [Configuring the Local Configuration Manager][05].
```powershell
# Run a DSC check every 60 minutes
$registerAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
AzureVMName = 'DscVm'
ConfigurationModeFrequencyMins = 60
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat```
## Assign a node configuration to a managed node
Now we can assign the compiled node configuration to the VM we want to configure.
```powershell
# Get the ID of the DSC node
$getAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
Name = 'DscVm'
}
$node = Get-AzAutomationDscNode @getAzAutomationDscNodeSplat
# Assign the node configuration to the DSC node
$setAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
NodeConfigurationName = 'TestConfig.WebServer'
NodeId = $node.Id
}
Set-AzAutomationDscNode @setAzAutomationDscNodeSplat
Esto asigna la configuración de nodo llamada TestConfig.WebServer
al nodo DSC registrado DscVm
.
De forma predeterminada, se comprueba el cumplimiento de la configuración del nodo DSC cada 30 minutos. Para obtener información sobre cómo cambiar el intervalo de comprobación de cumplimiento, consulte Configuración del administrador de configuración Local.
Comprobación del estado de cumplimiento de un nodo administrado
Puede obtener informes sobre el estado de cumplimiento de un nodo administrado mediante el cmdlet Get-AzAutomationDscNodeReport.
# Get the ID of the DSC node
$getAzAutomationDscNodeSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
Name = 'DscVm'
}
$node = Get-AzAutomationDscNode @getAzAutomationDscNodeSplat
# Get an array of status reports for the DSC node
$getAzAutomationDscNodeReportSplat = @{
ResourceGroupName = 'MyResourceGroup'
AutomationAccountName = 'myAutomationAccount'
NodeId = $node.Id
}
$reports = Get-AzAutomationDscNodeReport @getAzAutomationDscNodeReportSplat
# Display the most recent report
$reports[0]
Pasos siguientes
- Para dar los primeros pasos, consulte Introducción a Azure Automation State Configuration.
- Para aprender a habilitar nodos, consulte el artículo sobre habilitación de State Configuration de Azure Automation.
- Para aprender a compilar configuraciones de DSC para poder asignarlas a los nodos de destino, consulte Compilación de configuraciones de DSC en Azure Automation State Configuration.
- Para ver un ejemplo del uso de State Configuration de Azure Automation en una canalización de implementación continua, consulte Configuración de la implementación continua con Chocolatey.
- Para obtener información de precios, consulte Precios de State Configuration de Azure Automation.
- Para obtener una referencia de los cmdlets de PowerShell, consulte Az.Automation.