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 = $true
}
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 DscVm
DSC.
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
- Aby rozpocząć, zobacz Rozpoczynanie pracy z usługą Azure Automation State Configuration.
- Aby dowiedzieć się, jak włączyć węzły, zobacz Włączanie usługi Azure Automation State Configuration.
- Aby dowiedzieć się więcej o kompilowaniu konfiguracji DSC w celu przypisania ich do węzłów docelowych, zobacz Kompilowanie konfiguracji DSC w usłudze Azure Automation State Configuration.
- Aby zapoznać się z przykładem użycia usługi Azure Automation State Configuration w potoku ciągłego wdrażania, zobacz Konfigurowanie ciągłego wdrażania za pomocą aplikacji Chocolatey.
- Aby uzyskać informacje o cenach, zobacz Cennik usługi Azure Automation State Configuration.
- Aby zapoznać się z dokumentacją poleceń cmdlet programu PowerShell, zobacz Az.Automation.