Konfigurowanie żądanego stanu maszyn

Uwaga

Azure Automation State Configuration zostanie wycofana 30 września 2027 r., przejdź na Azure Machine Configuration do tego czasu. Aby uzyskać więcej informacji, zobacz ogłoszenie blog. Usługa Azure Machine Configuration łączy funkcje rozszerzenia DSC, Azure Automation State Configuration i najczęściej żądane funkcje opinii klientów. Azure Machine Configuration obejmuje również obsługę maszyn hybrydowych za pośrednictwem serwerów z obsługą Arc.

Ważne

Linki nawigacyjne Dodaj, Konfiguracja składu i Galeria zostaną usunięte z portalu z dniem 31 marca 2025 roku.

Uwaga

Azure Automation DSC dla systemu Linux został wycofany 30 września 2023 r. Aby uzyskać więcej informacji, zobacz ogłoszenie.

Azure Automation State Configuration umożliwia określenie konfiguracji serwerów i upewnienie się, że te serwery znajdują się w określonym stanie w czasie.

  • Dołączanie maszyny wirtualnej do zarządzania przez usługę Azure Automation DSC
  • Przekazywanie konfiguracji do Azure Automation
  • Skompiluj konfigurację do konfiguracji węzła
  • Przypisywanie konfiguracji węzła do zarządzanego węzła
  • Sprawdzanie stanu zgodności zarządzanego węzła

Na potrzeby tego samouczka użyjemy prostej konfiguracji DSC, która gwarantuje, że usługi IIS są zainstalowane na maszynie wirtualnej.

Wymagania wstępne

Uwaga

Windows Server 2008 r. i Windows Server 2008 R2 osiągnęły koniec wsparcia technicznego (EOS). Aby uzyskać więcej informacji, zobacz Koniec wsparcia dla Windows Server 2008 i Windows Server 2008 R2 oraz Dokonaj uaktualnienia na miejscu do wersji Windows Server 2016, 2019, 2022 lub 2025. Przejrzyj swoje użycie systemu operacyjnego i odpowiednio zaplanuj jego aktualizacje i migracje.

Obsługa częściowych konfiguracji

Azure Automation State Configuration obsługuje użycie częściowych konfiguracji . W tym scenariuszu konfiguracja DSC jest skonfigurowana do niezależnego zarządzania wieloma konfiguracjami, a każda konfiguracja jest pobierana z Azure Automation. Można jednak przypisać tylko jedną konfigurację do węzła w jednym koncie automatyzacji. Oznacza to, że jeśli używasz dwóch konfiguracji dla węzła, potrzebujesz dwóch kont usługi Automation.

Aby uzyskać szczegółowe informacje na temat rejestrowania częściowej konfiguracji z usługi ściągania, zobacz dokumentację dotyczącą częściowych konfiguracji.

Aby uzyskać więcej informacji na temat współpracy zespołów w celu wspólnego zarządzania serwerami przy użyciu konfiguracji jako kodu, zobacz Zrozumienie roli DSC w potoku CI/CD (ciągłej integracji/ciągłego wdrażania).

Zaloguj się do Azure

Zaloguj się do subskrypcji Azure przy użyciu polecenia cmdlet Connect-AzAccount i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.

Connect-AzAccount

Tworzenie i przekazywanie konfiguracji do Azure Automation

W edytorze tekstów wpisz następujące polecenie i zapisz go lokalnie jako Plik TestConfig.ps1.

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

Uwaga

Nazwy konfiguracji w Azure Automation muszą być ograniczone do nie więcej niż 100 znaków.

W bardziej zaawansowanych scenariuszach, w których wymaga się zaimportowania wielu modułów, które zapewniają zasoby DSC, upewnij się, że każdy moduł ma unikatowy Import-DscResource wiersz w konfiguracji.

Wywołaj cmdlet Import-AzAutomationDscConfiguration, aby załadować konfigurację na konto Automation.

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

Skompiluj konfigurację do konfiguracji węzła

Aby można było przypisać konfigurację DSC do węzła, należy najpierw skompilować ją do konfiguracji węzła. Zobacz konfiguracje DSC.

Wywołaj cmdlet Start-AzAutomationDscCompilationJob, aby skompilować TestConfig konfigurację jako konfigurację węzła o nazwie TestConfig.WebServer na koncie Automation.

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

Rejestrowanie maszyny wirtualnej do zarządzania przez State Configuration

Za pomocą Azure Automation State Configuration można zarządzać maszynami wirtualnymi Azure (klasycznymi i Resource Manager), lokalnymi maszynami wirtualnymi, maszynami z systemem Linux, maszynami wirtualnymi platformy AWS i lokalnymi maszynami fizycznymi. W tym artykule omówiono sposób rejestrowania tylko Azure Resource Manager maszyn wirtualnych. Aby uzyskać informacje na temat rejestrowania innych typów maszyn, zobacz Onboarding machines for management by Azure Automation State Configuration (Zarządzanie maszynami Azure Automation State Configuration.

Wywołaj polecenie cmdlet Register-AzAutomationDscNode w celu zarejestrowania maszyny wirtualnej przy użyciu Azure Automation State Configuration jako węzła zarządzanego.

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

Określanie ustawień trybu konfiguracji

Użyj polecenia cmdlet Register-AzAutomationDscNode, aby zarejestrować maszynę wirtualną jako węzeł zarządzany i określić właściwości konfiguracji. Można na przykład określić, że stan maszyny ma być stosowany tylko raz, określając ApplyOnly jako wartość ConfigurationMode właściwości. State Configuration nie próbuje zastosować konfiguracji po początkowym sprawdzeniu.

$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

Spowoduje to przypisanie konfiguracji węzła o nazwie TestConfig.WebServer do zarejestrowanego węzła DscVmDSC. Domyślnie węzeł DSC jest sprawdzany pod kątem zgodności z konfiguracją węzła co 30 minut. Aby uzyskać informacje o sposobie zmiany interwału sprawdzania zgodności, zobacz Konfigurowanie lokalnego Configuration Manager.

Sprawdzanie stanu zgodności zarządzanego węzła

Raporty dotyczące stanu zgodności węzła zarządzanego można uzyskać przy użyciu polecenia 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]

Następne kroki