služba Desired State Configuration pull

Důležité

Server vyžádané replikace ( Windows Feature DSC-Service) je podporovaná součást Systému Windows Server, ale neplánuje se nabízet nové funkce nebo možnosti. rádi bychom, abyste věděli, že novější verze DSC je nyní obecně dostupná, spravovaná funkcí Azure Policy pojmenovanou host configuration. Služba konfigurace hosta kombinuje funkce rozšíření DSC, Azure Automation State Configuration a nejčastěji požadované funkce podle zpětné vazby od zákazníků. Konfigurace hosta zahrnuje také podporu hybridních počítačů prostřednictvím serverů s podporou Arc.

Místní Configuration Manager (LCM) lze centrálně spravovat pomocí řešení Služby vyžádané replikace. Při použití tohoto přístupu se spravovaný uzel zaregistruje ve službě a přiřadí se konfigurace v nastavení LCM. Konfigurace a všechny prostředky DSC potřebné jako závislosti pro konfiguraci se stáhnou do počítače a použijí se nástrojem LCM ke správě konfigurace. Informace o stavu spravovaného počítače se nahrají do služby pro generování sestav. Tento koncept se označuje jako "služba vyžádání změn".

Mezi aktuální možnosti služby vyžádání změn patří:

  • Azure Automation Desired State Configuration služba
  • Služba vyžádané replikace spuštěná na Windows Serveru
  • Opensourcová řešení spravovaná komunitou
  • Sdílená složka SMB

Doporučené měřítko pro každé řešení je následující:

Řešení Klientské uzly
Windows Pull Server s využitím databáze MDB/ESENT Až 500 uzlů
Windows Pull Server s využitím databáze SQL Až 3500 uzlů
Azure Automation DSC Malá i velká prostředí

Doporučeným řešením a možností s nejvíce dostupnými funkcemi je Azure Automation DSC. Nebyl zjištěn horní limit počtu uzlů na účet Automation.

Služba Azure může spravovat uzly místně v privátních datacentrech nebo ve veřejných cloudech, jako jsou Azure a AWS. V privátních prostředích, ve kterých se servery nemůžou přímo připojit k internetu, zvažte omezení odchozího provozu pouze na publikovaný rozsah IP adres Azure (viz Rozsahy IP adres datacentra Azure).

Mezi funkce online služby, které nejsou aktuálně dostupné ve službě vyžádané replikace na Windows Serveru, patří:

  • Všechna přenášená a neaktivní uložená data jsou zašifrovaná.
  • Klientské certifikáty se vytvářejí a spravují automaticky.
  • Úložiště tajných kódů pro centrální správu hesel, přihlašovacích údajů nebo proměnných , jako jsou názvy serverů nebo připojovací řetězce
  • Centrální správa konfigurace LCM uzlů
  • Centrální přiřazení konfigurací klientským uzlům
  • Vydání změn konfigurace "kanárových skupin" pro testování před uvedením do produkčního prostředí
  • Grafické vytváření sestav
    • Podrobnosti o stavu na úrovni členitosti prostředku DSC
    • Podrobné chybové zprávy z klientských počítačů pro řešení potíží
  • Integrace s Azure Log Analytics pro upozorňování, automatizované úlohy, aplikace pro Android/iOS pro vytváření sestav a upozorňování

Služba vyžádané replikace DSC ve Windows Serveru

Službu vyžádané replikace je možné nakonfigurovat tak, aby běžela na Windows Serveru. Upozorňujeme, že řešení služby vyžádané replikace, které je součástí Windows Serveru, zahrnuje pouze možnosti ukládání konfigurací a modulů pro stahování a zachytávání dat sestav do databáze. Nezahrnuje mnoho funkcí nabízených službou v Azure, a proto není vhodným nástrojem pro vyhodnocení, jak by se služba používala.

Služba vyžádání obsahu nabízená ve Windows Serveru je webová služba ve službě IIS, která používá rozhraní OData k zpřístupnění konfiguračních souborů DSC cílovým uzlům, když o ně tyto uzly požádají.

Požadavky na použití serveru vyžádané replikace:

  • Server se systémem:
    • WMF/PowerShell 4.0 nebo novější
    • Role serveru IIS
    • Služba DSC
  • V ideálním případě některé způsoby generování certifikátu pro zabezpečení přihlašovacích údajů předávaných do místního Configuration Manager (LCM) na cílových uzlech

Nejlepším způsobem, jak nakonfigurovat Windows Server pro hostování služby vyžádané replikace, je použít konfiguraci DSC. Níže najdete příklad skriptu.

