Sdílet prostřednictvím


Plánování migrace stavu do konfigurace počítače ve službě Azure Automation

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.

Konfigurace počítače je nejnovější implementace funkcí poskytovaných službou Azure Automation State Configuration (označovanou také jako Azure Automation Desired State Configuration nebo AADSC). Pokud je to možné, měli byste naplánovat přesun obsahu a počítačů do této nové služby. Tento článek obsahuje pokyny k vypracování strategie migrace z Azure Automation na konfiguraci počítače.

Nové funkce v konfiguraci počítače řeší požadavky zákazníků:

  • Zvýšení limitu velikosti pro konfigurace na 100 MB
  • Pokročilé vytváření sestav prostřednictvím Azure Resource Graphu, včetně ID a stavu prostředku
  • Schopnost spravovat více konfigurací pro stejný počítač
  • Možnost řídit, kdy k nápravě dochází, když se počítače odchylují od požadovaného stavu
  • Prostředky DSC založené na PowerShellu pro Linux i Windows

Než začnete, je vhodné si přečíst koncepční přehled informací na stránce konfigurace počítače azure Policy.

Princip migrace

Nejlepší přístup k migraci spočívá v tom, že se nejprve znovu nasadí obsah a pak se migrují počítače. Tato část popisuje očekávané kroky migrace.

  1. Export konfigurací ze služby Azure Automation
  2. Zjištění požadavků na modul a jejich načtení ve vašem prostředí
  3. Kompilace konfigurací
  4. Vytváření a publikování konfiguračních balíčků počítačů
  5. Testovací balíčky konfigurace počítače
  6. Onboarding hybridních počítačů do Azure Arc
  7. Zrušení registrace serverů ze služby Azure Automation State Configuration
  8. Přiřazení konfigurací serverům pomocí konfigurace počítače

Konfigurace počítače používá DSC verze 2 s PowerShellem verze 7. DSC verze 3 může existovat společně se staršími verzemi DSC ve Windows a Linuxu. Tyto implementace jsou oddělené. Neprobíhá ale žádná detekce konfliktů.

Konfigurace počítače nevyžaduje publikování modulů nebo konfigurací do služby ani kompilaci ve službě. Místo toho vyvíjíte a testujete obsah pomocí účelově vytvořených nástrojů a publikujete obsah všude, kde může počítač přistupovat přes PROTOKOL HTTPS (obvykle Azure Blob Storage).

Pokud se rozhodnete mít počítače v obou službách po určitou dobu, neexistují žádné technické překážky. Obě služby jsou nezávislé.

Export obsahu ze služby Azure Automation

Začněte zjišťováním a exportem obsahu ze služby Azure Automation State Configuration do vývojového prostředí, ve kterém vytváříte, testujete a publikujete balíčky obsahu pro konfiguraci počítače.

Konfigurace

Konfigurační skripty můžete exportovat jenom ze služby Azure Automation. Konfigurace uzlů ani kompilované soubory MOF není možné exportovat. Pokud jste soubory MOF publikovali přímo do účtu Automation a už nemáte přístup k původnímu souboru, budete muset překompilovat z vašich privátních konfiguračních skriptů. Pokud nemůžete najít původní konfiguraci, musíte ji znovu provést.

Pokud chcete exportovat konfigurační skripty z Azure Automation, nejprve identifikujte účet Azure Automation s konfiguracemi a názvem skupiny prostředků, ve které je účet Automation nasazený.

Nainstalujte modul PowerShell Az.Automation.

Install-Module -Name Az.Automation

Potom pomocí Get-AzAutomationAccount příkazu identifikujte účty Automation a skupinu prostředků, do které se nasazují. Pro další kroky jsou důležité vlastnosti ResourceGroupName a AutomationAccountName .

Get-AzAutomationAccount
SubscriptionId        : <your-subscription-id>
ResourceGroupName     : <your-resource-group-name>
AutomationAccountName : <your-automation-account-name>
Location              : centralus
State                 :
Plan                  :
CreationTime          : 6/30/2021 11:56:17 AM -05:00
LastModifiedTime      : 6/30/2021 11:56:17 AM -05:00
LastModifiedBy        :
Tags                  : {}

