Sdílet prostřednictvím


Služba vyžádání konfigurace požadovaného stavu

Důležité

Pull Server (Windows Feature DSC-Service) je podporovanou 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 s názvem konfigurace hosta. Služba konfigurace hosta kombinuje funkce rozšíření DSC, konfigurace stavu Azure Automation a nejčastěji požadované funkce ze 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í nástroj Configuration Manager (LCM) je možné centrálně spravovat pomocí řešení Pull Service. Při použití tohoto přístupu je uzel, který je spravován, zaregistrován ve službě a je mu přiřazena konfigurace v nastavení LCM. Konfigurace a všechny prostředky DSC potřebné jako závislosti pro konfiguraci se stáhnou do stroje a LCM je použije ke správě konfigurace. Informace o stavu spravovaného stroje se nahrají do služby pro vykazování. Tento koncept se označuje jako "pull service".

Mezi aktuální možnosti služby pull patří:

  • Služba konfigurace požadovaného stavu Azure Automation
  • Služba vyžádané replikace spuštěná na Windows Serveru
  • Komunitou udržovaná open-source řešení
  • Sdílená složka pro malé a střední podniky

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

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

Doporučeným řešením a možností s největším počtem dostupných funkcí je Azure Automation DSC. Nebyl identifikován horní limit počtu uzlů na účet Automation.

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

Mezi funkce online služby, které nejsou v současné době dostupné ve službě Pull na Windows Serveru, patří:

  • Všechna data jsou šifrována při přenosu i v klidu
  • Klientské certifikáty jsou vytvářeny a spravovány automaticky
  • Úložiště tajných kódů pro centrální správu hesel a přihlašovacích údajů nebo proměnných , jako jsou názvy serverů nebo připojovací řetězce
  • Centrálně spravovat konfiguraci LCM uzlu
  • Centrálně přiřazujte konfigurace klientským uzlům
  • Uvolnění změn konfigurace na "kanárkové skupiny" pro testování před dosažením produkčního prostředí
  • Grafické protokoly
    • Detail stavu na úrovni členitosti prostředků 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žádání DSC v systému Windows Server

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í systému Windows Server, zahrnuje pouze funkce ukládání konfigurací a modulů pro stahování a zachytávání dat sestav do databáze. Neobsahuje mnoho funkcí, které služba nabízí v Azure, a proto není dobrým nástrojem pro vyhodnocení toho, jak by se služba používala.

Služba vyžádání replikace nabízená v systému Windows Server je webová služba ve službě IIS, která pomocí rozhraní OData zpřístupňuje konfigurační soubory DSC cílovým uzlům, když o ně tyto uzly požádají.

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

  • Server se spuštěním:
    • WMF/PowerShell 4.0 nebo vyšší
    • Role serveru služby IIS
    • Služba DSC
  • V ideálním případě nějaký způsob generování certifikátu pro zabezpečení přihlašovacích údajů předaných místnímu Configuration Manager (LCM) na cílových uzlech

Nejlepším způsobem, jak nakonfigurovat Windows Server tak, aby hostoval službu vyžádání replikace, je použít konfiguraci DSC. Příklad skriptu je uveden níže.

Podporované databázové systémy

Od verze 17090 systému Windows Server obsahuje WMF 5.1 podporu pro možnost SQL Server pro službu Pull Service (Windows Feature DSC-Service). To poskytuje novou možnost škálování velkých prostředí DSC, která se nemigrovala na Azure Automation DSC.

Chcete-li nakonfigurovat server vyžádané replikace tak, aby používal SQL Server, nastavte SqlProvider na $true a SqlConnectionString na platný připojovací řetězec SQL Server. Další informace naleznete v tématu Připojovací řetězce SqlClient. Příklad konfigurace SQL Server pomocí xDscWebService najdete nejprve v článku Použití prostředku xDscWebService a poté si projděte2-xDscWebService_RegistrationUseSQLProvider_Config.ps1 na GitHubu.

Použití prostředku xDscWebService

Nejjednodušším způsobem, jak nastavit server pro vyžádanou replikaci, je použít prostředek xDscWebService , který je součástí modulu xPSDesiredStateConfiguration . Následující kroky vysvětlují, jak použít prostředek v nastavení Configuration , který nastavuje webovou službu.

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

  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 do uzlu, který se stane serverem vyžádané replikace DSC ve výchozím umístění, které by mělo 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íč. Chcete-li jej vygenerovat pomocí PowerShellu, zadejte na výzvu 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 naleznete v části Registrační klíč níže.

  5. V prostředí PowerShell ISE spusťte (F5) následující konfigurační skript (obsažený 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ředejte 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 názvy konfigurací, je registrační klíč vytvořený výše uvedenou konfigurací uložen do souboru s názvem RegistrationKeys.txt .C:\Program Files\WindowsPowerShell\DscService Registrační klíč funguje jako sdílený tajný klíč používaný během počáteční registrace klientem na serveru vyžádané replikace. Klient po úspěšném dokončení registrace vygeneruje certifikát podepsaný svým držitelem, který se používá 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 podporovány.

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

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

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

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

    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.

Absence vlastnosti ConfigurationID v metakonfiguračním souboru implicitně znamená, že server vyžádané replikace podporuje verzi V2 protokolu serveru vyžádané replikace, takže je vyžadována počáteční registrace. Naopak přítomnost ID konfigurace 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, kvůli které je nutné definovat vlastnost ConfigurationID v metakonfiguračním souboru pro uzly, které se nikdy nezaregistrovaly na serveru vyžádané replikace. Tím vynutíte protokol V1 Pull Server a vyhnete se zprávám o selhání registrace.

Umístění konfigurací a zdrojů

Po dokončení instalace serveru vyžádané replikace umístíte do složek definovaných vlastnostmi ConfigurationPath a ModulePath v konfiguraci serveru vyžádané replikace 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 zdrojů musí být zazipován a pojmenován 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 byl pojmenován 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 formátu WMF 5.0 s podporou více verzí modulů v jednom adresáři není podporován. 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 v adresářové struktuře. 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ím pro server vyžádané replikace odeberte <Module version> složku tak, aby cesta byla <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 s kontrolním součtem pro nově přidaný modul.

Konfigurace formátu MOF

Konfigurační soubor MOF musí být spárován se souborem kontrolního součtu, aby LCM na cílovém uzlu mohl ověřit konfiguraci. Pokud chcete vytvořit kontrolní součet, zavolejte rutinu New-DscChecksum . Rutina převezme parametr Path , který určuje složku, ve které se nachází konfigurační objekt 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 se v určené složce nachází 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 k nim přiřazené soubory kontrolního součtu do složky ConfigurationPath .

Poznámka:

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

Nástrojové vybavení

Chcete-li nastavit, ověřit a spravovat server vyžádané replikace, použijte následující nástroje, které jsou součástí příkladů v nejnovější verzi modulu xPSDesiredStateConfiguration:

  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. PublikováníModulesAndMofsToPullServer.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 nakonfigurován správně. PullServerSetupTests.ps1.

Komunitní řešení pro službu Pull

Komunita DSC vytvořila několik řešení pro implementaci protokolu služby Pull. V místních prostředích nabízejí možnosti služby vyžádání změn a příležitost přispívat zpět do komunity pomocí postupných vylepšení.

Konfigurace klienta pro vyžádání obsahu

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

Viz také