Best practices voor pull-serversPull server best practices

Van toepassing op: Windows PowerShell 4.0, Windows PowerShell 5.0Applies To: Windows PowerShell 4.0, Windows PowerShell 5.0

Belangrijk

De Pull-Server (Windows-functie DSC-Service) is een ondersteunde onderdeel van Windows Server maar er zijn geen plannen om nieuwe functies en mogelijkheden bieden.The Pull Server (Windows Feature DSC-Service) is a supported component of Windows Server however there are no plans to offer new features or capabilities. Het verdient aanbeveling om te beginnen met het overstappen clients beheerd Azure Automation DSC (inclusief functies dan Pull-Server op Windows Server) of een van de community-oplossingen die zijn opgenomen hier.It is recommended to begin transitioning managed clients to Azure Automation DSC (includes features beyond Pull Server on Windows Server) or one of the community solutions listed here.

Samenvatting: Dit document is bedoeld om op te nemen proces en uitbreidbaarheid voor de ondersteuning van technici die zijn voorbereid voor de oplossing.Summary: This document is intended to include process and extensibility to assist engineers who are preparing for the solution. Details dient aanbevolen procedures aangeduid met de klanten en vervolgens worden gevalideerd door het productteam om te controleren of aanbevelingen toekomstige gericht zijn en als stabiel beschouwd.Details should provide best practices as identified by customers and then validated by the product team to ensure recommendations are future facing and considered stable.

Informatie over dit documentDoc Info
De auteurAuthor Michael GreeneMichael Greene
RevisorenReviewers Ben Gelens, Ravikanth Chaganti, Aleksandar NikolicBen Gelens, Ravikanth Chaganti, Aleksandar Nikolic
GepubliceerdPublished April 2015April, 2015

SamenvattingAbstract

Dit document is ontworpen als officiële richtlijn voor iedereen plannen voor een implementatie van Windows PowerShell Desired State Configuration pull-server.This document is designed to provide official guidance for anyone planning for a Windows PowerShell Desired State Configuration pull server implementation. Een pull-server is een eenvoudige service die duurt slechts enkele minuten om te implementeren.A pull server is a simple service that should take only minutes to deploy. Hoewel dit document technische uitleg die kan worden gebruikt in een implementatie biedt, wordt de waarde van dit document is als referentie voor aanbevolen procedures en wat te denken voordat u implementeert.Although this document will offer technical how-to guidance that can be used in a deployment, the value of this document is as a reference for best practices and what to think about before deploying. Lezers mooi met DSC moeten zijn en de voorwaarden die worden gebruikt om te beschrijven van de onderdelen die zijn opgenomen in een DSC-implementatie.Readers should have basic familiarity with DSC, and the terms used to describe the components that are included in a DSC deployment. Zie voor meer informatie de Windows PowerShell Desired State Configuration Overview onderwerp.For more information, see the Windows PowerShell Desired State Configuration Overview topic. Zoals DSC wordt verwacht op cloudcadans ontwikkelen, wordt de onderliggende technologie, met inbegrip van pull-server ook verwacht ontwikkelen en nieuwe mogelijkheden geïntroduceerd.As DSC is expected to evolve at cloud cadence, the underlying technology including pull server is also expected to evolve and to introduce new capabilities. Dit document bevat een versietabel met in de bijlage die verwijzingen naar de vorige releases en verwijzingen naar toekomstige uitziende oplossingen om aan te moedigen toekomstgerichte ontwerpen biedt.This document includes a version table in the appendix that provides references to previous releases and references to future looking solutions to encourage forward-looking designs.

De twee belangrijkste secties van dit document:The two major sections of this document:

  • Planning van de configuratieConfiguration Planning
  • InstallatiehandleidingInstallation Guide

Versies van Windows Management FrameworkVersions of the Windows Management Framework

De informatie in dit document is bedoeld om te passen op Windows Management Framework 5.0.The information in this document is intended to apply to Windows Management Framework 5.0. WMF 5.0 is niet vereist voor de implementatie en het gebruik van een pull-server, is versie 5.0 de focus van dit document.While WMF 5.0 is not required for deploying and operating a pull server, version 5.0 is the focus of this document.

Windows PowerShell Desired State ConfigurationWindows PowerShell Desired State Configuration

Desired State Configuration (DSC) is een beheerplatform waarmee configuratiegegevens implementeren en beheren met behulp van een industrie-syntaxis met de naam van het Managed Object Format (MOF) om te beschrijven van het Common Information Model (CIM).Desired State Configuration (DSC) is a management platform that enables deploying and managing configuration data by using an industry syntax named the Managed Object Format (MOF) to describe the Common Information Model (CIM). Er bestaat een open source-project, Open Management Infrastructure (OMI), om verdere ontwikkeling van deze standaarden voor platformen, waaronder Linux en de hardware, besturingssystemen.An open source project, Open Management Infrastructure (OMI), exists to further development of these standards across platforms including Linux and network hardware operating systems. Zie voor meer informatie de DMTF-pagina koppelen volgens de specificaties van MOF, en OMI documenten en bron.For more information, see the DMTF page linking to MOF specifications, and OMI Documents and Source.

Windows PowerShell biedt een set met taaluitbreidingen voor Desired State Configuration die u gebruiken kunt voor het maken en beheren van declaratieve configuraties.Windows PowerShell provides a set of language extensions for Desired State Configuration that you can use to create and manage declarative configurations.

Pull-server-rolPull server role

Een pull-server voorziet in een gecentraliseerde service voor het opslaan van configuraties die is toegankelijk voor de doelknooppunten.A pull server provides a centralized service to store configurations that will be accessible to target nodes.