Objevte konfigurace ve vašem účtu Automation. Výstup má jednu položku na konfiguraci. Pokud jich máte hodně, uložte je jako proměnnou, aby se s ní snadněji pracovalo.

$getParams = @{
    ResourceGroupName     = '<your-resource-group-name>'
    AutomationAccountName = '<your-automation-account-name>'
}

Get-AzAutomationDscConfiguration @getParams
ResourceGroupName     : <your-resource-group-name>
AutomationAccountName : <your-automation-account-name>
Location              : centralus
State                 : Published
Name                  : <your-configuration-name>
Tags                  : {}
CreationTime          : 6/30/2021 12:18:26 PM -05:00
LastModifiedTime      : 6/30/2021 12:18:26 PM -05:00
Description           :
Parameters            : {}
LogVerbose            : False

Nakonec pomocí příkazu Export-AzAutomationDscConfigurationvyexportujte každou konfiguraci do souboru místního skriptu . Výsledný název souboru používá vzor \ConfigurationName.ps1.

$exportParams = @{
    OutputFolder          = '<location-on-your-machine>'
    ResourceGroupName     = '<your-resource-group-name>'
    AutomationAccountName = '<your-automation-account-name>'
    Name                  = '<your-configuration-name>'
}
Export-AzAutomationDscConfiguration @exportParams
UnixMode   User             Group                 LastWriteTime           Size Name
--------   ----             -----                 -------------           ---- ----
                                               12/31/1600 18:09

Export konfigurací pomocí kanálu PowerShellu

Všechny konfigurace můžete exportovat do místní složky na vašem počítači. Pokud chcete tento proces automatizovat, předáte výstup každého příkazu v předchozích příkladech na další příkaz.

Následující příklad exportuje pět konfigurací. Výstupní vzor je jediným indikátorem úspěchu.

Get-AzAutomationAccount |
    Get-AzAutomationDscConfiguration |
    Export-AzAutomationDSCConfiguration -OutputFolder <location on your machine>
UnixMode   User             Group                 LastWriteTime           Size Name
--------   ----             -----                 -------------           ---- ----
                                               12/31/1600 18:09
                                               12/31/1600 18:09
                                               12/31/1600 18:09
                                               12/31/1600 18:09
                                               12/31/1600 18:09

Zvažte rozložení složitých konfiguračních souborů.

Konfigurace počítače může spravovat více než jednu konfiguraci na počítač. Mnoho konfigurací napsaných pro Azure Automation State Configuration předpokládá omezení správy jedné konfigurace na počítač. Pokud chcete využít rozšířené možnosti nabízené konfigurací počítače, můžete velké konfigurační soubory rozdělit do mnoha menších konfigurací, kde každý zpracovává konkrétní scénář.

V konfiguraci počítače není žádná orchestrace, která by mohla řídit pořadí řazení konfigurací. Pokud se vyžaduje postupné provedení kroků v konfiguraci, udržujte kroky v jednom balíčku pohromadě.

Moduly

Moduly z Azure Automation není možné exportovat ani automaticky korelovat, které konfigurace vyžadují, které moduly a verze vyžadují. Abyste mohli vytvořit nový balíček konfigurace počítače, musíte mít moduly v místním prostředí. Pokud chcete vytvořit seznam modulů, které potřebujete k migraci, použijte PowerShell k dotazování služby Azure Automation na název a verzi modulů.

Pokud používáte moduly, které jsou vytvořené vlastní a existují jenom ve vašem privátním vývojovém prostředí, není možné je exportovat ze služby Azure Automation.

Pokud chybí modul potřebný pro konfiguraci a v účtu, nemůžete konfiguraci zkompilovat. Proto nemůžete migrovat konfiguraci.

Výpis modulů importovaných ve službě Azure Automation

