Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Pull-servern (Windows Feature DSC-Service) är en komponent som stöds av Windows Server, men det finns inga planer på att erbjuda nya funktioner. Vi vill att du ska veta att en nyare version av DSC nu är allmänt tillgänglig, som hanteras av en funktion i Azure Policy med namnet gästkonfiguration. Gästkonfigurationstjänsten kombinerar funktioner i DSC-tillägget, Azure Automation State Configuration och de vanligaste funktionerna från kundfeedback. Gästkonfigurationen omfattar även stöd för hybriddatorer via Arc-aktiverade servrar.
Lokal Configuration Manager (LCM) kan hanteras centralt av en pull-tjänstlösning. När du använder den här metoden registreras noden som hanteras med en tjänst och tilldelas en konfiguration i LCM-inställningarna. Konfigurationen och alla DSC-resurser som behövs som beroenden för konfigurationen laddas ned till datorn och används av LCM för att hantera konfigurationen. Information om tillståndet för den dator som hanteras laddas upp till tjänsten för rapportering. Det här konceptet kallas för "pull-tjänst".
De aktuella alternativen för pull-tjänsten är:
- Azure 自動化 tjänst för konfiguration av önskat tillstånd
- En pull-tjänst som körs på Windows Server
- Community-underhållna lösningar med öppen källkod
- En SMB-resurs
Den rekommenderade skalan för varje lösning är följande:
| Lösning | Klient noder |
|---|---|
| Windows Pull Server med MDB/ESENT-databas | Upp till 500 noder |
| Windows Pull Server med hjälp av SQL-databas | Upp till 3500 noder |
| Azure Automation DSC | Både små och stora miljöer |
Den rekommenderade lösningen, och alternativet med de flesta tillgängliga funktionerna, är Azure Automation DSC. En övre gräns för antalet noder per Automation-konto har inte identifierats.
Azure-tjänsten kan hantera noder lokalt i privata datacenter eller i offentliga moln som Azure och AWS. För privata miljöer där servrar inte kan ansluta direkt till Internet bör du överväga att begränsa utgående trafik till endast det publicerade Azure IP-intervallet (se Azure IP-intervall och tjänsttaggar).
Funktioner i onlinetjänsten som för närvarande inte är tillgängliga i pull-tjänsten på Windows Server är:
- Alla data krypteras under överföring och i vila
- Klientcertifikat skapas och hanteras automatiskt
- Hemlighetslager för central hantering av lösenord/autentiseringsuppgifter eller variabler som servernamn eller anslutningssträngar
- Hantera nodens LCM-konfiguration centralt
- Tilldela konfigurationer till klientnoder centralt
- Släpp konfigurationsändringar till "kanariegrupper" för testning innan de når produktion
- Grafisk rapportering
- Statusinformation på DSC-resursnivå för kornighet
- Utförliga felmeddelanden från klientdatorer för felsökning
- Integrering med Azure Log Analytics för aviseringar, automatiserade uppgifter, Android/iOS-app för rapportering och aviseringar
DSC-pull-tjänst i Windows Server
Det går att konfigurera en pull-tjänst så att den körs på Windows Server. Observera att pull-tjänstlösningen som ingår i Windows Server endast innehåller funktioner för att lagra konfigurationer och moduler för att ladda ned och samla in rapportdata i en databas. Den innehåller inte många av de funktioner som erbjuds av tjänsten i Azure och är därför inte ett bra verktyg för att utvärdera hur tjänsten skulle användas.
Pull-tjänsten som erbjuds i Windows Server är en webbtjänst i IIS som använder ett OData-gränssnitt för att göra DSC-konfigurationsfiler tillgängliga för målnoder när noderna ber om dem.
Krav för att använda en pull-server:
- En server som kör:
- WMF/PowerShell 4.0 eller senare
- Roll för IIS-server
- DSC-tjänst
- Vi rekommenderar att du genererar ett certifikat för att skydda autentiseringsuppgifter som skickas till den lokala Configuration Manager (LCM) på målnoder
Det bästa sättet att konfigurera Windows Server som värd för pull-tjänsten är att använda en DSC-konfiguration. Ett exempelskript finns nedan.
Databassystem som stöds
Från och med version 17090 av Windows Server innehåller WMF 5.1 stöd för SQL Server-alternativet för Pull Service (Windows Feature DSC-Service). Detta ger ett nytt alternativ för skalning av stora DSC-miljöer som inte har migrerats till Azure Automation DSC.
Om du vill konfigurera pull-servern så att den använder SQL Server anger du SqlProvider till $true och SqlConnectionString till en giltig SQL Server anslutningssträng. Mer information finns i SqlClient-anslutningssträngar. Ett exempel på SQL Server konfiguration med xDscWebService finns i Använda resursen xDscWebService och sedan granska 2-xDscWebService_RegistrationUseSQLProvider_Config.ps1 på GitHub.
Använda resursen xDscWebService
Det enklaste sättet att konfigurera en webbhämtningsserver är att använda resursen xDscWebService , som ingår i modulen xPSDesiredStateConfiguration . Följande steg beskriver hur du använder resursen i en Configuration som konfigurerar webbtjänsten.
Anropa cmdleten Install-Module för att installera modulen xPSDesiredStateConfiguration.
Hämta ett SSL-certifikat för DSC-pull-servern från en betrodd certifikatutfärdare, antingen inom din organisation eller en offentlig myndighet. Certifikatet som tas emot från myndigheten är vanligtvis i PFX-format.
Installera certifikatet på noden som ska bli DSC Pull-servern på standardplatsen, som ska vara
CERT:\LocalMachine\My. Anteckna certifikatets tumavtryck.Välj ett GUID som ska användas som registreringsnyckel. Om du vill generera en med PowerShell anger du följande i PS-prompten och trycker på Retur:
[guid]::newGuid()ellerNew-Guid. Den här nyckeln används av klientnoder som en delad nyckel för att autentisera under registreringen. Mer information finns i avsnittet Registreringsnyckel nedan.I PowerShell ISE startar du (F5) följande konfigurationsskript (ingår i mappen i xPSDesiredStateConfiguration-modulen som
Sample_xDscWebServiceRegistration.ps1.Det här skriptet konfigurerar pull-servern.
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 } } }Kör konfigurationen och skicka tumavtrycket för SSL-certifikatet som parametern certificateThumbPrint och en GUID-registreringsnyckel som parametern 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
Nyckel för registrering
För att tillåta klientnoder att registrera sig på servern så att de kan använda konfigurationsnamn i stället för ett konfigurations-ID, sparas en registreringsnyckel som skapades av ovanstående konfiguration i en fil med namnet RegistrationKeys.txt i C:\Program Files\WindowsPowerShell\DscService. Registreringsnyckeln fungerar som en delad hemlighet som används under den första registreringen av klienten med pull-servern. Klienten genererar ett självsignerat certifikat som används för att unikt autentisera till pull-servern när registreringen har slutförts. Tumavtrycket för det här certifikatet lagras lokalt och associeras med URL:en för pull-servern.
Anmärkning
Registreringsnycklar stöds inte i PowerShell 4.0.
För att kunna konfigurera en nod så att den autentiseras med pull-servern måste registreringsnyckeln finnas i metakonfigurationen för alla målnoder som ska registreras med den här pull-servern. Observera att RegistrationKey i metakonfigurationen nedan tas bort när måldatorn har registrerats och att värdet måste matcha värdet som lagras i RegistrationKeys.txt filen på pull-servern ('140a952b-b9d6-406b-b416-e0f759c9c0e4' för det här exemplet). Behandla alltid registreringsnyckelvärdet på ett säkert sätt, eftersom du vet att det gör att alla måldatorer kan registreras på pull-servern.
[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
Anmärkning
Avsnittet ReportServerWeb gör att rapportdata kan skickas till pull-servern.
Avsaknaden av egenskapen ConfigurationID i metakonfigurationsfilen innebär implicit att pull-servern stöder V2-versionen av pull-serverprotokollet, så en inledande registrering krävs. Omvänt innebär förekomsten av ett ConfigurationID att V1-versionen av pull-serverprotokollet används och att det inte finns någon registreringsbearbetning.
Anmärkning
I ett PUSH-scenario finns det en bugg i den aktuella versionen som gör det nödvändigt att definiera en ConfigurationID-egenskap i metakonfigurationsfilen för noder som aldrig har registrerats på en pull-server. Detta tvingar fram V1 Pull Server-protokollet och undviker meddelanden om registreringsfel.
Placera konfigurationer och resurser
När installationen av pull-servern är klar är de mappar som definieras av egenskaperna ConfigurationPath och ModulePath i pull-serverkonfigurationen den plats där du placerar moduler och konfigurationer som ska vara tillgängliga för målnoder att hämta. Dessa filer måste vara i ett visst format för att pull-servern ska kunna bearbeta dem korrekt.
Paketformat för DSC-resursmodul
Varje resursmodul måste zippas och namnges enligt följande mönster <Module Name>_<Module Version>.zip.
Till exempel skulle en modul med namnet xWebAdminstration med en modulversion av 3.1.2.0 få namnet xWebAdministration_3.1.2.0.zip. Varje version av en modul måste finnas i en enda zip-fil.
Eftersom det bara finns en enda version av en resurs i varje zip-fil stöds inte modulformatet som läggs till i WMF 5.0 med stöd för flera modulversioner i en enda katalog. Det innebär att innan du paketerar DSC-resursmoduler för användning med pull-servern måste du göra en liten ändring i katalogstrukturen. Standardformatet för moduler som innehåller DSC-resursen i WMF 5.0 är <Module Folder>\<Module Version>\DscResources\<DSC Resource Folder>\. Innan du packar upp för pull-servern tar du bort <Module version> mappen så att sökvägen blir <Module Folder>\DscResources\<DSC Resource Folder>\. Med den här ändringen zippar du mappen enligt beskrivningen ovan och placerar zip-filerna i mappen ModulePath .
Används New-DscChecksum <module zip file> för att skapa en kontrollsummafil för den nyligen tillagda modulen.
MOF-format för konfiguration
En MOF-konfigurationsfil måste paras ihop med en kontrollsummafil så att en LCM på en målnod kan verifiera konfigurationen. Om du vill skapa en kontrollsumma anropar du cmdleten New-DscChecksum . Cmdleten tar en sökvägsparameter som anger mappen där konfigurations-MOF finns. Cmdleten skapar en kontrollsummafil med namnet ConfigurationMOFName.mof.checksum, where ConfigurationMOFName är namnet på konfigurationen mof file. Om det finns fler än en MOF-konfigurationsfil i den angivna mappen skapas en kontrollsumma för varje konfiguration i mappen. Placera MOF-filerna och deras associerade kontrollsummafiler i mappen ConfigurationPath .
Anmärkning
Om du ändrar MOF-konfigurationsfilen på något sätt måste du också återskapa checksummefilen.
Verktyg
Om du vill konfigurera, validera och hantera pull-servern använder du följande verktyg som ingår som exempel i den senaste versionen av modulen xPSDesiredStateConfiguration:
En modul som hjälper dig att paketera DSC-resursmoduler och konfigurationsfiler för användning på pull-servern. PublishModulesAndMofsToPullServer.psm1. Exempel nedan:
# 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 -ForceEtt skript som verifierar pull-servern är korrekt konfigurerad. PullServerSetupTests.ps1.
Community-lösningar för pull-tjänster
DSC-communityn har skapat flera lösningar för att implementera pull-tjänstprotokollet. För lokala miljöer erbjuder dessa pull-tjänstfunktioner och en möjlighet att bidra tillbaka till communityn med inkrementella förbättringar.
Konfiguration av pull-klient
I följande avsnitt beskrivs hur du konfigurerar pull-klienter i detalj:
- Konfigurera en DSC-pullklient med hjälp av ett konfigurations-ID
- Konfigurera en DSC-pullklient med hjälp av konfigurationsnamn
- Partiella konfigurationer