De functie voor pull-server kan worden geïmplementeerd als een Web Server-exemplaar of een SMB-bestandsshare.The pull server role can be deployed as either a Web Server instance or an SMB file share. De web server-functie bevat een OData-interface en kan de mogelijkheden voor doelknooppunten om te rapporteren terug bevestiging van het slagen of mislukken als configuraties zijn toegepast (optioneel) bevatten.The web server capability includes an OData interface and can optionally include capabilities for target nodes to report back confirmation of success or failure as configurations are applied. Deze functionaliteit is nuttig in omgevingen waarin er een groot aantal doelknooppunten.This functionality is useful in environments where there are a large number of target nodes. Na het configureren van een doelknooppunt (ook wel een client genoemd) om te verwijzen naar de pull-server de configuratie van de meest recente gegevens en alle vereiste scripts gedownload en toegepast.After configuring a target node (also referred to as a client) to point to the pull server the latest configuration data and any required scripts are downloaded and applied. Dit kan gebeuren als een eenmalige installatie of als een opnieuw voorkomende taak waardoor ook de pull-server een belangrijk onderdeel voor het beheren van de wijziging op schaal.This can happen as a one-time deployment or as a re-occurring job which also makes the pull server an important asset for managing change at scale. Zie voor meer informatie, Windows PowerShell Desired State Configuration Pull-Servers enFor more information, see Windows PowerShell Desired State Configuration Pull Servers and

Pushen en ophalen van configuratie-modi.Push and Pull Configuration Modes.

Planning van de configuratieConfiguration planning

Er is informatie die vooraf kan worden verzameld om u te helpen bij het plannen voor de juiste architectuur en om te worden voorbereid voor de stappen die nodig zijn om uit te voeren van de implementatie voor alle enterprise software-implementatie.For any enterprise software deployment there is information that can be collected in advance to help plan for the correct architecture and to be prepared for the steps required to complete the deployment. De volgende secties bevatten informatie over het voorbereiden en de organisatie-verbindingen die waarschijnlijk moet gebeuren vooraf.The following sections provide information regarding how to prepare and the organizational connections that will likely need to happen in advance.

SoftwarevereistenSoftware requirements

Implementatie van een pull-server vereist de functie van de DSC-Service van Windows Server.Deployment of a pull server requires the DSC Service feature of Windows Server. Deze functie is geïntroduceerd in Windows Server 2012 en is bijgewerkt via voortdurende versies van Windows Management Framework (WMF).This feature was introduced in Windows Server 2012, and has been updated through ongoing releases of Windows Management Framework (WMF).

Software downloadenSoftware downloads

Naast het installeren van de meest recente inhoud van Windows Update, er zijn twee downloads beschouwd als aanbevolen procedure voor het implementeren van een DSC-pull-server: de nieuwste versie van Windows Management Framework en een DSC-module voor het automatiseren van pull-server inrichten.In addition to installing the latest content from Windows Update, there are two downloads considered best practice to deploy a DSC pull server: The latest version of Windows Management Framework, and a DSC module to automate pull server provisioning.

WMFWMF

Windows Server 2012 R2 bevat een functie met de naam van de DSC-Service.Windows Server 2012 R2 includes a feature named the DSC Service. De functie DSC-Service biedt de functionaliteit pull-server, met inbegrip van de binaire bestanden die ondersteuning bieden voor het OData-eindpunt.The DSC Service feature provides the pull server functionality, including the binaries that support the OData endpoint. WMF is opgenomen in Windows Server en een flexibele uitgebracht tussen Windows Server-versies is bijgewerkt.WMF is included in Windows Server and is updated on an agile cadence between Windows Server releases. Nieuwe versies van WMF 5.0 kunnen updates op de functie voor DSC-Service zijn.New versions of WMF 5.0 can include updates to the DSC Service feature. Daarom is het een aanbevolen procedure voor het downloaden van de nieuwste versie van WMF en om te controleren om na te gaan als u de release van een update voor de functie voor DSC-service bevat de opmerkingen bij de release.For this reason, it is a best practice to download the latest release of WMF and to review the release notes to determine if the release includes an update to the DSC service feature. Ook moet u de sectie van de opmerkingen bij de release die aangeeft of de status van het ontwerp voor een update of scenario wordt vermeld als stabiel of experimentele controleren.You should also review the section of the release notes that indicates whether the design status for an update or scenario is listed as stable or experimental. Als u wilt toestaan voor een flexibele releasecyclus afzonderlijke functies worden gedeclareerd stabiel, is wat aangeeft dat de functie gereed om te worden gebruikt in een productie-omgeving, terwijl de WMF in Preview-versie is uitgebracht.To allow for an agile release cycle, individual features can be declared stable, which indicates the feature is ready to be used in a production environment even while WMF is released in preview. Andere functies die in het verleden zijn bijgewerkt door versies van WMF (Zie de opmerkingen bij de Release van WMF voor verdere details):Other features that have historically been updated by WMF releases (see the WMF Release Notes for further detail):

  • Windows PowerShell Windows PowerShell Integrated ScriptingWindows PowerShell Windows PowerShell Integrated Scripting
  • Environment (ISE) Windows PowerShell-webservices (Management ODataEnvironment (ISE) Windows PowerShell Web Services (Management OData
  • IIS-extensie) Windows PowerShell Desired State Configuration (DSC)IIS Extension) Windows PowerShell Desired State Configuration (DSC)
  • Windows Remote Management (WinRM) Windows Management Instrumentation (WMI)Windows Remote Management (WinRM) Windows Management Instrumentation (WMI)

DSC-resourceDSC resource

De implementatie van een pull-server kan worden vereenvoudigd door de service met behulp van een DSC-configuratiescript inricht.A pull server deployment can be simplified by provisioning the service using a DSC configuration script. Dit document bevat configuratiescripts die kunnen worden gebruikt voor het implementeren van een productie gereed server-knooppunt.This document includes configuration scripts that can be used to deploy a production ready server node. Voor het gebruik van de van configuratiescripts, een DSC-module is vereist dat niet is opgenomen in Windows Server.To use the configuration scripts, a DSC module is required that is not included in Windows Server. De modulenaam van de vereiste is xPSDesiredStateConfiguration, waaronder de DSC-resource xDscWebService.The required module name is xPSDesiredStateConfiguration, which includes the DSC resource xDscWebService. De module xPSDesiredStateConfiguration kan worden gedownload hier.The xPSDesiredStateConfiguration module can be downloaded here.

