Aanbevolen procedures voor server ophalenPull server best practices

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

Overzicht: Dit document is bedoeld om het proces en uitbreidingsmogelijkheden engineers die voor de oplossing voorbereiden zich helpen bevatten.Summary: This document is intended to include process and extensibility to assist engineers who are preparing for the solution. Gegevens moeten best practices te geven aangeduid met klanten en vervolgens worden gevalideerd door het productteam om ervoor te zorgen aanbevelingen toekomstige verbonden 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.

Doc InfoDoc Info
auteurAuthor Michael GreeneMichael Greene
RevisorenReviewers Ben Gelens, Ravikanth Chaganti, Aleksandar NikolicBen Gelens, Ravikanth Chaganti, Aleksandar Nikolic
GepubliceerdPublished April 2015April, 2015

AbstracteAbstract

Dit document is ontworpen voor de officiële richtlijnen 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 alleen minuten te implementeren.A pull server is a simple service that should take only minutes to deploy. Hoewel dit document technische procedures richtlijnen die kan worden gebruikt in een implementatie biedt, is de waarde van dit document als een verwijzing voor aanbevolen procedures en wat u moet 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 enigszins bekend bent met DSC moeten hebben en de voorwaarden voor het 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 Configuration overzicht onderwerp.For more information, see the Windows PowerShell Desired State Configuration Overview topic. Zoals DSC wordt verwacht op cloud uitgebracht ontwikkelen, worden de onderliggende technologie inclusief pull-server wordt ook verwacht ontwikkelen en nieuwe mogelijkheden bieden.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 in de bijlage die voorziet in verwijzingen naar de vorige releases en verwijzingen naar toekomstige Zoek oplossingen te moedigen toekomstgerichte ontwerpen.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 hoofdonderdelen van dit document:The two major sections of this document:

  • Planning van de configuratieConfiguration Planning
  • InstallatiehandleidingInstallation Guide

Versies van het 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 Managed Object Format (MOF) met de naam voor het 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 in verschillende platforms, waaronder Linux en -netwerkbesturingssystemen hardware.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 aan MOF specificaties, 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 waarmee u kunt 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-serverfunctiePull server role

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

De functie van de 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 mogelijkheid van web server bevat een OData-interface en kunt u eventueel opnemen mogelijkheden voor de doelknooppunten om te rapporteren terug bevestiging van het slagen of mislukken als configuraties zijn toegepast.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 handig in omgevingen wanneer 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 zijn 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 implementatie of als een taak voor opnieuw voorkomende waardoor dit ook de pull-server een belangrijk onderdeel voor het beheren van de wijziging op grote 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 status Pull-configuratieservers en Push als Pull-Configuratiemodi.For more information, see Windows PowerShell Desired State Configuration Pull Servers and Push and Pull Configuration Modes.

Planning van de configuratieConfiguration planning

Er is voor de implementatie van enterprise software 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 de implementatie te vervolledigen.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 van tevoren gebeuren.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 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 via lopende versies van Windows Management Framework (WMF) is bijgewerkt.This feature was introduced in Windows Server 2012, and has been updated through ongoing releases of Windows Management Framework (WMF).

SoftwaredownloadsSoftware downloads

