Udostępnij za pośrednictwem


Konfigurowanie żądanego stanu maszyn

Uwaga

Usługa Azure Automation State Configuration zostanie wycofana 30 września 2027 r., przechodząc do usługi Azure Machine Configuration do tej daty. Aby uzyskać więcej informacji, zobacz ogłoszenie w blogu. Usługa Azure Machine Configuration łączy funkcje rozszerzenia DSC, usługi Azure Automation State Configuration i najczęściej żądanych funkcji opinii klientów. Usługa Azure Machine Configuration obejmuje również obsługę maszyn hybrydowych za pośrednictwem serwerów z obsługą usługi Arc.

Uwaga

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

Usługa 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 usługi Azure Automation
  • Kompilowanie konfiguracji w 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

  • Konto usługi Azure Automation. Aby dowiedzieć się więcej o koncie usługi Automation i jego wymaganiach, zobacz Omówienie uwierzytelniania konta usługi Automation.
  • Maszyna wirtualna usługi Azure Resource Manager (nie klasyczna) z systemem Windows Server 2008 R2 lub nowszym. Aby uzyskać instrukcje dotyczące tworzenia maszyny wirtualnej, zobacz Tworzenie pierwszej maszyny wirtualnej z systemem Windows w witrynie Azure Portal.
  • Moduł programu Azure PowerShell w wersji 3.6 lub nowszej. Uruchom polecenie Get-Module -ListAvailable Az, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczne będzie uaktualnienie, zobacz Instalowanie modułu Azure PowerShell.
  • Znajomość konfiguracji żądanego stanu (DSC). Aby uzyskać informacje na temat rozszerzenia DSC, zobacz Omówienie konfiguracji żądanego stanu programu Windows PowerShell.

Obsługa częściowych konfiguracji

Usługa Azure Automation State Configuration obsługuje korzystanie z częściowych konfiguracji. W tym scenariuszu konfiguracja DSC jest skonfigurowana do niezależnego zarządzania wieloma konfiguracjami, a każda konfiguracja jest pobierana z usługi Azure Automation. Można jednak przypisać tylko jedną konfigurację do węzła na konto 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 Understanding DSC's role in a CI/CD Pipeline (Opis roli DSC w potoku ciągłej integracji/ciągłego wdrażania).

Logowanie się do platformy Azure

Zaloguj się do subskrypcji platformy 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 usługi 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 usłudze 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 polecenie cmdlet Import-AzAutomationDscConfiguration , aby przekazać konfigurację na konto usługi Automation.

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

Kompilowanie konfiguracji w konfiguracji węzła

Aby można było przypisać konfigurację DSC do węzła, należy skompilować konfigurację węzła. Zobacz Konfiguracje DSC.

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

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

Rejestrowanie maszyny wirtualnej do zarządzania przez usługę State Configuration

Za pomocą usługi Azure Automation State Configuration można zarządzać maszynami wirtualnymi platformy 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 maszyn wirtualnych usługi Azure Resource Manager. Aby uzyskać informacje na temat rejestrowania innych typów maszyn, zobacz Dołączanie maszyn do zarządzania za pomocą usługi Azure Automation State Configuration.

Wywołaj polecenie cmdlet Register-AzAutomationDscNode , aby zarejestrować maszynę wirtualną w usłudze Azure Automation State Configuration jako węzeł zarządzany.

$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. Konfiguracja stanu 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 programu 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