Gebruik de Install-Module cmdlet uit de PowerShellGet module.Use the Install-Module cmdlet from the PowerShellGet module.

Install-Module xPSDesiredStateConfiguration

De PowerShellGet module wordt de module te downloaden:The PowerShellGet module will download the module to:

C:\Program Files\Windows PowerShell\Modules

Taak plannenPlanning task
U hebt toegang tot de installatiebestanden voor Windows Server 2012 R2?Do you have access to the installation files for Windows Server 2012 R2?
De implementatieomgeving van een internettoegang hebben tot de module en WMF downloaden uit de galerie met online?Will the deployment environment have Internet access to download WMF and the module from the online gallery?
Hoe installeert u de meest recente beveiligingsupdates na de installatie van het besturingssysteem?How will you install the latest security updates after installing the operating system?
Wordt de omgeving hebt u toegang tot Internet om updates te downloaden of heeft deze een lokale Windows Server Update Services (WSUS)-server?Will the environment have Internet access to obtain updates, or will it have a local Windows Server Update Services (WSUS) server?
Hebt u toegang tot bestanden die al updates via offline injectie zijn voor installatie van Windows Server?Do you have access to Windows Server installation files that already include updates through offline injection?

HardwarevereistenHardware requirements

Pull-server-implementaties worden ondersteund op fysieke en virtuele servers.Pull server deployments are supported on both physical and virtual servers. Vereisten voor pull-server de grootte uitgelijnd met de vereisten voor Windows Server 2012 R2.The sizing requirements for pull server align with the requirements for Windows Server 2012 R2.

Processor: 1,4 GHz, 64-bits processor geheugen: 512 MB schijfruimte: 32 GB-netwerk: Gigabit Ethernet-AdapterCPU: 1.4 GHz 64-bit processor Memory: 512 MB Disk Space: 32 GB Network: Gigabit Ethernet Adapter

Taak plannenPlanning task
Wilt u implementeren op fysieke hardware of op een virtualisatieplatform?Will you deploy on physical hardware or on a virtualization platform?
Wat is het proces voor het aanvragen van een nieuwe server voor uw doelomgeving?What is the process to request a new server for your target environment?
Wat is de gemiddelde verwerkingstijd voor een server beschikbaar?What is the average turnaround time for a server to become available?
Welke grootte-server zal u vragen?What size server will you request?

AccountsAccounts

Er zijn geen vereisten voor serviceaccount om een pull-server-exemplaar te implementeren.There are no service account requirements to deploy a pull server instance. Er zijn echter scenario's waarin de website in de context van een lokale gebruikersaccount toegekend uitvoeren kan.However, there are scenarios where the website could run in the context of a local user account. Bijvoorbeeld, als er behoefte aan toegang tot een storage-share voor website-inhoud en de Windows-Server of het apparaat die als host fungeert voor de storage-share zijn niet toegevoegd aan een domein.For example, if there is a need to access a storage share for website content and either the Windows Server or the device hosting the storage share are not domain joined.

DNS-recordsDNS records

U moet een servernaam bij het configureren van clients gebruiken om te werken met een pull-server-omgeving.You will need a server name to use when configuring clients to work with a pull server environment. Hostnaam van de server wordt meestal gebruikt in een testomgeving, of het IP-adres voor de server kan worden gebruikt als DNS-naamomzetting niet beschikbaar is.In test environments, typically the server hostname is used, or the IP address for the server can be used if DNS name resolution is not available. In een productieomgeving of in een testomgeving die is bedoeld om weer te geven van een productie-implementatie, wordt de aanbevolen procedure is het maken van een DNS CNAME-record.In production environments or in a lab environment that is intended to represent a production deployment, the best practice is to create a DNS CNAME record.

Een DNS CNAME kunt u een alias om te verwijzen naar de host-A-record maken.A DNS CNAME allows you to create an alias to refer to your host (A) record. Het doel van de extra UPN-record is de flexibiliteit te vergroten moet een wijziging vereist in de toekomst zijn.The intent of the additional name record is to increase flexibility should a change be required in the future. Een CNAME te isoleren van configuratie van de client zodat wijzigingen in de server-omgeving, zoals het vervangen van een pull-server of het toevoegen van extra pull-servers, wordt een bijbehorende wijziging in de configuratie van de client vereist.A CNAME can help to isolate the client configuration so that changes to the server environment, such as replacing a pull server or adding additional pull servers, will not require a corresponding change to the client configuration.

Bij het kiezen van een naam op voor de DNS-record, houd rekening met de oplossingsarchitectuur.When choosing a name for the DNS record, keep the solution architecture in mind. Als met behulp van de taakverdeling, moet het certificaat dat wordt gebruikt om verkeer te beveiligen via HTTPS voor het delen van dezelfde naam als de DNS-record.If using load balancing, the certificate used to secure traffic over HTTPS will need to share the same name as the DNS record.

ScenarioScenario Best practicesBest Practice
TestomgevingTest Environment De geplande productie-omgeving, indien mogelijk reproduceren.Reproduce the planned production environment, if possible. De hostnaam van een server is geschikt voor eenvoudige configuraties.A server hostname is suitable for simple configurations. Als DNS niet beschikbaar is, kan een IP-adres kan worden gebruikt in plaats van een hostnaam.If DNS is not available, an IP address may be used in lieu of a hostname.
Implementatie met één knooppuntSingle Node Deployment Maak een DNS CNAME-record die naar de hostnaam van de server verwijst.Create a DNS CNAME record that points to the server hostname.

Zie voor meer informatie, DNS Round Robin configureren in Windows Server.For more information, see Configuring DNS Round Robin in Windows Server.