Podporované databázové systémy

WMF 4.0 WMF 5.0 WMF 5.1 WMF 5.1 (Windows Server Insider Preview 17090)
MDB ESENT (výchozí), MDB ESENT (výchozí), MDB ESENT (výchozí), SQL Server, MDB

Od verze 17090 systému Windows Server je SQL Server podporovanou možností pro službu vyžádané replikace (Windows Feature DSC-Service). To poskytuje novou možnost škálování rozsáhlých prostředí DSC, která se nemigrovala na Azure Automation DSC.

Poznámka

SQL Server podpora nebude přidána do předchozích verzí WMF 5.1 (nebo starších) a bude k dispozici pouze ve verzích Windows Serveru větších než nebo rovna 17090.

Pokud chcete server vyžádané replikace nakonfigurovat tak, aby používal SQL Server, nastavte SqlProvider na $true a SqlConnectionString na platný SQL Server připojovací řetězec. Další informace najdete v tématu Připojovací řetězce SqlClient. Příklad konfigurace SQL Server pomocí služby xDscWebService najdete v tématu Použití prostředku xDscWebService a pak si projděte 2-xDscWebService_RegistrationUseSQLProvider_Config.ps1 na GitHubu.

Použití prostředku xDscWebService

Nejjednodušší způsob, jak nastavit server webového vyžádání, je použít prostředek xDscWebService , který je součástí modulu xPSDesiredStateConfiguration . Následující kroky vysvětlují, jak použít prostředek v nástroji Configuration , který nastavuje webovou službu.

  1. Voláním rutiny Install-Module nainstalujte modul xPSDesiredStateConfiguration .

    Poznámka

    Install-Module je součástí modulu PowerShellGet , který je součástí PowerShellu 5.0 a novějšího.

  2. Získejte certifikát SSL pro server vyžádané replikace DSC od důvěryhodné certifikační autority, a to buď v rámci vaší organizace, nebo od veřejné autority. Certifikát přijatý od autority je obvykle ve formátu PFX.

  3. Nainstalujte certifikát na uzel, ze kterého se stane server vyžádané replikace DSC ve výchozím umístění, kterým by měl být CERT:\LocalMachine\My.

    • Poznamenejte si kryptografický otisk certifikátu.
  4. Vyberte identifikátor GUID, který se má použít jako registrační klíč. Pokud ho chcete vygenerovat pomocí PowerShellu, zadejte na příkazovém řádku ps následující příkaz a stiskněte enter: [guid]::newGuid() nebo New-Guid. Tento klíč budou klientské uzly používat jako sdílený klíč k ověření během registrace. Další informace najdete v části Registrační klíč níže.

  5. V prostředí PowerShell ISE spusťte (F5) následující konfigurační skript (zahrnutý ve složce modulu xPSDesiredStateConfiguration jako Sample_xDscWebServiceRegistration.ps1). Tento skript nastaví server vyžádané replikace.

    configuration Sample_xDscWebServiceRegistration
    {
        param
        (
            [string[]]$NodeName = 'localhost',
    
            [ValidateNotNullOrEmpty()]
            [string] $certificateThumbPrint,
    
            [Parameter(HelpMessage='This should be a string with enough entropy (randomness)' +
                ' to protect the registration of clients to the pull server.  We will use new' +
                ' GUID by default.'
            )]
            [ValidateNotNullOrEmpty()]
            [string] $RegistrationKey   # A guid that clients use to initiate conversation with pull server
        )
    
        Import-DSCResource -ModuleName PSDesiredStateConfiguration
        Import-DSCResource -ModuleName xPSDesiredStateConfiguration
    
        Node $NodeName
        {
            WindowsFeature DSCServiceFeature
            {
                Ensure = "Present"
                Name   = "DSC-Service"
            }
    
            xDscWebService PSDSCPullServer
            {
                Ensure                  = "Present"
                EndpointName            = "PSDSCPullServer"
                Port                    = 8080
                PhysicalPath            = "$env:SystemDrive\inetpub\PSDSCPullServer"
                CertificateThumbPrint   = $certificateThumbPrint
                ModulePath              = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Modules"
                ConfigurationPath       = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Configuration"
                State                   = "Started"
                DependsOn               = "[WindowsFeature]DSCServiceFeature"
                RegistrationKeyPath     = "$env:PROGRAMFILES\WindowsPowerShell\DscService"
                AcceptSelfSignedCertificates = $true
                UseSecurityBestPractices     = $true
                Enable32BitAppOnWin64   = $false
            }
    
            File RegistrationKeyFile
            {
                Ensure          = 'Present'
                Type            = 'File'
                DestinationPath = "$env:ProgramFiles\WindowsPowerShell\DscService\RegistrationKeys.txt"
                Contents        = $RegistrationKey
            }
        }
    }
    
  6. Spusťte konfiguraci a předáte kryptografický otisk certifikátu SSL jako parametr certificateThumbPrint a registrační klíč GUID jako parametr RegistrationKey :

    # To find the Thumbprint for an installed SSL certificate for use with the pull server list all
    # certificates in your local store and then copy the thumbprint for the appropriate certificate
    # by     reviewing the certificate subjects
    
    dir Cert:\LocalMachine\my
    
    # Then include this thumbprint when running the configuration
    $sample_xDscWebServiceRegistrationSplat = @{
        certificateThumbprint = 'A7000024B753FA6FFF88E966FD6E19301FAE9CCC'
        RegistrationKey = '140a952b-b9d6-406b-b416-e0f759c9c0e4'
        OutputPath = 'C:\Configs\PullServer'
    }
    Sample_xDscWebServiceRegistration @sample_xDscWebServiceRegistrationSplat
    
    # Run the compiled configuration to make the target node a DSC Pull Server
    Start-DscConfiguration -Path c:\Configs\PullServer -Wait -Verbose
    