Pokud chcete načíst seznam všech modulů nainstalovaných ve vašem účtu Automation, použijte Get-AzAutomationModule příkaz. Vlastnost IsGlobal vám řekne, jestli je modul integrovaný do služby Azure Automation vždy nebo jestli byl publikován do účtu.

Pokud například chcete vytvořit seznam všech modulů publikovaných v libovolném z vašich účtů.

Get-AzAutomationAccount |
    Get-AzAutomationModule |
    Where-Object IsGlobal -eq $false

Můžete také použít Galerie prostředí PowerShell jako pomoc při hledání podrobností o modulech, které jsou veřejně dostupné. Následující příklad uvádí moduly, které jsou integrované do nových účtů Automation a obsahují prostředky DSC.

Get-AzAutomationAccount |
    Get-AzAutomationModule |
    Where-Object IsGlobal -eq $true |
    Find-Module -ErrorAction SilentlyContinue |
    Where-Object {'' -ne $_.Includes.DscResource} |
    Select-Object -Property Name, Version -Unique |
    Format-Table -AutoSize
Name                       Version
----                       -------
AuditPolicyDsc             1.4.0
ComputerManagementDsc      8.4.0
PSDscResources             2.12.0
SecurityPolicyDsc          2.10.0
xDSCDomainjoin             1.2.23
xPowerShellExecutionPolicy 3.1.0.0
xRemoteDesktopAdmin        1.1.0.0

Pokud byly moduly importovány z Galerie prostředí PowerShell, můžete výstup Find-Module převést přímo do Install-Module. Propojení výstupu mezi příkazy poskytuje řešení pro načtení vývojového prostředí se všemi moduly aktuálně v účtu Automation, pokud jsou dostupné v Galerie prostředí PowerShell.

Stejný přístup můžete použít k načtení modulů z vlastního informačního kanálu NuGet. Informační kanál musíte zaregistrovat v místním prostředí jako úložiště PowerShellGet.

Příkaz Find-Module v tomto příkladu nepotlačí chyby, což znamená, že žádné moduly, které se v galerii nenalezly, vrací chybovou zprávu.

Get-AzAutomationAccount |
    Get-AzAutomationModule |
    Where-Object IsGlobal -eq $false |
    Find-Module |
    Where-Object { '' -ne $_.Includes.DscResource } |
    Install-Module

Kontrola konfiguračníchskriptch

Po exportu konfiguračních skriptů ze služby Azure Automation můžete zkontrolovat obsah podrobností o tom, které moduly jsou potřeba ke kompilaci jednotlivých konfigurací do souboru MOF. Tento přístup je nutný pouze v případě, že v účtech Automation najdete konfigurace, které chybí moduly. Konfigurace už nebudou pro počítače užitečné, ale můžou být stále v účtu.

V horní části každého souboru vyhledejte řádek, který obsahuje Import-DscResource. Tento příkaz je použitelný pouze v rámci konfigurace a používá se k načtení modulů v době kompilace.

Například WindowsIISServerConfig konfigurace v Galerie prostředí PowerShell má řádky v tomto příkladu.