Taak plannenPlanning task
Wist u dat met wie neem contact op met om DNS-records gemaakt en gewijzigd?Do you know who to contact to have DNS records created and changed?
Wat is de gemiddelde doorlooptijd voor een aanvraag voor een DNS-record?What is the average turnaround for a request for a DNS record?
Moet u om aan te vragen van statische hostnaam-A-records voor servers?Do you need to request static Hostname (A) records for servers?
Welke vragen u als een CNAME?What will you request as a CNAME?
Indien nodig, welk type Load Balancing-oplossing wordt u gebruiken?If needed, what type of Load Balancing solution will you utilize? (Zie sectie Load Balancing voor meer informatie)(see section titled Load Balancing for details)

Openbare-sleutelinfrastructuurPublic Key Infrastructure

De meeste organisaties vereisen dat het netwerkverkeer, met name verkeer dat dergelijke gevoelige gegevens bevat, hoe servers zijn geconfigureerd, moet worden gevalideerd en/of tijdens de overdracht versleuteld.Most organizations today require that network traffic, especially traffic that includes such sensitive data as how servers are configured, must be validated and/or encrypted during transit. Het is mogelijk om te implementeren met behulp van HTTP, vereenvoudigt het uitvoeren van een pull-server aanvragen van clients in normale tekst, het is een best practice voor beveiligde via HTTPS-verkeer.While it is possible to deploy a pull server using HTTP which facilitates client requests in clear text, it is a best practice to secure traffic using HTTPS. De service kan worden geconfigureerd voor het gebruik van HTTPS met behulp van een set parameters in de DSC-resource xPSDesiredStateConfiguration.The service can be configured to use HTTPS using a set of parameters in the DSC resource xPSDesiredStateConfiguration.

De vereisten voor certificaten voor het beveiligen van HTTPS-verkeer voor pull-server zijn niet anders dan het beveiligen van een andere HTTPS-website.The certificate requirements to secure HTTPS traffic for pull server are not different than securing any other HTTPS web site. De webserver sjabloon in een Windows Server Certificate Services voldoet aan de vereiste mogelijkheden.The Web Server template in a Windows Server Certificate Services satisfies the required capabilities.

Taak plannenPlanning task
Als certificaataanvragen niet zijn geautomatiseerd, die u moet contact opnemen met op aanvragen van een certificaat?If certificate requests are not automated, who will you need to contact to requests a certificate?
Wat is de gemiddelde doorlooptijd voor de aanvraag?What is the average turnaround for the request?
Hoe wordt het certificaatbestand worden overgebracht naar u?How will the certificate file be transferred to you?
Hoe wordt de persoonlijke sleutel van het certificaat aan u worden overgedragen?How will the certificate private key be transferred to you?
Hoe lang is de verlooptijd van de standaard?How long is the default expiration time?
Hebt u verrekend op een DNS-naam voor de pull-server-omgeving, die u voor de naam van het certificaat gebruiken kunt?Have you settled on a DNS name for the pull server environment, that you can use for the certificate name?

Een architectuur kiezenChoosing an architecture

Een pull-server kan worden geïmplementeerd met behulp van een webservice die zijn gehost op IIS of een SMB-bestandsshare.A pull server can be deployed using either a web service hosted on IIS, or an SMB file share. In de meeste gevallen wordt de web service-optie bieden meer flexibiliteit.In most situations, the web service option will provide greater flexibility. Het is niet ongebruikelijk dat HTTPS-verkeer naar de grenzen van het netwerk, door te gaan dat SMB-verkeer is vaak gefilterd of geblokkeerd tussen netwerken.It is not uncommon for HTTPS traffic to traverse network boundaries, whereas SMB traffic is often filtered or blocked between networks. De webservice biedt ook de mogelijkheid om op te nemen van een conformiteit van Server of Web Reporting Manager (beide onderwerpen in een toekomstige versie van dit document worden verholpen) die bieden een mechanisme voor clients voor statusrapportage terug naar een server voor gecentraliseerde zichtbaarheid.The web service also offers the option to include a Conformance Server or Web Reporting Manager (both topics to be addressed in a future version of this document) that provide a mechanism for clients to report status back to a server for centralized visibility. SMB biedt een optie voor omgevingen waar beleid bepaalt dat een webserver niet moet worden gebruikt, en voor andere omgevingsvereisten die een web server-rol ongewenste maken.SMB provides an option for environments where policy dictates that a web server should not be utilized, and for other environmental requirements that make a web server role undesirable. Vergeet niet om te evalueren van de vereisten voor het ondertekenen en versleutelen van verkeer in beide gevallen.In either case, remember to evaluate the requirements for signing and encrypting traffic. HTTPS en SMB-ondertekening IPSEC-beleid zijn alle opties waard.HTTPS, SMB signing, and IPSEC policies are all options worth considering.

TaakverdelingLoad balancing

Clients communiceren met de webservice te vragen voor informatie die in een enkel antwoord wordt geretourneerd.Clients interacting with the web service make a request for information that is returned in a single response. Er zijn geen opeenvolgende aanvragen zijn vereist, dus het is niet nodig zijn voor de load balancer-platform, zodat er sessies op één server op elk gewenst moment worden bijgehouden in de tijd.No sequential requests are required, so it is not necessary for the load balancing platform to ensure sessions are maintained on a single server at any point in time.

