Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
De Pull Server (Windows Feature DSC-Service) is een ondersteund onderdeel van Windows Server, maar er zijn geen plannen om nieuwe functies of mogelijkheden aan te bieden. We willen u laten weten dat er nu een nieuwere versie van DSC algemeen beschikbaar is, die wordt beheerd door een functie van Azure Policy met de naam gastconfiguratie. De gastconfiguratieservice combineert functies van DSC-extensie, Azure Automation State Configuration en de meest gevraagde functies op basis van feedback van klanten. Gastconfiguratie omvat ook ondersteuning voor hybride machines via servers met Arc.
Local Configuration Manager (LCM) kan centraal worden beheerd door een Pull Service-oplossing. Wanneer u deze aanpak gebruikt, wordt het knooppunt dat wordt beheerd, geregistreerd bij een service en krijgt het een configuratie toegewezen in LCM-instellingen. De configuratie en alle DSC-resources die nodig zijn als afhankelijkheden voor de configuratie worden gedownload naar de computer en door LCM gebruikt om de configuratie te beheren. Informatie over de status van de machine die wordt beheerd, wordt geüpload naar de service voor rapportage. Dit concept wordt "pull-service" genoemd.
De huidige opties voor pull-service zijn onder meer:
- Azure Automation Desired State Configuration-service
- Een pull-service die wordt uitgevoerd op Windows Server
- Door de gemeenschap onderhouden opensource-oplossingen
- Een aandeel in het MKB
De aanbevolen schaal voor elke oplossing is als volgt:
| Oplossing | Knooppunten van de client |
|---|---|
| Windows Pull Server met behulp van MDB/ESENT-database | Tot 500 knooppunten |
| Windows Pull Server met behulp van SQL-database | Tot 3500 knooppunten |
| Azure Automation DSC | Zowel kleine als grote omgevingen |
De aanbevolen oplossing en de optie met de meeste beschikbare functies is Azure Automation DSC. Er is geen bovengrens vastgesteld voor het aantal knooppunten per Automation-account.
De Azure-service kan knooppunten on-premises beheren in privédatacenters of in openbare clouds zoals Azure en AWS. Voor privéomgevingen waar servers niet rechtstreeks verbinding kunnen maken met internet, kunt u overwegen uitgaand verkeer te beperken tot alleen het gepubliceerde Azure-IP-bereik (zie Azure-IP-bereiken en servicetags).
Functies van de onlineservice die momenteel niet beschikbaar zijn in de pull-service op Windows Server zijn onder andere:
- Alle gegevens worden versleuteld tijdens het transport en in rust
- Clientcertificaten worden automatisch aangemaakt en beheerd
- Geheimenopslag voor het centraal beheren van wachtwoorden/inloggegevens, of variabelen zoals servernamen of verbindingsreeksen
- De LCM-configuratie van knooppunten centraal beheren
- Configuraties centraal toewijzen aan clientknooppunten
- Geef configuratiewijzigingen vrij in "kanariegroepen" om te testen voordat ze in productie gaan
- Grafische rapportage
- Statusdetail op het DSC-resourceniveau van granulariteit
- Uitgebreide foutmeldingen van clientcomputers voor het oplossen van problemen
- Integratie met Azure Log Analytics voor waarschuwingen, geautomatiseerde taken, Android/iOS-app voor rapportage en waarschuwingen
DSC-pull-service in Windows Server
Het is mogelijk om een pull-service te configureren die op Windows Server wordt uitgevoerd. Houd er rekening mee dat de pull-serviceoplossing in Windows Server alleen mogelijkheden biedt voor het opslaan van configuraties en modules voor het downloaden en vastleggen van rapportgegevens in een database. Het bevat niet veel van de mogelijkheden die de service in Azure biedt en is dus geen goed hulpmiddel om te evalueren hoe de service zou worden gebruikt.
De pull-service die in Windows Server wordt aangeboden, is een webservice in IIS die gebruikmaakt van een OData-interface om DSC-configuratiebestanden beschikbaar te maken voor doelknooppunten wanneer deze knooppunten daarom vragen.
Vereisten voor het gebruik van een pull-server:
- Een server met het volgende:
- WMF/PowerShell 4.0 of hoger
- IIS-serverfunctie
- DSC-dienst
- In het ideale geval is het een manier om een certificaat te genereren om referenties te beveiligen die zijn doorgegeven aan de Local Configuration Manager (LCM) op doelknooppunten
De beste manier om Windows Server te configureren voor host-pull-service is door een DSC-configuratie te gebruiken. Hieronder vindt u een voorbeeldscript.
Ondersteunde databasesystemen
Vanaf release 17090 van Windows Server biedt WMF 5.1 ondersteuning voor de SQL Server-optie voor de Pull-service (Windows Feature DSC-Service). Dit biedt een nieuwe optie voor het schalen van grote DSC-omgevingen die niet zijn gemigreerd naar Azure Automation DSC.
Als u de pull-server wilt configureren voor het gebruik van SQL Server, stelt u SqlProvider in op $true en SqlConnectionString op een geldige SQL Server Connection String. Zie SqlClient Connection Strings voor meer informatie. Voor een voorbeeld van SQL Server-configuratie met xDscWebService leest u eerst De xDscWebService-resource gebruiken en bekijkt u vervolgens2-xDscWebService_RegistrationUseSQLProvider_Config.ps1 op GitHub.
De xDscWebService-resource gebruiken
De eenvoudigste manier om een web pull-server in te stellen, is door de xDscWebService-bron te gebruiken, die is opgenomen in de xPSDesiredStateConfiguration-module . In de volgende stappen wordt uitgelegd hoe u de resource gebruikt in een Configuration die de webservice instelt.
Roep de cmdlet Install-Module aan om de xPSDesiredStateConfiguration-module te installeren.
Vraag een SSL-certificaat voor de DSC Pull-server aan bij een vertrouwde certificeringsinstantie, binnen uw organisatie of een openbare instantie. Het certificaat dat van de autoriteit wordt ontvangen, heeft meestal de PFX-indeling.
Installeer het certificaat op het knooppunt dat de DSC Pull-server wordt op de standaardlocatie, die .
CERT:\LocalMachine\MyNoteer de vingerafdruk van het certificaat.Selecteer een GUID die u wilt gebruiken als registratiesleutel. Als u er een wilt genereren met behulp van PowerShell, voert u het volgende in bij de PS-prompt en drukt u op enter:
[guid]::newGuid()ofNew-Guid. Deze sleutel wordt door clientknooppunten gebruikt als een gedeelde sleutel om te verifiëren tijdens de registratie. Zie voor meer informatie het gedeelte Registratiecode hieronder.Start in de PowerShell ISE (F5) het volgende configuratiescript (opgenomen in de map van de xPSDesiredStateConfiguration-module als
Sample_xDscWebServiceRegistration.ps1.Met dit script wordt de pull-server ingesteld.
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 } } }Voer de configuratie uit en geef de vingerafdruk van het SSL-certificaat door als de parameter certificateThumbPrint en een GUID-registratiesleutel als de parameter 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
Registratie Sleutel
Als u wilt toestaan dat clientknooppunten zich registreren bij de server, zodat ze configuratienamen kunnen gebruiken in plaats van een configuratie-ID, wordt een registratiesleutel die door de bovenstaande configuratie is gemaakt, opgeslagen in een bestand met de naam RegistrationKeys.txt in C:\Program Files\WindowsPowerShell\DscService. De registratiesleutel functioneert als een gedeeld geheim dat wordt gebruikt tijdens de eerste registratie door de client bij de pull-server. De client genereert een zelfondertekend certificaat dat wordt gebruikt om zich op unieke wijze te verifiëren bij de pull-server zodra de registratie is voltooid. De vingerafdruk van dit certificaat wordt lokaal opgeslagen en gekoppeld aan de URL van de pull-server.
Opmerking
Registratiesleutels worden niet ondersteund in PowerShell 4.0.
Als u een knooppunt wilt configureren om te verifiëren bij de pull-server, moet de registratiesleutel zich in de metaconfiguratie bevinden voor elk doelknooppunt dat zich bij deze pull-server registreert. Houd er rekening mee dat de RegistrationKey in de onderstaande metaconfiguratie wordt verwijderd nadat de doelcomputer is geregistreerd en dat de waarde moet overeenkomen met de waarde die is opgeslagen in het RegistrationKeys.txt bestand op de pull-server ('140a952b-b9d6-406b-b416-e0f759c9c0e4' voor dit voorbeeld). Behandel de waarde van de registratiesleutel altijd veilig, want als u deze kent, kan elke doelmachine zich registreren bij de pull-server.
[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
Opmerking
In de sectie ReportServerWeb kunnen rapportagegegevens naar de pull-server worden verzonden.
Het ontbreken van de eigenschap ConfigurationID in het metaconfiguratiebestand betekent impliciet dat de pull-server de V2-versie van het pull-serverprotocol ondersteunt, zodat een eerste registratie vereist is. Omgekeerd betekent de aanwezigheid van een ConfigurationID dat de V1-versie van het pull-serverprotocol wordt gebruikt en dat er geen registratieverwerking is.
Opmerking
In een PUSH-scenario bestaat er een bug in de huidige release die het noodzakelijk maakt om een ConfigurationID-eigenschap in het metaconfiguratiebestand te definiëren voor knooppunten die zich nooit hebben geregistreerd bij een pull-server. Hierdoor wordt het V1 Pull Server-protocol geforceerd en worden berichten over registratiefouten voorkomen.
Configuraties en resources plaatsen
Nadat de installatie van de pull-server is voltooid, plaatst u de mappen die zijn gedefinieerd door de eigenschappen ConfigurationPath en ModulePath in de pull-serverconfiguratie de mappen en configuraties die beschikbaar zijn voor doelknooppunten om op te halen. Deze bestanden moeten een specifiek formaat hebben om ervoor te zorgen dat de pull-server ze correct kan verwerken.
Indeling van het DSC-bronmodule
Elke bronmodule moet worden gezipt en benoemd volgens het volgende patroon <Module Name>_<Module Version>.zip.
Een module met de naam xWebAdminstration met een moduleversie van 3.1.2.0 krijgt bijvoorbeeld de naam xWebAdministration_3.1.2.0.zip. Elke versie van een module moet in één zip-bestand staan.
Aangezien er slechts één versie van een bron in elk zip-bestand is, wordt het moduleformaat dat in WMF 5.0 is toegevoegd met ondersteuning voor meerdere moduleversies in één directory niet ondersteund. Dit betekent dat voordat u DSC-bronmodules inpakt voor gebruik met de pull-server, u een kleine wijziging in de mappenstructuur moet aanbrengen. Het standaardformaat van modules die DSC-bronnen bevatten in WMF 5.0 is <Module Folder>\<Module Version>\DscResources\<DSC Resource Folder>\. Voordat u inpakt voor de pull-server, verwijdert u de <Module version> map zodat het pad .<Module Folder>\DscResources\<DSC Resource Folder>\ Met deze wijziging zip je de map zoals hierboven beschreven en plaats je deze zip-bestanden in de map ModulePath .
Gebruik New-DscChecksum <module zip file> deze om een checksum-bestand te maken voor de nieuw toegevoegde module.
Configuratie MOF-formaat
Een MOF-configuratiebestand moet worden gekoppeld aan een controlesombestand, zodat een LCM op een doelknooppunt de configuratie kan valideren. Als u een controlesom wilt maken, roept u de cmdlet New-DscChecksum aan. De cmdlet neemt een padparameter die de map opgeeft waarin de configuratie-MOF zich bevindt. De cmdlet maakt een checksum-bestand met de naam ConfigurationMOFName.mof.checksum, waar ConfigurationMOFName de naam van het configuratie-mof-bestand is. Als er meer dan één configuratie MOF-bestanden in de opgegeven map staan, wordt er een controlesom gemaakt voor elke configuratie in de map. Plaats de MOF-bestanden en de bijbehorende controlesombestanden in de map ConfigurationPath .
Opmerking
Als u het MOF-bestand van de configuratie op enigerlei wijze wijzigt, moet u ook het controlesombestand opnieuw maken.
Gereedschappen
Als u de pull-server wilt instellen, valideren en beheren, gebruikt u de volgende hulpprogramma's die als voorbeeld zijn opgenomen in de nieuwste versie van de xPSDesiredStateConfiguration-module:
Een module die helpt bij het verpakken van DSC-bronmodules en configuratiebestanden voor gebruik op de pull-server. PubliceermodulesEnMofsToPullServer.psm1. Voorbeelden hieronder:
# 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 -ForceEen script waarmee de pull-server wordt gevalideerd, is correct geconfigureerd. PullServerSetupTests.ps1.
Community-oplossingen voor pull-service
De DSC-gemeenschap heeft meerdere oplossingen ontwikkeld om het pull-serviceprotocol te implementeren. Voor on-premises omgevingen bieden deze pull-servicemogelijkheden en de mogelijkheid om met incrementele verbeteringen bij te dragen aan de community.
Clientconfiguratie ophalen
In de volgende onderwerpen wordt het instellen van pull-clients in detail beschreven:
- Een DSC-pull-client instellen met behulp van een configuratie-id
- Een DSC-pull-client instellen met behulp van configuratienamen
- Gedeeltelijke configuraties