configuration WindowsIISServerConfig
{

Import-DscResource -ModuleName @{ModuleName = 'xWebAdministration';ModuleVersion = '1.19.0.0'}
Import-DscResource -ModuleName 'PSDesiredStateConfiguration'

Konfigurace vyžaduje, abyste měli modul xWebAdministration verze 1.19.0.0 a modul PSDesiredStateConfiguration.

Testování obsahu v konfiguraci počítače Azure

Pokud chcete vyhodnotit, jestli můžete použít obsah ze služby Azure Automation State Configuration pro konfiguraci počítače, postupujte podle podrobného kurzu vytvoření artefaktů vlastního balíčku konfigurace počítače.

Když se dostanete ke kroku Vytvoření konfigurace, konfigurační skript, který vygeneruje soubor MOF, by měl být jedním ze skriptů, které jste exportovali ze služby Azure Automation State Configuration. Abyste mohli konfiguraci zkompilovat do souboru MOF a vytvořit konfigurační balíček počítače, musíte mít ve vašem prostředí nainstalované požadované moduly PowerShellu.

Co když modul nefunguje s konfigurací počítače?

Některé moduly můžou mít problémy s kompatibilitou s konfigurací počítače. Nejběžnější problémy souvisejí s rozhraním .NET Framework a .NET Core. Podrobné technické informace jsou k dispozici na stránce, rozdíly mezi Prostředím Windows PowerShell 5.1 a PowerShellem 7.x.

Pokud chcete vyřešit problémy s kompatibilitou, můžete spouštět příkazy v prostředí Windows PowerShell z modulu importovaného v PowerShellu 7 spuštěním powershell.exepříkazu . Můžete si projít ukázkový modul, který tuto techniku používá v úložišti Azure-Policy, kde se používá k auditování stavu konfigurace Windows DSC.

Příklad také ukazuje malý důkaz konceptu.

# example function that could be loaded from module
function New-TaskResolvedInPWSH7 {
    # runs the fictitious command 'Get-myNotCompatibleCommand' in Windows PowerShell
    $compatObject = & powershell.exe -NoProfile -NonInteractive -Command {
        Get-myNotCompatibleCommand
    }
    # resulting object can be used in PowerShell 7
    return $compatObject
}

Musím do Get-TargetResource přidat vlastnost Důvody ve všech modulech, které migruji?

Implementace vlastnosti Důvody poskytuje lepší prostředí při zobrazení výsledků přiřazení konfigurace na webu Azure Portal. Get Pokud metoda v modulu neobsahuje důvody, vrátí se obecný výstup s podrobnostmi z vlastností vrácených metodouGet. Proto je pro migraci nepovinný.

Počítače

Azure Automation State Configuration je k dispozici pro virtuální počítače v Azure i pro hybridní počítače umístěné mimo Azure. Pro každý z těchto scénářů je nutné naplánovat různé kroky.

Virtuální počítače Azure

Virtuální počítače Azure už mají prostředek v Azure, což znamená, že jsou připravené pro přiřazení konfigurace počítačů, která je přidružují ke konfiguraci. Úlohy vysoké úrovně pro migraci virtuálních počítačů Azure je potřeba odebrat z Konfigurace stavu služby Azure Automation a pak přiřadit konfigurace pomocí konfigurace počítače.

Pokud chcete odebrat počítač ze služby Azure Automation State Configuration, postupujte podle kroků na stránce Postup odebrání konfigurace a uzlu ze služby Automation State Configuration.

Pokud chcete přiřadit konfigurace pomocí konfigurace počítače, postupujte podle kroků v rychlých startech pro Azure Policy, jako je rychlý start: Vytvoření přiřazení zásady k identifikaci nevyhovujících prostředků. V kroku 6 při výběru definice zásady vyberte definici, která použije konfiguraci, kterou jste migrovali ze služby Azure Automation State Configuration.

Hybridní počítače

Počítače mimo Azure je možné zaregistrovat ve službě Azure Automation State Configuration, ale nemají v Azure prostředek počítače. Služba Local Configuration Manager (LCM) v počítači zpracovává připojení ke službě Azure Automation. Záznam uzlu se spravuje jako prostředek v typu poskytovatele Azure Automation.

Před odebráním počítače ze služby Azure Automation State Configuration připojte každý uzel jako server s podporou Azure Arc. Onboarding do Služby Azure Arc vytvoří prostředek počítače v Azure, aby služba Azure Policy mohl počítač spravovat. Počítač je možné kdykoli připojit ke službě Azure Arc, ale k automatizaci procesu můžete použít Azure Automation State Configuration.

Řešení potíží při exportu obsahu

Podrobnosti o známýchproblémechch

Export konfigurací má za následek znak \v názvu souboru.

Při použití PowerShellu v systému macOS a Linux může docházet k problémům s výstupem Export-AzAutomationDSCConfigurationnázvů souborů .

Jako alternativní řešení nainstalujte modul AADSCConfigContent z Galerie prostředí PowerShell. Modul má jeden příkaz, který exportuje obsah konfigurace uložené ve službě Azure Automation provedením požadavku REST do služby.

Další kroky