Taak plannenPlanning task
Welke oplossing wordt gebruikt voor verkeer te verdelen over meerdere servers?What solution will be used for load balancing traffic across servers?
Als u een load balancer, die een aanvraag voor het toevoegen van een nieuwe configuratie op het apparaat?If using a hardware load balancer, who will take a request to add a new configuration to the device?
Wat is de gemiddelde doorlooptijd voor een aanvraag voor het configureren van een nieuwe load balanced webservice?What is the average turnaround for a request to configure a new load balanced web service?
Welke gegevens zijn vereist voor de aanvraag?What information will be required for the request?
Hebt u nodig om aan te vragen van een extra IP-adres of het team dat verantwoordelijk is voor de taakverdeling wordt afgehandeld dat?Will you need to request an additional IP or will the team responsible for load balancing handle that?
Hebt u de DNS-records die nodig zijn, en deze zijn vereist om het team dat verantwoordelijk is voor het configureren van de load balancer-oplossing?Do you have the DNS records needed, and will this be required by the team responsible for configuring the load balancing solution?
De oplossing voor taakverdeling vereist dat de PKI worden verwerkt door het apparaat of saldo HTTPS-verkeer, zolang er geen sessievereisten zijn laden?Does the load balancing solution require that PKI be handled by the device or can it load balance HTTPS traffic as long as there are no session requirements?

Staging-configuraties en -modules op de pull-serverStaging configurations and modules on the pull server

Als onderdeel van de planning van de configuratie, moet u nadenken over welke DSC-modules en configuraties worden gehost door de pull-server.As part of configuration planning, you will need to think about which DSC modules and configurations will be hosted by the pull server. Voor de planning van de configuratie is het belangrijk dat u hebt een basiskennis hebt van het voorbereiden en implementeren van inhoud naar een pull-server.For the purpose of configuration planning it is important to have a basic understanding of how to prepare and deploy content to a pull server.

Deze sectie wordt in de toekomst worden uitgebreid en opgenomen in de Operations Guide voor DSC-Pull-Server.In the future, this section will be expanded and included in an Operations Guide for DSC Pull Server. De handleiding wordt uitgelegd hoe het dagelijkse proces voor het beheren van modules en configuraties na verloop van tijd met automation.The guide will discuss the day to day process for managing modules and configurations over time with automation.

DSC-modulesDSC modules

Clients die aanvragen van een configuratie moet de vereiste DSC-modules.Clients that request a configuration will need the required DSC modules. Een functionaliteit van de pull-server is voor het automatiseren van distributie op aanvraag van DSC-modules voor clients.A functionality of the pull server is to automate distribution on demand of DSC modules to clients. Als u een pull-server mogelijk als een testomgeving of testen van concept voor het eerst implementeert, gaat u waarschijnlijk afhangen van DSC-modules die beschikbaar via openbare opslagplaatsen, zoals de PowerShell Gallery of de PowerShell.org GitHub-opslagplaatsen voor DSC-modules zijn .If you are deploying a pull server for the first time, perhaps as a lab or proof of concept, you are likely going to depend on DSC modules that are available from public repositories such as the PowerShell Gallery or the PowerShell.org GitHub repositories for DSC modules.

Het is essentieel om te onthouden dat zelfs voor betrouwbare online-bronnen, zoals de PowerShell Gallery, een module die is gedownload vanuit een openbare opslagplaats, moet worden gecontroleerd door iemand met PowerShell-ervaring en kennis van de omgeving waar de modules worden gebruikt voordat het wordt gebruikt in de productieomgeving.It is critical to remember that even for trusted online sources such as the PowerShell Gallery, any module that is downloaded from a public repository should be reviewed by someone with PowerShell experience and knowledge of the environment where the modules will be used prior to being used in production. Tijdens het uitvoeren van deze taak is het een goed moment om te controleren voor elke extra nettolading in de module die kan worden verwijderd, zoals documentatie en scripts.While completing this task it is a good time to check for any additional payload in the module that can be removed such as documentation and example scripts. Zo beperkt u de netwerkbandbreedte per client in de eerste aanvraag wanneer modules worden gedownload via het netwerk van server naar de client.This will reduce the network bandwidth per client in their first request, when modules will be downloaded over the network from server to client.

Elke module moet zijn ingepakt in een specifieke indeling, een ZIP-bestand met de naam ModuleName_Version.zip met de nettolading van de module.Each module must be packaged in a specific format, a ZIP file named ModuleName_Version.zip that contains the module payload. Nadat het bestand wordt gekopieerd naar de server die een controlesom-bestand moet worden gemaakt.After the file is copied to the server a checksum file must be created. Wanneer clients verbinding met de server maken, wordt de controlesom gebruikt om te controleren of dat de inhoud van de DSC-module is niet gewijzigd sinds het is gepubliceerd.When clients connect to the server, the checksum is used to verify the content of the DSC module has not changed since it was published.

New-DscChecksum -ConfigurationPath .\ -OutPath .\
Taak plannenPlanning task
Als u van plan bent een omgeving met test- of testomgeving weet welke scenario's sleutel valideren?If you are planning a test or lab environment which scenarios are key to validate?
Zijn er openbaar beschikbare modules met resources voor alles wat die u nodig hebt of moet u uw eigen resources maken?Are there publicly available modules that contain resources to cover everything you need or will you need to author your own resources?
Wordt uw omgeving hebt u toegang tot Internet om op te halen van openbare modules?Will your environment have Internet access to retrieve public modules?
Wie zijn verantwoordelijk voor het controleren van DSC-modules?Who will be responsible for reviewing DSC modules?
Als u van plan bent een productie-omgeving wat u gebruikt als een lokale opslagplaats voor het opslaan van DSC-modules?If you are planning a production environment what will you use as a local repository for storing DSC modules?
Accepteert een centraal team DSC-modules van App-teams?Will a central team accept DSC modules from application teams? Wat is het proces?What will the process be?
Wordt u verpakking, kopiëren en het maken van een controlesom voor gereed is voor productie DSC modules met de server uit de opslagplaats van het automatiseren?Will you automate packaging, copying, and creating a checksum for production-ready DSC modules to the server, from your source repo?
Uw team zijn verantwoordelijk voor het beheren van het automatiseringsplatform?Will your team be responsible for managing the automation platform as well?

DSC-configuratiesDSC configurations