Naast de meest recente inhoud vanaf Windows Update installeert, zijn er twee downloads beschouwd als aanbevolen procedure voor het implementeren van een DSC-pull-server: de meest recente versie van Windows Management Framework en een DSC-module voor het automatiseren van de inrichting van pull-server.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 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 de 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 versies van Windows Server wordt bijgewerkt.WMF is included in Windows Server and is updated on an agile cadence between Windows Server releases. Nieuwe versies van WMF 5.0 kunt bevatten updates voor de functie DSC-Service.New versions of WMF 5.0 can include updates to the DSC Service feature. Daarom is een aanbevolen procedure voor het downloaden van de nieuwste versie van WMF en om te controleren van de release-opmerkingen om te bepalen of de versie een update op de functie voor DSC-service bevat.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. U moet ook de sectie van de release-opmerkingen die aangeeft of de status van het ontwerp voor een update of scenario wordt vermeld als stabiel of experimentele bekijken.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 stabiele, is wat aangeeft dat de functie gereed om te worden gebruikt in een productieomgeving, zelfs terwijl WMF Preview-versie wordt 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 WMF-versies (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 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 knooppunt van de server gereed productie.This document includes configuration scripts that can be used to deploy a production ready server node. Voor het gebruik van de 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 vereiste modulenaam 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 zal de module die u wilt downloaden:The PowerShellGet module will download the module to:

C:\Program Files\Windows PowerShell\Modules

Taak plannenPlanning task
Hebt u toegang tot de installatiebestanden voor Windows Server 2012 R2?Do you have access to the installation files for Windows Server 2012 R2?
De implementatieomgeving internettoegang hebben tot WMF en de module downloaden vanaf de on line galerie?Will the deployment environment have Internet access to download WMF and the module from the online gallery?
Hoe wordt u de meest recente beveiligingsupdates na de installatie van het besturingssysteem installeren?How will you install the latest security updates after installing the operating system?
Wordt de omgeving hebben toegang tot het Internet om updates te downloaden of wordt er een lokale server met Windows Server Update Services (WSUS)?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 Windows Server-installatiebestanden die al updates via offline injectie zijn?Do you have access to Windows Server installation files that already include updates through offline injection?

HardwarevereistenHardware requirements

Implementaties van pull-server worden ondersteund op fysieke en virtuele servers.Pull server deployments are supported on both physical and virtual servers. De sizing vereisten voor pull-server worden 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 processorCPU: 1.4 GHz 64-bit processor
Geheugen: 512 MBMemory: 512 MB
Schijfruimte: 32 GBDisk Space: 32 GB
: Gigabit Ethernet-netwerkadapterNetwork: Gigabit Ethernet Adapter

Taak plannenPlanning task
U implementeert 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 de 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 server grootte vraagt u de?What size server will you request?

AccountsAccounts

Er zijn geen vereisten voor serviceaccount voor het implementeren van een pull-server-exemplaar.There are no service account requirements to deploy a pull server instance. Er zijn echter scenario's waarin de website kan worden uitgevoerd in de context van een lokale gebruikersaccount.However, there are scenarios where the website could run in the context of a local user account. Bijvoorbeeld, als er nodig is toegang tot een storage-share voor website-inhoud en de Windows-Server of het apparaat waarop de storage-share zijn niet verbonden met het 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 moet worden gebruikt wanneer clients configureren voor gebruik met een pull-server-omgeving.You will need a server name to use when configuring clients to work with a pull server environment. De 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 productieomgevingen of in een testomgeving die is bedoeld voor een productie-implementatie, is de aanbevolen procedure om een DNS CNAME-record te maken.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. De bedoeling van de naamrecord van de aanvullende is om de flexibiliteit te vergroten, moet een wijziging zijn vereist in de toekomst.The intent of the additional name record is to increase flexibility should a change be required in the future. Kunt u een CNAME isoleren van configuratie van de client, zodat de wijzigingen in de server-omgeving, zoals een pull-server vervangen of toevoegen van extra pull-servers, is een overeenkomstige wijziging in de configuratie van de client niet 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.

Houd rekening met de oplossingsarchitectuur bij het kiezen van een naam voor de DNS-record.When choosing a name for the DNS record, keep the solution architecture in mind. Als met behulp van taakverdeling, wordt het certificaat dat wordt gebruikt om verkeer te beveiligen via HTTPS moet 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. Een hostnaam voor de server is geschikt voor eenvoudige configuraties.A server hostname is suitable for simple configurations. Als DNS niet beschikbaar is, kan een IP-adres in plaats van een hostnaam worden gebruikt.If DNS is not available, an IP address may be used in lieu of a hostname.
Implementatie van éé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
Weet u contactpersoon om DNS-records gemaakt en gewijzigd?Do you know who to contact to have DNS records created and changed?
Wat is de gemiddelde reactietijd voor een aanvraag voor een DNS-record ook?What is the average turnaround for a request for a DNS record?
Moet u de statische Hostname-A-records voor servers aanvragen?Do you need to request static Hostname (A) records for servers?
Wat u vraagt de als een CNAME?What will you request as a CNAME?
Indien nodig, wat voor soort Load Balancing-oplossing wordt u gebruiken?If needed, what type of Load Balancing solution will you utilize? (Zie de sectie taakverdeling voor meer informatie)(see section titled Load Balancing for details)

Openbare-sleutelinfrastructuurPublic Key Infrastructure

De meeste organisaties vereisen vandaag dat 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 voor het implementeren van een pull-server via HTTP wat vergemakkelijkt clientaanvragen in normale tekst, is het beste beveiligd verkeer via HTTPS.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.

Certificaatvereisten voor het beveiligen van HTTPS-verkeer voor pull-server zijn niet anders dan een andere HTTPS-website te beveiligen.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 worden geautomatiseerd, die u moet contact 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 reactietijd ook voor de aanvraag?What is the average turnaround for the request?
Hoe wordt het certificaatbestand overgedragen voor u?How will the certificate file be transferred to you?
Hoe wordt de persoonlijke sleutel van het certificaat worden overgebracht naar u?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 certificaatnaam 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 via 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 optie web service bieden meer flexibiliteit.In most situations, the web service option will provide greater flexibility. Het is niet ongewoon is voor HTTPS-verkeer naar de grenzen van netwerken, passeren 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 web-service biedt ook de optie een overeenstemming Server of Web Reporting Manager (zowel onderwerpen worden opgelost in een toekomstige versie van dit document) die bieden een mechanisme voor clients voor statusrapportage terug naar een server voor gecentraliseerde zichtbaarheid op te nemen.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 worden gebruikt en voor andere omgevingsvereisten waaruit een Webserverrol ongewenste.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. In beide gevallen moet u evalueren van de vereisten voor het ondertekenen en versleutelen van verkeer.In either case, remember to evaluate the requirements for signing and encrypting traffic. HTTPS, SMB-ondertekening en IPSEC-beleidsregels zijn alle opties waard.HTTPS, SMB signing, and IPSEC policies are all options worth considering.

TaakverdelingLoad balancing

Clients communiceren met de webservice indienen 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, zodat het niet nodig zijn voor het platform om ervoor te zorgen sessies worden beheerd op één server op elk punt in tijd voor de taakverdeling.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 voor taakverdeling verkeer tussen servers worden gebruikt?What solution will be used for load balancing traffic across servers?
Als een load balancer, die een aanvraag voor het toevoegen van een nieuwe configuratie op het apparaat te laten gebruiken?If using a hardware load balancer, who will take a request to add a new configuration to the device?
Wat is de gemiddelde reactietijd ook 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 informatie is alleen vereist voor de aanvraag?What information will be required for the request?
U moet aanvragen een extra IP-adres of het team dat verantwoordelijk is voor de taakverdeling wordt afgehandeld die?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 wordt dit door het team dat verantwoordelijk is voor het configureren van de oplossing voor taakverdeling worden vereist?Do you have the DNS records needed, and will this be required by the team responsible for configuring the load balancing solution?
De load balancing oplossing 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?

Fasering 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 die wordt 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. Omwille van de planning van de configuratie is het belangrijk dat u basiskennis 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.

In de toekomst wordt in deze sectie 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 gedurende een periode 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 verzoek 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 lab of het testen van het concept voor de eerste keer implementeert, gaat u waarschijnlijk afhangen van DSC-modules die beschikbaar via openbare opslagplaatsen zoals de galerie met PowerShell 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 dat zelfs voor vertrouwde online-bronnen zoals de PowerShell-galerie, elke module die is gedownload van een openbare opslagplaats moet worden gecontroleerd door iemand met PowerShell-ervaring en kennis van de omgeving waar de modules worden onthouden gebruikt voordat het wordt gebruikt in productie.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 zoals documentatie en voorbeeld-scripts kan worden verwijderd.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 de server met 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 worden verpakt in een specifieke indeling, een ZIP-bestand met de naam ModuleName_Version.zip waarin 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 is 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 niet is 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 test- of testomgeving omgeving weet welke scenario's sleutel om te valideren?If you are planning a test or lab environment which scenarios are key to validate?
Zijn er openbaar beschikbare modules die bronnen ten aanzien van alles wat die u moet bevatten of u moet uw eigen resources ontwerpen?Are there publicly available modules that contain resources to cover everything you need or will you need to author your own resources?
Uw omgeving internettoegang hebben tot openbare modules ophalen?Will your environment have Internet access to retrieve public modules?
Wie is verantwoordelijk voor het controleren van de 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?
Een centrale team DSC-modules van App-teams accepteert?Will a central team accept DSC modules from application teams? Wat is het procesWhat will the process be?
Wordt u verpakking, kopiëren en een controlesom voor gereed is voor productie DSC modules maken met de server uit de opslagplaats van uw bron automatiseren?Will you automate packaging, copying, and creating a checksum for production-ready DSC modules to the server, from your source repo?
Kan 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 bieden een gecentraliseerde mechanisme voor het distribueren van DSC-configuraties voor client-knooppunten.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 die moet 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 wordt gegarandeerd dat globale uniekheid en flexibele zodanig is dat een configuratie met een granulatie per knooppunt, of als een configuratie van de functie die veel servers met identieke configuraties omvat kan 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 extra aandacht bij gegevensclassificatie via de implementatie van een pull-server.Planning for configuration GUIDs is worth additional attention when thinking through a pull server deployment. Er is geen specifieke vereiste voor het verwerken van GUID's en het proces is waarschijnlijk uniek 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 oplossing integratie met een andere oplossing voor hulpprogramma's of software vereisen.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 niveau van precisie rond updates en kunt werken goed in omgevingen met enkele 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, uitvoeren met dezelfde GUID 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. Let wel dat als veel servers dezelfde GUID delen, 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 die gevoelige gegevens moeten worden overwogen omdat deze kan worden gebruikt door iemand met kwade bedoelingen intelligence over hoe de servers zijn geïmplementeerd en geconfigureerd in uw omgeving te krijgen.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 toewijzen van GUID's in PowerShell Desired status Pull-configuratiemodus.For more information, see Securely allocating GUIDs in PowerShell Desired State Configuration Pull Mode.

Taak plannenPlanning task
Wie is verantwoordelijk voor het kopiëren van configuraties in naar de map van de pull-server wanneer ze gereed zijn?Who will be responsible for copying configurations in to the pull server folder when they are ready?
Als configuraties zijn gemaakt door een toepassingsteam van, wat het proces is op deze aanlevert?If Configurations are authored by an application team, what will the process be to hand them off?
Wordt u gebruikmaken van een opslagplaats voor het opslaan van configuraties als ze worden gemaakt, verschillende teams?Will you leverage a repository to store configurations as they are being authored, across teams?
Automatiseert het proces van het kopiëren van configuraties naar de server en het maken van een controlesom wanneer ze gereed 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 dit 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 geïntegreerd met uw proces voor het maken en opslaan van de configuratie van 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 zijn opgegeven in dit document zijn stabiele voorbeelden. Altijd zorgvuldig te controleren scripts voordat deze wordt uitgevoerd in een productieomgeving.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 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.Next, download the xPsDesiredStateConfiguration module using the following command.

Install-Module xPSDesiredStateConfiguration

De opdracht vraagt naar 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 een DSC-configuratiescript gebruiken.The best method to deploy a DSC pull server is to use a DSC configuration script. Dit document biedt zowel basisinstellingen die alleen de DSC-webservice configureren en geavanceerde instellingen dat er een Windows Server end-to-end inclusief DSC webservice configureren waaronder scripts.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: Op dit moment de xPSDesiredStateConfiguation DSC-module vereist dat de server moet de landinstelling EN-US.Note: Currently the xPSDesiredStateConfiguation DSC module requires the server to be EN-US locale.

Basisconfiguratie 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, fragmenten en voorbeeldenAdditional references, snippets, and examples

Dit voorbeeld toont 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 gebruikt voor een type CNAME-record toevoegen aan een DNS-zone.The Add-DnsServerResourceRecordName cmdlet is used to add a type CNAME record to a DNS zone.

De functie PowerShell een controlesom en DSC-MOF publiceren met SMB Pull-Server maken genereert automatisch de vereiste controlesom en kopieert u de configuratie van de MOF- en controlesom bestanden 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 als u wilt maken van gegevens 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 2012Windows Server 2012
    Het bestandstype worden altijd .mdbThe file type will always be .mdb
  • Windows Server 2012 R2Windows Server 2012 R2
    Het bestandstype wordt standaard edb tenzij een .mdb is opgegeven in de configuratieThe 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 een kans van de fout is 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.