Megosztás a következőn keresztül:


Kívánt állapotkonfiguráció lekérési szolgáltatása

Fontos

A lekéréses kiszolgáló (Windows Feature DSC-Service) a Windows Server támogatott összetevője, de nem tervezik új szolgáltatások vagy képességek kínálatát. Szeretnénk, ha tudná, hogy a DSC újabb verziója már általánosan elérhető, amelyet a Azure Policy Vendégkonfiguráció nevű funkciója kezel. A vendégkonfigurációs szolgáltatás egyesíti a DSC-bővítmény, a Azure Automation State Configuration és az ügyfelek visszajelzéseiből leggyakrabban kért funkciókat. A vendégkonfiguráció magában foglalja a hibrid gépek támogatását is az Arc-kompatibilis kiszolgálókon keresztül.

A helyi Configuration Manager (LCM) központilag kezelhető egy lekéréses szolgáltatással. Ennek a megközelítésnek a használatakor a felügyelt csomópont regisztrálva van egy szolgáltatásban, és hozzá van rendelve egy konfigurációhoz az LCM-beállításokban. A konfiguráció és a konfigurációhoz függőségként szükséges összes DSC-erőforrás letöltődik a gépre, és az LCM használja a konfiguráció kezeléséhez. A felügyelt gép állapotára vonatkozó információk jelentéskészítés céljából feltöltődnek a szolgáltatásba. Ezt a fogalmat "pull service"-nek nevezik.

A lekéréses szolgáltatás jelenlegi lehetőségei a következők:

  • Azure Automation Desired State Configuration szolgáltatás
  • Windows Serveren futó lekéréses szolgáltatás
  • Közösség által karbantartott nyílt forráskódú megoldások
  • SMB-megosztás

Az egyes oldatok ajánlott skálája a következő:

Megoldás Ügyfél-csomópontok
Windows lekéréses kiszolgáló MDB/ESENT adatbázis használatával Akár 500 csomópont
Windows lekéréses kiszolgáló SQL-adatbázis használatával Akár 3500 csomópont
Azure Automation DSC Kis és nagy környezetek egyaránt

Az ajánlott megoldás és a legtöbb elérhető funkcióval rendelkező lehetőség a Azure Automation DSC. Az Automation-fiókonkénti csomópontok számának felső korlátja nem lett azonosítva.

Az Azure-szolgáltatás képes kezelni a csomópontokat a helyszínen privát adatközpontokban vagy nyilvános felhőkben, például az Azure-ban és az AWS-ben. Olyan privát környezetek esetében, ahol a kiszolgálók nem tudnak közvetlenül csatlakozni az internethez, fontolja meg a kimenő forgalom korlátozását csak a közzétett Azure IP-címtartományra (lásd: Azure IP-címtartományok és szolgáltatáscímkék).

Az online szolgáltatás azon funkciói, amelyek jelenleg nem érhetők el a Windows Server lekéréses szolgáltatásában, a következők:

  • Minden adat titkosítva van átvitel közben és nyugalmi állapotban
  • Az ügyféltanúsítványok létrehozása és kezelése automatikusan történik
  • Titkos kulcsok tárolója a jelszavak/hitelesítő adatok vagy változók , például kiszolgálónevek vagy kapcsolati sztringek központi kezeléséhez
  • Csomópont LCM-konfigurációjának központi kezelése
  • Konfigurációk központi hozzárendelése az ügyfélcsomópontokhoz
  • Adja ki a konfigurációs módosításokat a "kanáricsoportokra" tesztelésre az éles környezet elérése előtt
  • Grafikus riportolás
    • Állapot részletei a DSC-erőforrás részletességi szintjén
    • Részletes hibaüzenetek az ügyfélgépekről hibaelhárításhoz
  • Integráció az Azure Log Analyticsszel riasztásokhoz, automatizált feladatokhoz, Android/iOS-alkalmazáshoz jelentéskészítéshez és riasztáshoz

DSC lekéréses szolgáltatás a Windows Serverben

Lehetőség van egy lekéréses szolgáltatás konfigurálására a Windows Serveren való futtatásra. Vegye figyelembe, hogy a Windows Server lekéréses szolgáltatásmegoldása csak a konfigurációk és modulok tárolására alkalmas képességeket tartalmaz a jelentésadatok letöltéséhez és adatbázisba rögzítéséhez. Nem tartalmazza a szolgáltatás által az Azure-ban kínált képességek nagy részét, így nem jó eszköz a szolgáltatás használatának kiértékeléséhez.

A Windows Server által kínált lekérési szolgáltatás az IIS egyik webszolgáltatása, amely OData-felület használatával teszi elérhetővé a DSC-konfigurációs fájlokat a célcsomópontok számára, amikor ezek a csomópontok kérik őket.

A lekéréses kiszolgáló használatának követelményei:

  • Egy kiszolgáló a következőt futtatja:
    • WMF/PowerShell 4.0 vagy újabb
    • IIS-kiszolgálói szerepkör
    • DSC szolgáltatás
  • Ideális esetben a tanúsítvány létrehozásának valamilyen módja a helyi Configuration Managernek (LCM) átadott hitelesítő adatok védelme érdekében a célcsomópontokon