Het doel van een pull-server is een gecentraliseerde mechanisme voor het distribueren van DSC-configuraties voor de client-knooppunten bieden.The purpose of a pull server is to provide a centralized mechanism for distributing DSC configurations to client nodes. De configuraties worden opgeslagen op de server als MOF-documenten.The configurations are stored on the server as MOF documents. Elk document worden benoemd met een unieke GUID.Each document will be named with a unique GUID. Wanneer clients verbinding maken met een pull-server worden geconfigureerd, krijgen ze ook de GUID voor de configuratie van die deze moeten aanvragen.When clients are configured to connect with a pull server, they are also given the GUID for the configuration they should request. Dit systeem voor het verwijzen naar configuraties door GUID gegarandeerd uniek globale en flexibele heeft dat kan een configuratie met granulatie per knooppunt, of als een configuratie van de functie die omvat veel servers waarvoor identieke configuraties moeten worden toegepast.This system of referencing configurations by GUID guarantees global uniqueness and is flexible such that a configuration can be applied with granularity per node, or as a role configuration that spans many servers that should have identical configurations.

GUID 'sGUIDs

Planning voor de configuratie van GUID's is waard is om extra aandacht bij via een pull-server-implementatie.Planning for configuration GUIDs is worth additional attention when thinking through a pull server deployment. Er is geen specifieke vereisten voor het afhandelen van GUID's en het proces is waarschijnlijk moet uniek zijn voor elke omgeving.There is no specific requirement for how to handle GUIDs and the process is likely to be unique for each environment. Het proces kan variëren van eenvoudige tot complexe: een centraal opgeslagen CSV-bestand, een eenvoudige SQL-tabel, een CMDB of een complexe oplossingen maken waarvoor integratie met een ander hulpprogramma of software-oplossing nodig.The process can range from simple to complex: a centrally stored CSV file, a simple SQL table, a CMDB, or a complex solution requiring integration with another tool or software solution. Er zijn twee algemene methoden:There are two general approaches:

  • Toewijzen van GUID's per server : biedt een zekere mate van zekerheid dat de configuratie van elke server afzonderlijk wordt beheerd.Assigning GUIDs per server — Provides a measure of assurance that every server configuration is controlled individually. Dit biedt een precisieniveau om updates en kan ze goed werken in omgevingen met een klein aantal servers.This provides a level of precision around updates and can work well in environments with few servers.

  • Toewijzen van GUID's per serverfunctie : alle servers die dezelfde functie, zoals webservers vervullen, gebruikt u dezelfde GUID om te verwijzen naar de vereiste configuratiegegevens.Assigning GUIDs per server role — All servers that perform the same function, such as web servers, use the same GUID to reference the required configuration data. Er rekening mee dat als veel servers dezelfde GUID delen, al deze zou worden bijgewerkt tegelijkertijd wanneer de configuratie wordt gewijzigd.Be aware that if many servers share the same GUID, all of them would be updated simultaneously when the configuration changes.

    De GUID is iets dat gevoelige gegevens moet worden overwogen omdat deze kan worden gebruikt door iemand met kwade bedoelingen te krijgen van inzicht in hoe servers zijn geïmplementeerd en geconfigureerd in uw omgeving.The GUID is something that should be considered sensitive data because it could be leveraged by someone with malicious intent to gain intelligence about how servers are deployed and configured in your environment. Zie voor meer informatie, veilig bij het toewijzen van GUID's in PowerShell Desired State Configuration Pull-modus.For more information, see Securely allocating GUIDs in PowerShell Desired State Configuration Pull Mode.

Taak plannenPlanning task
Wie zijn verantwoordelijk voor het kopiëren van configuraties in naar de map van de pull-server wanneer ze klaar zijn?Who will be responsible for copying configurations in to the pull server folder when they are ready?
Als configuraties zijn gemaakt door een team van toepassing, wat het proces is om ze uit?If Configurations are authored by an application team, what will the process be to hand them off?
Gebruik u van een opslagplaats voor het opslaan van configuraties als ze worden gemaakt, tussen teams?Will you leverage a repository to store configurations as they are being authored, across teams?
Automatiseert u het proces van configuraties kopiëren naar de server en het maken van een controlesom wanneer ze klaar zijn?Will you automate the process of copying configurations to the server and creating a checksum when they are ready?
Hoe wordt u GUID's toewijzen aan servers of rollen en waar deze worden opgeslagen?How will you map GUIDs to servers or roles, and where will this be stored?
Wat u gebruikt als een proces voor het configureren van clientcomputers, en hoe wordt deze dan geïntegreerd met het proces voor het maken en opslaan van configuratie-GUID's?What will you use as a process to configure client machines, and how will it integrate with your process for creating and storing Configuration GUIDs?

InstallatiehandleidingInstallation Guide

Scripts die worden vermeld in dit document zijn stabiel voorbeelden. Altijd zorgvuldig te controleren scripts voordat deze wordt uitgevoerd in een productie-omgeving.Scripts given in this document are stable examples. Always review scripts carefully before executing them in a production environment.

VereistenPrerequisites

De versie van PowerShell op uw server gebruik de volgende opdracht uit om te controleren.To verify the version of PowerShell on your server use the following command.

$PSVersionTable.PSVersion

Indien mogelijk een upgrade uitvoeren naar de nieuwste versie van Windows Management Framework.If possible, upgrade to the latest version of Windows Management Framework. Download vervolgens het xPsDesiredStateConfiguration module met behulp van de volgende opdracht uit.Next, download the xPsDesiredStateConfiguration module using the following command.

Install-Module xPSDesiredStateConfiguration

De opdracht vraagt om uw goedkeuring wordt vereist voor het downloaden van de module.The command will ask for your approval before downloading the module.

Installatie en configuratie-scriptsInstallation and configuration scripts

De beste methode voor het implementeren van een DSC-pull-server is het gebruik van een script voor DSC-configuratie.The best method to deploy a DSC pull server is to use a DSC configuration script. Dit document worden gepresenteerd scripts, met inbegrip van beide basisinstellingen die alleen de DSC-webservice configureren en geavanceerde instellingen van een Windows Server-end-to-end met DSC webservice configureren.This document will present scripts including both basic settings that would configure only the DSC web service and advanced settings that would configure a Windows Server end-to-end including DSC web service.

