Desired State Configuration lekéréses szolgáltatás
Fontos
A Lekéréses kiszolgáló (Windows feature DSC-Service) a Windows Server egyik támogatott összetevője, de nem tervez új funkciókat vagy képességeket kínálni. szeretnénk tudni, hogy a DSC egy újabb verziója már általánosan elérhető, amelyet Azure Policy nevű vendégkonfiguráció egyik funkciója felügyel. A vendégkonfigurációs szolgáltatás egyesíti a DSC-bővítmény funkcióit, a Azure Automation State Configuration és a leggyakrabban kért funkciókat az ügyfelek visszajelzései alapján. A vendégkonfiguráció a hibrid gépek Arc-kompatibilis kiszolgálókon keresztüli támogatását is magában foglalja.
A helyi Configuration Manager (LCM) központilag kezelhető egy lekéréses szolgáltatással. Ha ezt a módszert használja, a felügyelt csomópont regisztrálva lesz egy szolgáltatásban, és hozzárendel egy konfigurációt az LCM-beállításokban. A konfiguráció és a konfiguráció függőségeiként szükséges összes DSC-erőforrás le lesz töltve a gépre, és az LCM használja a konfiguráció kezeléséhez. A rendszer a felügyelt gép állapotával kapcsolatos információkat tölti fel a szolgáltatásba jelentéskészítés céljából. Ezt a fogalmat "lekéréses szolgáltatásnak" nevezzük.
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
- A Közösség által fenntartott nyílt forráskódú megoldások
- SMB-megosztás
Az egyes megoldásokhoz javasolt skálázás a következő:
Megoldás | Ügyfélcsomópontok |
---|---|
Windows Lekéréses kiszolgáló MDB/ESENT-adatbázis használatával | Legfeljebb 500 csomópont |
Windows Lekéréses kiszolgáló SQL-adatbázis használatával | Legfeljebb 3500 csomópont |
Azure Automation DSC | Kicsi és nagy környezetek egyaránt |
Az ajánlott megoldás és a legtöbb elérhető funkcióval rendelkező lehetőség a DSC Azure Automation. Nem azonosították az Automation-fiókonkénti csomópontok számának felső korlátját.
Az Azure szolgáltatás képes a helyszíni csomópontok kezelésére 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, érdemes lehet a kimenő forgalmat csak a közzétett Azure IP-tartományra korlátozni (lásd : Azure Datacenter IP-tartományok).
A Windows Server lekéréses szolgáltatásában jelenleg nem elérhető online szolgáltatás funkciói a következők:
- Minden adat átvitel közben és inaktív állapotban van titkosítva
- Az ügyféltanúsítványok létrehozása és kezelése automatikusan megtörténik
- Titkos kódok tárolója a jelszavak/hitelesítő adatok központi kezeléséhez, vagy változókhoz , például kiszolgálónevekhez vagy kapcsolati sztringekhez
- Csomópont LCM-konfigurációjának központi kezelése
- Konfigurációk központi hozzárendelése ügyfélcsomópontokhoz
- A "kanáricsoportok" konfigurációs módosításainak kiadása teszteléshez az éles környezet elérése előtt
- Grafikus jelentéskészítés
- Állapot részletei a DSC-erőforrás részletességi szintjén
- Részletes hibaüzenetek az ügyfélszámítógépekről a hibaelhárításhoz
- Integráció az Azure Log Analyticsszel riasztásokhoz, automatizált feladatokhoz, Android/iOS-alkalmazás jelentéskészítéshez és riasztáshoz
DSC lekérési szolgáltatás a Windows Serveren
A lekéréses szolgáltatás konfigurálható 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 szolgáló képességeket tartalmazza a jelentésadatok adatbázisba való letöltéséhez és rögzítéséhez. Nem tartalmazza a szolgáltatás által az Azure-ban kínált számos képességet, így nem jó eszköz a szolgáltatás használatának értékelésére.
A Windows Serveren elérhető lekéréses szolgáltatás egy IIS-webszolgáltatás, amely OData-felülettel 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.
Lekéréses kiszolgáló használatának követelményei:
- A következőt futtató kiszolgáló:
- 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 célcsomópontokon a helyi Configuration Manager (LCM) számára átadott hitelesítő adatok biztonságossá tételéhez
A Windows Server lekéréses szolgáltatás üzemeltetésére való konfigurálásának legjobb módja egy DSC-konfiguráció használata. Alább talál egy példaszkriptet.
Támogatott adatbázisrendszerek
WMF 4.0 | WMF 5.0 | WMF 5.1 | WMF 5.1 (Windows Server Insider Preview 17090) |
---|---|---|---|
MDB | ESENT (alapértelmezett), MDB | ESENT (alapértelmezett), MDB | ESENT (alapértelmezett), SQL Server, MDB |
A Windows Server 17090-es kiadásától kezdve a SQL Server a lekéréses szolgáltatás (Windows feature DSC-Service) egyik támogatott lehetősége. Ez egy új lehetőséget biztosít az olyan nagy méretű DSC-környezetek skálázásához, amelyek nem lettek áttelepítve Azure Automation DSC-be.
Megjegyzés
SQL Server támogatás nem lesz hozzáadva a WMF 5.1 (vagy korábbi) korábbi verzióihoz, és csak az 17090-nél nagyobb vagy annál régebbi Windows Server-verziókon lesz elérhető.
A lekéréses kiszolgáló SQL Server használatára való konfigurálásához állítsa az SqlProvider értékét értékre$true
, az SqlConnectionString értékét pedig egy érvényes SQL Server kapcsolati sztringre. További információ: SqlClient kapcsolati sztringek.
Az xDscWebService SQL Server konfigurálásához először olvassa el az xDscWebService erőforrás használata című cikket, majd tekintse át 2-xDscWebService_RegistrationUseSQLProvider_Config.ps1 a GitHubon.
Az xDscWebService erőforrás használata
A webes lekéréses 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 mutatják be, hogyan használhatja az erőforrást a Configuration
webszolgáltatást beállító szolgáltatásban.
Az xPSDesiredStateConfiguration modul telepítéséhez hívja meg az Install-Module parancsmagot.
Megjegyzés
Install-Module
A a PowerShellGet modul része, amely a PowerShell 5.0-s és újabb verzióiban található.Szerezzen be egy 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ágnál. A szolgáltatótól kapott tanúsítvány általában PFX formátumú.
Telepítse a tanúsítványt arra a csomópontra, amely a DSC lekéréses kiszolgálójává válik az alapértelmezett helyen, amelynek a következőnek kell lennie
CERT:\LocalMachine\My
: .- Jegyezze fel a tanúsítvány ujjlenyomatát.
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őt a PS-parancssorba, és nyomja le az enter billentyűt:
[guid]::newGuid()
vagyNew-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ókért lásd az alábbi Regisztrációs kulcs szakaszt.A PowerShell ISE-ben indítsa el (F5) a következő konfigurációs szkriptet (amely az xPSDesiredStateConfiguration modul
Sample_xDscWebServiceRegistration.ps1
mappájában található) . Ez a szkript beállítja a lekérési 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 } } }
Futtassa a konfigurációt, és adja át az SSL-tanúsítvány ujjlenyomatát 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
Ha engedélyezni szeretné, hogy az ügyfélcsomópontok regisztráljanak a kiszolgálón, hogy konfigurációs azonosító helyett konfigurációneveket használhassanak, a fenti konfiguráció által létrehozott regisztrációs kulcsot a rendszer egy nevű RegistrationKeys.txt
fájlba C:\Program Files\WindowsPowerShell\DscService
menti. A regisztrációs kulcs megosztott titkos kódként működik, amelyet az ügyfél és a lekéréses kiszolgáló kezdeti regisztrációja során használ. Az ügyfél létrehoz egy önaláírt tanúsítványt, amely a sikeres regisztrációt követően egyedileg hitelesíti a lekéréses kiszolgálót. A tanúsítvány ujjlenyomata helyileg van tárolva, és a lekérési kiszolgáló URL-címéhez van társítva.
Megjegyzés
A PowerShell 4.0 nem támogatja a regisztrációs kulcsokat.
Ahhoz, hogy egy csomópontot konfigurálhasson a lekéréses kiszolgálóval való hitelesítéshez, a regisztrációs kulcsnak a metakonfigurálásban kell lennie minden olyan célcsomópont esetében, amely ezzel a lekérési kiszolgálóval fog regisztrálni. Vegye figyelembe, hogy az alábbi metakonfigurálásban szereplő RegistrationKey elem a célgép sikeres regisztrálása után törlődik, és az értéknek meg kell egyeznie a RegistrationKeys.txt
lekérési kiszolgálón található fájlban ('140a952b-b9d6-406b-b416-e0f759c9c0e4' ebben a példában). Mindig biztonságosan kezelje a regisztrációs kulcs értékét, mert tudva, hogy bármely célgép regisztrálhat a lekérési kiszolgálón.
[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
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 metakonfigurációs fájl ConfigurationID tulajdonságának hiánya implicit módon azt jelenti, hogy a lekéréses kiszolgáló támogatja a lekéréses kiszolgáló protokolljának V2 verzióját, így kezdeti regisztrációra van szükség. Ezzel szemben a ConfigurationID jelenléte azt jelenti, hogy a rendszer a lekéréses kiszolgáló protokolljának V1 verzióját használja, és nincs regisztrációs feldolgozás.
Megjegyzés
PUSH-forgatókönyv esetén az aktuális kiadásban olyan hiba áll fenn, amely szükségessé teszi egy ConfigurationID tulajdonság definiálását a metakonfigurációs fájlban olyan csomópontokhoz, amelyek még soha nem regisztráltak lekéréses kiszolgálóval. Ez kényszeríti a V1 lekéréses kiszolgáló protokollt, és elkerüli a regisztrációs hibaüzeneteket.
Konfigurációk és erőforrások elhelyezése
A lekérési kiszolgáló beállítása után a lekérési kiszolgáló konfigurációjában a ConfigurationPath és a ModulePath tulajdonságok által meghatározott mappákban olyan modulokat és konfigurációkat helyezhet el, amelyek a lekérésre szolgáló célcsomópontok számára elérhetők lesznek. Ezeknek a fájloknak egy adott formátumban kell lenniük ahhoz, hogy a lekérési kiszolgáló megfelelően feldolgozhassa őket.
DSC-erőforrásmodul csomagformátuma
Minden erőforrásmodult az alábbi minta {Module Name}_{Module Version}.zip
szerint kell tömöríteni és elnevezni.
Egy xWebAdminstration nevű modul például a 3.1.2.0-s modulverzióval lesz elnevezve xWebAdministration_3.1.2.0.zip
. A modul minden verzióját egyetlen zip-fájlban kell tárolni.
Mivel minden zip-fájlban csak egyetlen erőforrás-verzió található, a WMF 5.0-ban hozzáadott modulformátum nem támogatott egyetlen könyvtár több modulverziójának támogatásával. Ez azt jelenti, hogy a lekéréses kiszolgálóhoz használható DSC-erőforrásmodulok csomagolása előtt egy kis módosítást kell végeznie a könyvtárszerkezeten. A WMF 5.0-s verziójában 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ó becsomagolása előtt távolítsa el a {Module version} mappát, hogy az elérési út a következő legyen {Module Folder}\DscResources\{DSC Resource Folder}\
: . Ezzel a módosítással tömörítse a mappát a fent leírt módon, és helyezze ezeket a zip-fájlokat a ModulePath mappába.
A használatával New-DscChecksum {module zip file}
ellenőrzőösszegfájlt hozhat létre az újonnan hozzáadott modulhoz.
Konfigurációs MOF formátum
A konfigurációs MOF-fájlt egy ellenőrzőösszegfájllal kell párosítani, hogy a célcsomópont LCM-je érvényesíthesse 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 meghatározza azt a mappát, ahol a konfigurációs MOF található. A parancsmag létrehoz egy ellenőrzőösszegfájlt nevű ConfigurationMOFName.mof.checksum
néven, ahol ConfigurationMOFName
a konfigurációs mof fájl neve. Ha egynél több konfigurációs MOF-fájl található a megadott mappában, a rendszer ellenőrzőösszeget hoz létre a mappában lévő összes konfigurációhoz. Helyezze a MOF-fájlokat és a hozzájuk tartozó ellenőrzőösszegfájlokat a ConfigurationPath mappába.
Megjegyzés
Ha bármilyen módon módosítja a konfigurációs MOF-fájlt, újra létre kell hoznia az ellenőrzőösszeg-fájlt is.
Eszközök
A lekéréses kiszolgáló beállításának, érvényesítésének és kezelésének megkönnyítése érdekében az xPSDesiredStateConfiguration modul legújabb verziójában az alábbi eszközök szerepelnek példaként:
Egy modul, amely segít a DSC-erőforrásmodulok és konfigurációs fájlok becsomagolásában a lekérési kiszolgálón való használatra. PublishModulesAndMofsToPullServer.psm1. Példák az alábbiakra:
# 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
Egy szkript, amely ellenőrzi, hogy a lekérési kiszolgáló megfelelően van-e konfigurálva. PullServerSetupTests.ps1.
Közösségi megoldások lekéréses szolgáltatáshoz
A DSC-közösség több megoldást is létrehozott a lekéréses szolgáltatás protokolljának implementálá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élkonfiguráció
A következő témakörök részletesen ismertetik a lekéréses ügyfelek beállítását:
- DSC lekéréses ügyfél beállítása konfigurációs azonosítóval
- DSC lekéréses ügyfél beállítása konfigurációnevek használatával
- Részleges konfigurációk