Sdílet prostřednictvím


Konfigurace počítačů do požadovaného stavu

Poznámka:

Azure Automation State Configuration bude vyřazena 30. září 2027. Do tohoto data přejděte na Azure Machine Configuration . Další informace najdete v blogovém příspěvku. Služba Azure Machine Configuration kombinuje funkce rozšíření DSC, Azure Automation State Configuration a nejčastěji požadované funkce od zpětné vazby zákazníků. Konfigurace počítače Azure také zahrnuje podporu hybridních počítačů prostřednictvím serverů s podporou Arc.

Upozornění

Azure Automation DSC pro Linux se 30. září 2023 vyřadil z 30. Další informace najdete v oznámení.

Azure Automation State Configuration umožňuje zadat konfigurace pro vaše servery a zajistit, aby tyto servery byly v zadaném stavu v průběhu času.

  • Připojení virtuálního počítače ke správě pomocí Azure Automation DSC
  • Nahrání konfigurace do Azure Automation
  • Kompilace konfigurace do konfigurace uzlu
  • Přiřazení konfigurace uzlu ke spravovanému uzlu
  • Kontrola stavu dodržování předpisů spravovaného uzlu

Pro účely tohoto kurzu použijeme jednoduchou konfiguraci DSC, která zajistí, že je na virtuálním počítači nainstalovaná služba IIS.

Požadavky

  • Účet Azure Automation. Další informace o účtu Automation a jeho požadavcích najdete v přehledu ověřování účtu Automation.
  • Virtuální počítač Azure Resource Manageru (ne klasický) se systémem Windows Server 2008 R2 nebo novějším. Pokyny k vytvoření virtuálního počítače najdete v tématu Vytvoření prvního virtuálního počítače s Windows na webu Azure Portal.
  • Modul Azure PowerShell verze 3.6 nebo novější Verzi zjistíte spuštěním příkazu Get-Module -ListAvailable Az. Pokud potřebujete upgrade, přečtěte si téma Instalace modulu Azure PowerShell.
  • Znalost konfigurace požadovaného stavu (DSC) Informace o DSC naleznete v tématu Přehled konfigurace požadovaného stavu prostředí Windows PowerShell.

Podpora částečných konfigurací

Azure Automation State Configuration podporuje použití částečných konfigurací. V tomto scénáři je DSC nakonfigurovaná tak, aby spravovala více konfigurací nezávisle a každá konfigurace se načítá ze služby Azure Automation. Ke uzlu na účet Automation se ale dá přiřadit jenom jedna konfigurace. To znamená, že pokud pro uzel používáte dvě konfigurace, potřebujete dva účty Automation.

Podrobnosti o tom, jak zaregistrovat částečnou konfiguraci ze služby vyžádané replikace, najdete v dokumentaci k částečným konfiguracím.

Další informace o tom, jak týmy můžou spolupracovat na spolupráci na správě serverů pomocí konfigurace jako kódu, najdete v tématu Vysvětlení role DSC v kanálu CI/CD.

Přihlášení k Azure

Přihlaste se ke svému předplatnému Azure pomocí rutiny Connect-AzAccount a postupujte podle pokynů na obrazovce.

Connect-AzAccount

Vytvoření a nahrání konfigurace do Služby Azure Automation

V textovém editoru zadejte následující text a uložte ho místně jako TestConfig.ps1.

configuration TestConfig {
   Node WebServer {
      WindowsFeature IIS {
         Ensure               = 'Present'
         Name                 = 'Web-Server'
         IncludeAllSubFeature = $true
      }
   }
}

Poznámka:

Názvy konfigurací ve službě Azure Automation musí být omezené na maximálně 100 znaků.

V pokročilejších scénářích, ve kterých potřebujete importovat více modulů, které poskytují prostředky DSC, se ujistěte, že každý modul má v konfiguraci jedinečný Import-DscResource řádek.

Voláním rutiny Import-AzAutomationDscConfiguration nahrajte konfiguraci do účtu Automation.

$importAzAutomationDscConfigurationSplat = @{
    SourcePath = 'C:\DscConfigs\TestConfig.ps1'
    ResourceGroupName = 'MyResourceGroup'
    AutomationAccountName = 'myAutomationAccount'
    Published = $true
}
Import-AzAutomationDscConfiguration @importAzAutomationDscConfigurationSplat

Kompilace konfigurace do konfigurace uzlu

Před přiřazením k uzlu musí být konfigurace DSC zkompilována do konfigurace uzlu. Viz konfigurace DSC.

Volání rutiny Start-AzAutomationDscCompilationJob ke kompilaci TestConfig konfigurace do konfigurace uzlu pojmenované TestConfig.WebServer ve vašem účtu Automation.

$startAzAutomationDscCompilationJobSplat = @{
    ConfigurationName = 'TestConfig'
    ResourceGroupName = 'MyResourceGroup'
    AutomationAccountName = 'myAutomationAccount'
}
Start-AzAutomationDscCompilationJob @startAzAutomationDscCompilationJobSplat

Registrace virtuálního počítače, který se má spravovat službou State Configuration

Azure Automation State Configuration můžete použít ke správě virtuálních počítačů Azure (Classic i Resource Manager), místních virtuálních počítačů, počítačů s Linuxem, virtuálních počítačů AWS a místních fyzických počítačů. V tomto článku se podíváme, jak zaregistrovat jenom virtuální počítače Azure Resource Manageru. Informace o registraci jiných typů počítačů najdete v tématu Onboarding počítačů pro správu službou Azure Automation State Configuration.

Voláním rutiny Register-AzAutomationDscNode zaregistrujte virtuální počítač ve službě Azure Automation State Configuration jako spravovaný uzel.

$registerAzAutomationDscNodeSplat = @{
    ResourceGroupName = 'MyResourceGroup'
    AutomationAccountName = 'myAutomationAccount'
    AzureVMName = 'DscVm'
}
Register-AzAutomationDscNode @registerAzAutomationDscNodeSplat

Zadání nastavení režimu konfigurace

Pomocí rutiny Register-AzAutomationDscNode zaregistrujte virtuální počítač jako spravovaný uzel a zadejte vlastnosti konfigurace. Můžete například určit, že se stav počítače použije pouze jednou ApplyOnly zadáním hodnoty ConfigurationMode vlastnosti. Konfigurace stavu se po počáteční kontrole nepokouší použít konfiguraci.

$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

Tím se přiřadí konfigurace uzlu pojmenovaná TestConfig.WebServer k registrovanému uzlu DscVmDSC . Ve výchozím nastavení se v uzlu DSC kontroluje dodržování předpisů s konfigurací uzlu každých 30 minut. Informace o tom, jak změnit interval kontroly dodržování předpisů, naleznete v tématu Konfigurace místního nástroje Configuration Manager.

Kontrola stavu dodržování předpisů spravovaného uzlu

Pomocí rutiny Get-AzAutomationDscNodeReport můžete získat sestavy o stavu dodržování předpisů spravovaného uzlu.

# 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]

Další kroky