Opmerking: Momenteel de xPSDesiredStateConfiguation DSC-module vereist dat de server om te worden van de landinstelling EN-US.Note: Currently the xPSDesiredStateConfiguation DSC module requires the server to be EN-US locale.

Basisinformatie over de configuratie voor Windows Server 2012Basic configuration for Windows Server 2012

# This is a very basic Configuration to deploy a pull server instance in a lab environment on Windows Server 2012.

Configuration PullServer {
Import-DscResource -ModuleName xPSDesiredStateConfiguration

        # Load the Windows Server DSC Service feature
        WindowsFeature DSCServiceFeature
        {
          Ensure = 'Present'
          Name = 'DSC-Service'
        }

        # Use the DSC Resource to simplify deployment of the web service
        xDSCWebService PSDSCPullServer
        {
          Ensure = 'Present'
          EndpointName = 'PSDSCPullServer'
          Port = 8080
          PhysicalPath = "$env:SYSTEMDRIVE\inetpub\wwwroot\PSDSCPullServer"
          CertificateThumbPrint = 'AllowUnencryptedTraffic'
          ModulePath = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Modules"
          ConfigurationPath = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Configuration"
          State = 'Started'
          DependsOn = '[WindowsFeature]DSCServiceFeature'
        }
}
PullServer -OutputPath 'C:\PullServerConfig\'
Start-DscConfiguration -Wait -Force -Verbose -Path 'C:\PullServerConfig\'

Geavanceerde configuratie voor Windows Server 2012 R2Advanced configuration for Windows Server 2012 R2

# This is an advanced Configuration example for Pull Server production deployments on Windows Server 2012 R2.
# Many of the features demonstrated are optional and provided to demonstrate how to adapt the Configuration for multiple scenarios
# Select the needed resources based on the requirements for each environment.
# Optional scenarios include:
#      * Reduce footprint to Server Core
#      * Rename server and join domain
#      * Switch from SSL to TLS for HTTPS
#      * Automatically load certificate from Certificate Authority
#      * Locate Modules and Configuration data on remote SMB share
#      * Manage state of default websites in IIS

param (
        [Parameter(Mandatory=$true)]
        [ValidateNotNullorEmpty()]
        [System.String] $ServerName,
        [System.String] $DomainName,
        [System.String] $CARootName,
        [System.String] $CAServerFQDN,
        [System.String] $CertSubject,
        [System.String] $SMBShare,
        [Parameter(Mandatory=$true)]
        [ValidateNotNullorEmpty()]
        [PsCredential] $Credential
    )

Configuration PullServer {
    Import-DscResource -ModuleName xPSDesiredStateConfiguration, xWebAdministration, xCertificate, xComputerManagement
    Node localhost
    {

        # Configure the server to automatically corret configuration drift including reboots if needed.
        LocalConfigurationManager
        {
            ConfigurationMode = 'ApplyAndAutoCorrect'
            RebootNodeifNeeded = $node.RebootNodeifNeeded
            CertificateId = $node.Thumbprint
        }

        # Remove all GUI interfaces so the server has minimum running footprint.
        WindowsFeature ServerCore
        {
            Ensure = 'Absent'
            Name = 'User-Interfaces-Infra'
        }

        # Set the server name and if needed, join a domain. If not joining a domain, remove the DomainName parameter.
        xComputer DomainJoin
        {
            Name = $Node.ServerName
            DomainName = $Node.DomainName
            Credential = $Node.Credential
        }

        # The next series of settings disable SSL and enable TLS, for environments where that is required by policy.
        Registry TLS1_2ServerEnabled
        {
            Ensure = 'Present'
            Key = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server'
            ValueName = 'Enabled'
            ValueData = 1
            ValueType = 'Dword'
        }

        Registry TLS1_2ServerDisabledByDefault
        {
            Ensure = 'Present'
            Key = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server'
            ValueName = 'DisabledByDefault'
            ValueData = 0
            ValueType = 'Dword'
        }

        Registry TLS1_2ClientEnabled
        {
            Ensure = 'Present'
            Key = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client'
            ValueName = 'Enabled'
            ValueData = 1
            ValueType = 'Dword'
        }

        Registry TLS1_2ClientDisabledByDefault
        {
            Ensure = 'Present'
            Key = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client'
            ValueName = 'DisabledByDefault'
            ValueData = 0
            ValueType = 'Dword'
        }

        Registry SSL2ServerDisabled
        {
            Ensure = 'Present'
            Key = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server'
            ValueName = 'Enabled'
            ValueData = 0
            ValueType = 'Dword'
        }

        # Install the Windows Server DSC Service feature
        WindowsFeature DSCServiceFeature
        {
            Ensure = 'Present'
            Name = 'DSC-Service'
        }

        # If using a certificate from a local Active Directory Enterprise Root Certificate Authority, complete a request and install the certificate
        xCertReq SSLCert
        {
            CARootName = $Node.CARootName
            CAServerFQDN = $Node.CAServerFQDN
            Subject = $Node.CertSubject
            AutoRenew = $Node.AutoRenew
            Credential = $Node.Credential
        }

        # Use the DSC resource to simplify deployment of the web service.  You might also consider modifying the default port, possibly leveraging port 443 in environments where that is enforced as a standard.
        xDSCWebService PSDSCPullServer
        {
            Ensure = 'Present'
            EndpointName = 'PSDSCPullServer'
            Port = 8080
            PhysicalPath = "$env:SYSTEMDRIVE\inetpub\wwwroot\PSDSCPullServer"
            CertificateThumbPrint = 'CertificateSubject'
            CertificateSubject = $Node.CertSubject
            ModulePath = "$($Node.SMBShare)\DscService\Modules"
            ConfigurationPath = "$($Node.SMBShare)\DscService\Configuration"
            State = 'Started'
            DependsOn = '[WindowsFeature]DSCServiceFeature'
        }

        # Validate web config file contains current DB settings
        xWebConfigKeyValue CorrectDBProvider
        {
            ConfigSection = 'AppSettings'
            Key = 'dbprovider'
            Value = 'System.Data.OleDb'
            WebsitePath = 'IIS:\sites\PSDSCPullServer'
            DependsOn = '[xDSCWebService]PSDSCPullServer'
        }
        xWebConfigKeyValue CorrectDBConnectionStr
        {
            ConfigSection = 'AppSettings'
            Key = 'dbconnectionstr'
            Value = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\WindowsPowerShell\DscService\Devices.mdb;'
            WebsitePath = 'IIS:\sites\PSDSCPullServer'
            DependsOn = '[xDSCWebService]PSDSCPullServer'
        }

        # Stop the default website
        xWebsite StopDefaultSite
        {
            Ensure = 'Present'
            Name = 'Default Web Site'
            State = 'Stopped'
            PhysicalPath = 'C:\inetpub\wwwroot'
            DependsOn = '[WindowsFeature]DSCServiceFeature'
        }
    }
}