Registrační klíč

Aby se klientské uzly mohly zaregistrovat na serveru, aby mohly místo ID konfigurace používat konfigurační názvy, uloží se registrační klíč vytvořený výše uvedenou konfigurací do souboru s názvem RegistrationKeys.txt v C:\Program Files\WindowsPowerShell\DscService. Registrační klíč funguje jako sdílený tajný klíč, který se používá při počáteční registraci klientem se serverem vyžádané replikace. Po úspěšném dokončení registrace klient vygeneruje certifikát podepsaný svým držitelem, který se použije k jedinečnému ověření na serveru vyžádané replikace. Kryptografický otisk tohoto certifikátu je uložen místně a přidružen k adrese URL serveru vyžádané replikace.

Poznámka

Registrační klíče nejsou v PowerShellu 4.0 podporované.

Aby bylo možné nakonfigurovat uzel pro ověřování pomocí serveru vyžádané replikace, musí být registrační klíč v metakonfiguraci pro každý cílový uzel, který se bude registrovat na tomto serveru vyžádané replikace. Všimněte si, že registrační klíč v metakonfiguraci níže se odebere po úspěšné registraci cílového počítače a že hodnota musí odpovídat hodnotě uložené v RegistrationKeys.txt souboru na serveru pro vyžádání obsahu (v tomto příkladu 140a952b-b9d6-406b-b416-e0f759c9c0e4). S hodnotou registračního klíče vždy zacházejte bezpečně, protože s vědomím, že umožňuje každému cílovému počítači zaregistrovat se na serveru vyžádané replikace.

[DSCLocalConfigurationManager()]
configuration Sample_MetaConfigurationToRegisterWithLessSecurePullServer
{
    param
    (
        [ValidateNotNullOrEmpty()]
        [string] $NodeName = 'localhost',

        [ValidateNotNullOrEmpty()]
        [string] $RegistrationKey, # the key used to set up pull server in previous configuration

        [ValidateNotNullOrEmpty()]
        [string] $ServerName = 'localhost' # The name of the pull server, same as $NodeName used in previous configuration
    )

    Node $NodeName
    {
        Settings
        {
            RefreshMode        = 'Pull'
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL          = "https://$ServerName`:8080/PSDSCPullServer.svc"
            RegistrationKey    = $RegistrationKey
            ConfigurationNames = @('ClientConfig')
        }

        ReportServerWeb CONTOSO-PullSrv
        {
            ServerURL       = "https://$ServerName`:8080/PSDSCPullServer.svc"
            RegistrationKey = $RegistrationKey
        }
    }
}

$MetaConfigurationSplat = @{
    RegistrationKey = $RegistrationKey
    OutputPath = 'c:\Configs\TargetNodes'
}

Sample_MetaConfigurationToRegisterWithLessSecurePullServer @MetaConfigurationSplat

Poznámka

Oddíl ReportServerWeb umožňuje odesílání dat sestav na server vyžádané replikace.

Chybějící vlastnost ConfigurationID v souboru metakonfigurace implicitně znamená, že server vyžádané replikace podporuje verzi V2 protokolu serveru vyžádané replikace, takže se vyžaduje počáteční registrace. Naopak přítomnost ConfigurationID znamená, že se používá verze V1 protokolu serveru vyžádané replikace a nedochází k žádnému zpracování registrace.