A Windows Server lekéréses szolgáltatás üzemeltetésére való konfigurálásának legjobb módja a DSC-konfiguráció használata. Az alábbiakban egy példaszkript látható.

Támogatott adatbázis-rendszerek

A Windows Server 17090-es kiadásától kezdődően a WMF 5.1 támogatja a lekérési szolgáltatás SQL Server beállítását (Windows Feature DSC-Service). Ez egy új lehetőséget biztosít a nagyméretű DSC-környezetek skálázásához, amelyek még nem migráltak Azure Automation DSC.

Ha a lekéréses kiszolgálót SQL Server használatára szeretné konfigurálni, állítsa az SqlProvidert$true és az SqlConnectionString értéket egy érvényes SQL Server kapcsolati sztringre. További információ: SqlClient kapcsolati sztringek. Az xDscWebService SQL Server konfigurációjának példájáért először olvassa el az xDscWebService erőforrás használata című témakört, majd tekintse át a2-xDscWebService_RegistrationUseSQLProvider_Config.ps1 GitHubon.

Az xDscWebService erőforrás használata

A webes lekérési kiszolgáló beállításának legegyszerűbb módja az xPSDesiredStateConfiguration modulban található xDscWebService erőforrás használata. Az alábbi lépések azt ismertetik, hogyan használhatja az erőforrást a webszolgáltatást beállító eszközökben Configuration .

  1. Hívja meg az Install-Module parancsmagot az xPSDesiredStateConfiguration modul telepítéséhez.

  2. Szerezzen be SSL-tanúsítványt a DSC lekérési kiszolgálóhoz egy megbízható hitelesítésszolgáltatótól, akár a szervezeten belül, akár egy hatóságon belül. A hatóságtól kapott tanúsítvány általában PFX formátumú.

  3. Telepítse a tanúsítványt arra a csomópontra, amely a DSC lekérési kiszolgálója lesz az alapértelmezett helyen, amelynek a következőnek kell lennie CERT:\LocalMachine\My: . Jegyezze fel a tanúsítvány ujjlenyomatát.

  4. Válassza ki a regisztrációs kulcsként használni kívánt GUID azonosítót. Ha a PowerShell használatával szeretne létrehozni egyet, írja be a következőket a PS parancssorba, és nyomja meg az Enter billentyűt: [guid]::newGuid() vagy New-Guid. Ezt a kulcsot az ügyfélcsomópontok megosztott kulcsként fogják használni a regisztráció során történő hitelesítéshez. További információért tekintse meg az alábbi Regisztrációs kulcs szakaszt.

  5. A PowerShell integrált parancsprogram-kezelési környezet programcsomagban indítsa el (F5) a következő konfigurációs szkriptet (amely az xPSDesiredStateConfiguration modul Sample_xDscWebServiceRegistration.ps1mappájában található: .

    Ez a szkript beállítja a lekéréses kiszolgálót.

    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. Futtassa a konfigurációt, és adja át az SSL-tanúsítvány ujjlenyomatát a certificateThumbPrint paraméterként, és egy GUID regisztrációs kulcsot RegistrationKey paraméterként:

    # 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
    

Regisztrációs kulcs

Annak érdekében, hogy az ügyfélcsomópontok regisztrálhassanak a kiszolgálón, hogy konfigurációs azonosító helyett konfigurációs neveket használhassanak, a fenti konfigurációval létrehozott regisztrációs kulcsot a rendszer egy fájlba RegistrationKeys.txtC:\Program Files\WindowsPowerShell\DscServicementi. A regisztrációs kulcs megosztott titkos kulcsként működik, amelyet az ügyfél a lekéréses kiszolgálóval való kezdeti regisztráció során használ. Az ügyfél létrehoz egy önaláírt tanúsítványt, amely a regisztráció sikeres befejezése után egyedi hitelesítést végez a lekérési kiszolgálón. A tanúsítvány ujjlenyomatát a rendszer helyileg tárolja, és a lekéréses kiszolgáló URL-címéhez társítja.

Megjegyzés:

A regisztrációs kulcsok nem támogatottak a PowerShell 4.0-ban.

Ahhoz, hogy egy csomópontot a lekérési kiszolgálóval való hitelesítésre konfiguráljon, a regisztrációs kulcsnak a lekérési kiszolgálón regisztrált célcsomópontok metakonfigurációjában kell lennie. Vegye figyelembe, hogy az alábbi metakonfigurációban található RegistrationKey a célgép sikeres regisztrációja után törlődik, és hogy az értéknek meg kell egyeznie a lekérési kiszolgálón lévő fájlban RegistrationKeys.txt tárolt értékkel (ebben a példában "140a952b-b9d6-406b-b416-e0f759c9c0e4"). Mindig biztonságosan kezelje a regisztrációs kulcs értékét, mert annak ismerete lehetővé teszi, hogy bármely célgép regisztráljon a lekéréses kiszolgálón.

[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

Megjegyzés:

A ReportServerWeb szakasz lehetővé teszi a jelentéskészítési adatok küldését a lekérési kiszolgálónak.

A ConfigurationID tulajdonság hiánya a metakonfigurációs fájlban implicit módon azt jelenti, hogy a lekéréses kiszolgáló támogatja a lekéréses kiszolgáló protokoll V2-es verzióját, ezért kezdeti regisztrációra van szükség. Ezzel szemben a ConfigurationID jelenléte azt jelenti, hogy a lekéréses kiszolgáló protokoll V1-es verziója van használatban, és nincs regisztrációs feldolgozás.

Megjegyzés:

PUSH-forgatókönyv esetén az aktuális kiadásban olyan hiba található, amely szükségessé teszi egy ConfigurationID tulajdonság meghatározását a metakonfigurációs fájlban olyan csomópontok számára, amelyek soha nem regisztráltak lekérési kiszolgálón. Ez kényszeríti a V1 lekérési kiszolgáló protokollt, és elkerüli a regisztrációs hibás üzeneteket.

Konfigurációk és erőforrások elhelyezése

A lekéréses kiszolgáló beállításának befejezése után a lekéréses kiszolgáló konfigurációjában a ConfigurationPath és a ModulePath tulajdonságok által meghatározott mappákban helyezheti el azokat a modulokat és konfigurációkat, amelyek elérhetők lesznek a célcsomópontok számára. Ezeknek a fájloknak meghatározott formátumban kell lenniük ahhoz, hogy a lekéréses kiszolgáló megfelelően feldolgozza őket.

DSC erőforrásmodul csomagformátuma

Minden erőforrásmodult tömöríteni és elnevezni kell az alábbi minta <Module Name>_<Module Version>.zipszerint.

Például egy xWebAdminstration nevű modul 3.1.2.0-s modulverzióval a neve .xWebAdministration_3.1.2.0.zip A modulok minden verziójának egyetlen zip-fájlban kell lennie. Mivel az egyes zip-fájlokban csak egy erőforrás-verzió található, a WMF 5.0-ban hozzáadott modulformátum, amely egyetlen könyvtárban több modulverziót támogat, nem támogatott. Ez azt jelenti, hogy a DSC erőforrásmodulok lekéréses kiszolgálóval való használatához való becsomagolása előtt egy kis változtatást kell végrehajtania a könyvtárstruktúrában. A WMF 5.0-ban a DSC-erőforrást tartalmazó modulok alapértelmezett formátuma a <Module Folder>\<Module Version>\DscResources\<DSC Resource Folder>\. A lekéréses kiszolgáló csomagolása előtt távolítsa el a mappát<Module version>, hogy az elérési út .<Module Folder>\DscResources\<DSC Resource Folder>\ Ezzel a módosítással tömörítse a mappát a fent leírtak szerint, és helyezze ezeket a zip-fájlokat a ModulePath mappába.

Ellenőrzőösszeg-fájl létrehozásához használja New-DscChecksum <module zip file> az újonnan hozzáadott modulhoz.

Konfigurációs MOF-formátum

A konfigurációs MOF-fájlt párosítani kell egy ellenőrzőösszeg-fájllal, hogy a célcsomóponton lévő LCM-fájl érvényesíteni tudja a konfigurációt. Ellenőrzőösszeg létrehozásához hívja meg a New-DscChecksum parancsmagot. A parancsmag egy Path paramétert vesz fel, amely megadja azt a mappát, ahol a konfigurációs MOF található. A parancsmag létrehoz egy nevű ConfigurationMOFName.mof.checksumellenőrzőösszeg-fájlt, ahol ConfigurationMOFName a konfigurációs mof-fájl neve. Ha a megadott mappában egynél több konfigurációs MOF-fájl található, a mappa minden konfigurációjához létrejön egy ellenőrzőösszeg. Helyezze a MOF-fájlokat és a hozzájuk tartozó ellenőrzőösszeg-fájlokat a ConfigurationPath mappába.

Megjegyzés:

Ha bármilyen módon módosítja a konfigurációs MOF-fájlt, akkor az ellenőrzőösszeg-fájlt is újra létre kell hoznia.

Szerszámozás

A lekéréses kiszolgáló beállításához, ellenőrzéséhez és kezeléséhez használja az alábbi eszközöket, amelyek példaként szerepelnek az xPSDesiredStateConfiguration modul legújabb verziójában:

  1. Egy modul, amely segít a DSC-erőforrásmodulok és konfigurációs fájlok csomagolásában a lekéréses kiszolgálón való használatra. PublishModulesAndMofsToPullServer.psm1. Példák alább:

    # 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. A lekérési kiszolgálót érvényesítő szkript megfelelően van konfigurálva. PullServerSetupTests.ps1.

Közösségi megoldások a lekéréses szolgáltatáshoz

A DSC-közösség több megoldást is készített a lekéréses szolgáltatás protokolljának megvalósításához. A helyszíni környezetek esetében ezek lekéréses szolgáltatási képességeket kínálnak, és lehetőséget kínálnak arra, hogy növekményes fejlesztésekkel járuljanak hozzá a közösséghez.

Lekéréses ügyfél konfigurációja

Az alábbi témakörök részletesen ismertetik a lekéréses ügyfelek beállítását:

Lásd még