$configData = @{
    AllNodes = @(
        @{
            NodeName = 'localhost'
            ServerName = $ServerName
            DomainName = $DomainName
            CARootName = $CARootName
            CAServerFQDN = $CAServerFQDN
            CertSubject = $CertSubject
            AutoRenew = $true
            SMBShare = $SMBShare
            Credential = $Credential
            RebootNodeifNeeded = $true
            CertificateFile = 'c:\PullServerConfig\Cert.cer'
            Thumbprint = 'B9A39921918B466EB1ADF2509E00F5DECB2EFDA9'
            }
        )
    }

PullServer -ConfigurationData $configData -OutputPath 'C:\PullServerConfig\'
Set-DscLocalConfigurationManager -ComputerName localhost -Path 'C:\PullServerConfig\'
Start-DscConfiguration -Wait -Force -Verbose -Path 'C:\PullServerConfig\'

# .\Script.ps1 -ServerName web1 -domainname 'test.pha' -carootname 'test-dc01-ca' -caserverfqdn 'dc01.test.pha' -certsubject 'CN=service.test.pha' -smbshare '\\sofs1.test.pha\share'

Controleer de functionaliteit van de pull-serverVerify pull server functionality

# This function is meant to simplify a check against a DSC pull server. If you do not use the default service URL, you will need to adjust accordingly.
function Verify-DSCPullServer ($fqdn) {
    ([xml](Invoke-WebRequest "https://$($fqdn):8080/psdscpullserver.svc" | % Content)).service.workspace.collection.href
}

Verify-DSCPullServer 'INSERT SERVER FQDN'
Expected Result:
Action
Module
StatusReport
Node

Clients configurerenConfigure clients

Configuration PullClient {
    param(
    $ID,
    $Server
    )
        LocalConfigurationManager
                {
                    ConfigurationID = $ID;
                    RefreshMode = 'PULL';
                    DownloadManagerName = 'WebDownloadManager';
                    RebootNodeIfNeeded = $true;
                    RefreshFrequencyMins = 30;
                    ConfigurationModeFrequencyMins = 15;
                    ConfigurationMode = 'ApplyAndAutoCorrect';
                    DownloadManagerCustomData = @{ServerUrl = "http://"+$Server+":8080/PSDSCPullServer.svc"; AllowUnsecureConnection = $true}
                }
}

PullClient -ID 'INSERTGUID' -Server 'INSERTSERVER' -Output 'C:\DSCConfig\'
Set-DscLocalConfigurationManager -ComputerName 'Localhost' -Path 'C:\DSCConfig\' -Verbose

Aanvullende verwijzingen, codefragmenten en voorbeeldenAdditional references, snippets, and examples

Dit voorbeeld laat zien hoe u handmatig een clientverbinding tot stand (vereist WMF5) voor het testen.This example shows how to manually initiate a client connection (requires WMF5) for testing.

Update-DscConfiguration –Wait -Verbose

De toevoegen DnsServerResourceRecordName cmdlet een type CNAME-record toevoegen aan een DNS-zone wordt gebruikt.The Add-DnsServerResourceRecordName cmdlet is used to add a type CNAME record to a DNS zone.

De PowerShell-functie aan een controlesom en DSC MOF publiceren met SMB-Pull-Server maken genereert automatisch de vereiste controlesom en vervolgens de configuratie van de MOF- en controlesom bestanden worden gekopieerd naar de SMB-pull-server.The PowerShell Function to Create a Checksum and Publish DSC MOF to SMB Pull Server automatically generates the required checksum, and then copies both the MOF configuration and checksum files to the SMB pull server.

Bijlage - Understanding ODATA-servicegegevens bestandstypenAppendix - Understanding ODATA service data file types

Een bestand wordt opgeslagen voor het maken van informatie tijdens de implementatie van een pull-server met de OData-webservice.A data file is stored to create information during deployment of a pull server that includes the OData web service. Het type bestand is afhankelijk van het besturingssysteem, zoals hieronder wordt beschreven.The type of file depends on the operating system, as described below.

  • Windows Server 2012 het bestandstype is altijd .mdbWindows Server 2012 The file type will always be .mdb
  • Windows Server 2012 R2 het bestandstype wordt standaard edb, tenzij een .mdb is opgegeven in de configuratieWindows Server 2012 R2 The file type will default to .edb unless a .mdb is specified in the configuration

In de voorbeeldscript geavanceerde voor het installeren van een Pull-Server, vindt u ook een voorbeeld van hoe u kunt de instellingen van het bestand web.config om te voorkomen dat elke kans van de fout wordt veroorzaakt door het bestandstype automatisch te bepalen.In the Advanced example script for installing a Pull Server, you will also find an example of how to automatically control the web.config file settings to prevent any chance of error caused by file type.