Poznámka

Ve scénáři PUSH existuje v aktuální verzi chyba, která umožňuje definovat vlastnost ConfigurationID v souboru metakonfigurace pro uzly, které se nikdy nezaregistrovaly na serveru vyžádané replikace. Tím se vynutí protokol serveru vyžádané replikace verze 1 a vyhnete se zprávám o chybách registrace.

Umístění konfigurací a prostředků

Po dokončení instalace serveru vyžádané replikace budou ve složkách definovaných vlastnostmi ConfigurationPath a ModulePath v konfiguraci serveru vyžádané replikace umisťovány moduly a konfigurace, které budou k dispozici pro cílové uzly k vyžádání. Tyto soubory musí být v určitém formátu, aby je server vyžádané replikace mohl správně zpracovat.

Formát balíčku modulu prostředků DSC

Každý modul prostředků musí být zazipovaný a pojmenovaný podle následujícího vzoru {Module Name}_{Module Version}.zip.

Například modul s názvem xWebAdminstration s verzí modulu 3.1.2.0 by se jmenoval xWebAdministration_3.1.2.0.zip. Každá verze modulu musí být obsažena v jednom souboru ZIP. Vzhledem k tomu, že v každém souboru ZIP je pouze jedna verze prostředku, formát modulu přidaný ve WMF 5.0 s podporou více verzí modulů v jednom adresáři se nepodporuje. To znamená, že před zabalením modulů prostředků DSC pro použití se serverem vyžádané replikace budete muset provést malou změnu struktury adresářů. Výchozí formát modulů obsahujících prostředek DSC ve WMF 5.0 je {Module Folder}\{Module Version}\DscResources\{DSC Resource Folder}\. Před zabalení pro server vyžádané replikace odeberte složku {Module version} , aby se cesta stala {Module Folder}\DscResources\{DSC Resource Folder}\. S touto změnou zazipujte složku, jak je popsáno výše, a umístěte tyto soubory ZIP do složky ModulePath .

Slouží New-DscChecksum {module zip file} k vytvoření souboru kontrolního součtu pro nově přidaný modul.

Formát MOF konfigurace

Konfigurační soubor MOF musí být spárovaný se souborem kontrolního součtu, aby LCM na cílovém uzlu mohl konfiguraci ověřit. Pokud chcete vytvořit kontrolní součet, zavolejte rutinu New-DscChecksum . Rutina přebírá parametr Path , který určuje složku, ve které se nachází konfigurační MOF. Rutina vytvoří soubor kontrolního součtu s názvem ConfigurationMOFName.mof.checksum, kde ConfigurationMOFName je název konfiguračního souboru mof. Pokud je v zadané složce více než jeden konfigurační soubor MOF, vytvoří se pro každou konfiguraci ve složce kontrolní součet. Umístěte soubory MOF a jejich přidružené soubory kontrolního součtu do složky ConfigurationPath .

Poznámka

Pokud nějakým způsobem změníte konfigurační soubor MOF, musíte také znovu vytvořit soubor kontrolního součtu.

Nástroje

Aby bylo nastavení, ověřování a správa serveru vyžádané replikace jednodušší, jsou jako příklady v nejnovější verzi modulu xPSDesiredStateConfiguration zahrnuty následující nástroje:

  1. Modul, který vám pomůže s balením modulů prostředků DSC a konfiguračních souborů pro použití na serveru vyžádané replikace. PublishModulesAndMofsToPullServer.psm1. Příklady níže:

    # Example 1 - Package all versions of given modules installed locally and MOF files are in c:\LocalDepot
    $moduleList = @('xWebAdministration', 'xPhp')
    Publish-DSCModuleAndMof -Source C:\LocalDepot -ModuleNameList $moduleList
    
    # Example 2 - Package modules and mof documents from c:\LocalDepot
    Publish-DSCModuleAndMof -Source C:\LocalDepot -Force
    
  2. Skript, který ověřuje server vyžádané replikace, je správně nakonfigurovaný. PullServerSetupTests.ps1.

Komunitní řešení pro službu pull service

Komunita DSC vytvořila několik řešení pro implementaci protokolu služby vyžádané replikace. Pro místní prostředí nabízejí možnosti služby pull a příležitost přispět zpět do komunity s přírůstkovými vylepšeními.

Konfigurace klienta vyžádané replikace

Nastavení klientů vyžádané replikace podrobně popisují následující témata:

Viz také