Metodtips för hämtningsservernPull server best practices

Gäller för: Windows PowerShell 4,0, Windows PowerShell 5,0Applies To: Windows PowerShell 4.0, Windows PowerShell 5.0

Viktigt

Hämtnings servern (Windows Feature DSC-tjänst ) är en komponent som stöds av Windows Server men det finns inga planer på att erbjuda nya funktioner eller funktioner.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. Vi rekommenderar att du börjar överföra hanterade klienter till Azure Automation DSC (inklusive funktioner utöver hämtnings servern på Windows Server) eller någon av de community-lösningar som anges här.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.

Sammanfattning: det här dokumentet är avsett att omfatta process och utöknings barhet för att hjälpa tekniker som förbereder lösningen.Summary: This document is intended to include process and extensibility to assist engineers who are preparing for the solution. Informationen bör ge bästa praxis som identifieras av kunder och sedan verifieras av produkt teamet för att säkerställa att rekommendationerna är stabila och anses stabila.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.

  • Författare: Michael GreeneAuthor: Michael Greene
  • Granskare: Ben Gelens, Ravikanth Chaganti, Aleksandar NikolicReviewers: Ben Gelens, Ravikanth Chaganti, Aleksandar Nikolic
  • Publicerad: april 2015Published: April, 2015

SammanfattningAbstract

Det här dokumentet är utformat för att ge den officiella vägledningen för alla som planerar för en Windows PowerShell Desired State Configuration-hämtning av hämtnings servrar.This document is designed to provide official guidance for anyone planning for a Windows PowerShell Desired State Configuration pull server implementation. En pull-server är en enkel tjänst som bara tar några minuter att distribuera.A pull server is a simple service that should take only minutes to deploy. Även om det här dokumentet kommer att erbjuda teknisk instruktions vägledning som kan användas i en distribution, är värdet för det här dokumentet som en referens för bästa praxis och vad du behöver tänka på innan du distribuerar.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. Läsarna bör ha grundläggande kunskaper om DSC och de termer som används för att beskriva de komponenter som ingår i en DSC-distribution.Readers should have basic familiarity with DSC, and the terms used to describe the components that are included in a DSC deployment. Mer information finns i avsnittet Översikt över Desired State Configuration i Windows PowerShell .For more information, see the Windows PowerShell Desired State Configuration Overview topic. Eftersom DSC förväntas utvecklas på Cloud takt förväntas den underliggande tekniken, inklusive hämtnings servern, att utvecklas och introducera nya funktioner.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. Det här dokumentet innehåller en versions tabell i bilagan som innehåller referenser till tidigare versioner och referenser till kommande lösningar för att uppmuntra de vanliga designerna.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 två huvud avsnitten i det här dokumentet:The two major sections of this document:

  • Konfigurations planeringConfiguration Planning
  • InstallationsguideInstallation Guide

Versioner av Windows Management FrameworkVersions of the Windows Management Framework

Informationen i det här dokumentet är avsedd att användas för Windows Management Framework 5,0.The information in this document is intended to apply to Windows Management Framework 5.0. Även om WMF 5,0 inte krävs för att distribuera och använda en hämtnings Server är version 5,0 fokus i det här dokumentet.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

Önskad tillstånds konfiguration (DSC) är en hanterings plattform som gör det möjligt att distribuera och hantera konfigurations data med hjälp av en bransch-syntax med namnet Managed Object Format (MOF) som beskriver 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). Ett projekt med öppen källkod, öppen hanterings infrastruktur (OMI), finns för att utveckla dessa standarder på olika plattformar, inklusive Linux-och nätverks maskin varu operativ system.An open source project, Open Management Infrastructure (OMI), exists to further development of these standards across platforms including Linux and network hardware operating systems. Mer information finns i DMTF- sidan länka till MOF-specifikationeroch OMI-dokument och-källa.For more information, see the DMTF page linking to MOF specifications, and OMI Documents and Source.

Windows PowerShell innehåller en uppsättning språk tillägg för önskad tillstånds konfiguration som du kan använda för att skapa och hantera deklarativ konfigurationer.Windows PowerShell provides a set of language extensions for Desired State Configuration that you can use to create and manage declarative configurations.

Hämta server rollPull server role

En pull-server tillhandahåller en centraliserad tjänst för att lagra konfigurationer som kommer att vara tillgängliga för mål noder.A pull server provides a centralized service to store configurations that will be accessible to target nodes.

Hämtnings Server rollen kan distribueras antingen som en webb Server instans eller en SMB-filresurs.The pull server role can be deployed as either a Web Server instance or an SMB file share. Webb server funktionen innehåller ett OData-gränssnitt och kan även inkludera funktioner för målnoden för att rapportera om en bekräftelse eller ett haveri som har tillämpats.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. Den här funktionen är användbar i miljöer där det finns ett stort antal mål noder.This functionality is useful in environments where there are a large number of target nodes. När du har konfigurerat en målnod (kallas även en klient) för att peka på hämtnings servern, laddas de senaste konfigurations data och eventuella skript som krävs ned och tillämpas.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. Detta kan ske vid en enstaka distribution eller som ett jobb som körs på nytt, vilket även gör hämtnings servern till en viktig till gång för att hantera förändringar i skala.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. Mer information finns i Windows PowerShell Desired State Configuration pull-servrar och push och pull Configuration Modes.For more information, see Windows PowerShell Desired State Configuration Pull Servers and Push and Pull Configuration Modes.

Konfigurations planeringConfiguration planning

För distribution av företags program vara finns det information som kan samlas in i förväg för att planera för rätt arkitektur och förberedas för de steg som krävs för att slutföra distributionen.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. I följande avsnitt finns information om hur du förbereder och de organisatoriska anslutningar som sannolikt kommer att behöva inträffa i förväg.The following sections provide information regarding how to prepare and the organizational connections that will likely need to happen in advance.

ProgramvarukravSoftware requirements

För att kunna distribuera en pull-server krävs DSC-funktionen i Windows Server.Deployment of a pull server requires the DSC Service feature of Windows Server. Den här funktionen introducerades i Windows Server 2012 och har uppdaterats genom pågående versioner av Windows Management Framework (WMF).This feature was introduced in Windows Server 2012, and has been updated through ongoing releases of Windows Management Framework (WMF).

Hämtning av program varaSoftware downloads

Förutom att installera det senaste innehållet från Windows Update, finns det två hämtnings bara filer som anses vara bästa praxis för att distribuera en DSC-pull-server: den senaste versionen av Windows Management Framework och en DSC-modul för att automatisera hämtning av Server etablering.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 innehåller en funktion som kallas DSC-tjänsten.Windows Server 2012 R2 includes a feature named the DSC Service. Funktionen DSC-tjänst tillhandahåller hämtnings Server funktioner, inklusive binärfiler som stöder OData-slutpunkten.The DSC Service feature provides the pull server functionality, including the binaries that support the OData endpoint. WMF ingår i Windows Server och uppdateras på en smidig takt mellan Windows Server-versioner.WMF is included in Windows Server and is updated on an agile cadence between Windows Server releases. Nya versioner av WMF 5,0 kan innehålla uppdateringar av DSC-tjänstens funktion.New versions of WMF 5.0 can include updates to the DSC Service feature. Av den anledningen är det bäst att ladda ned den senaste versionen av WMF och granska viktig information för att ta reda på om versionen innehåller en uppdatering av DSC-tjänstens funktion.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. Du bör också läsa avsnittet i viktig information som anger om design status för en uppdatering eller ett scenario visas som stabil eller experimentell.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. För att möjliggöra en smidig lanserings cykel kan enskilda funktioner deklareras som stabila, vilket innebär att funktionen är redo att användas i en produktions miljö även om WMF lanseras i för hands versionen.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. Andra funktioner som tidigare har uppdaterats av WMF-versioner (mer information finns i versions kommentarerna för WMF):Other features that have historically been updated by WMF releases (see the WMF Release Notes for further detail):

  • Windows PowerShell Windows PowerShell-integrerat skriptWindows PowerShell Windows PowerShell Integrated Scripting
  • Environment (ISE) Windows PowerShell-webbtjänster (hantering ODataEnvironment (ISE) Windows PowerShell Web Services (Management OData
  • IIS-tillägg) 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-resursDSC resource

En pull-Server-distribution kan för enklas genom att tillhandahålla tjänsten med hjälp av ett DSC-konfigurations skript.A pull server deployment can be simplified by provisioning the service using a DSC configuration script. Det här dokumentet innehåller konfigurations skript som kan användas för att distribuera en produktions klar Server-nod.This document includes configuration scripts that can be used to deploy a production ready server node. Om du vill använda konfigurations skripten krävs en DSC-modul som inte ingår i Windows Server.To use the configuration scripts, a DSC module is required that is not included in Windows Server. Namnet på den obligatoriska modulen är xPSDesiredStateConfiguration , som innehåller DSC- xDscWebService.The required module name is xPSDesiredStateConfiguration , which includes the DSC resource xDscWebService. XPSDesiredStateConfiguration-modulen kan hämtas här.The xPSDesiredStateConfiguration module can be downloaded here.

Använd Install-Module cmdleten från PowerShellGet -modulen.Use the Install-Module cmdlet from the PowerShellGet module.

Install-Module xPSDesiredStateConfiguration

Modulen PowerShellGet hämtar modulen till:The PowerShellGet module will download the module to:

C:\Program Files\Windows PowerShell\Modules

Planerings uppgiftPlanning task

  • Har du åtkomst till installationsfilerna för Windows Server 2012 R2?Do you have access to the installation files for Windows Server 2012 R2?
  • Kommer distributions miljön att ha Internet åtkomst för att hämta WMF och modulen från Onlinegalleri?Will the deployment environment have Internet access to download WMF and the module from the online gallery?
  • Hur installerar du de senaste säkerhets uppdateringarna efter att du har installerat operativ systemet?How will you install the latest security updates after installing the operating system?
  • Kommer miljön att ha Internet åtkomst för att hämta uppdateringar eller kommer att ha en lokal 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?
  • Har du åtkomst till Windows Server-installationsfiler som redan innehåller uppdateringar via offline-inmatning?Do you have access to Windows Server installation files that already include updates through offline injection?

MaskinvarukravHardware requirements

Hämtnings Server distributioner stöds på både fysiska och virtuella servrar.Pull server deployments are supported on both physical and virtual servers. Storleks kraven för hämtnings servern överensstämmer med kraven för Windows Server 2012 R2.The sizing requirements for pull server align with the requirements for Windows Server 2012 R2.

  • CPU: 1,4 GHz 64-bitars processorCPU: 1.4 GHz 64-bit processor
  • Minne: 512 MBMemory: 512 MB
  • Disk utrymme: 32 GBDisk Space: 32 GB
  • Nätverk: Gigabit Ethernet-kortNetwork: Gigabit Ethernet Adapter

Planerings uppgiftPlanning task

  • Kommer du att distribuera på en fysisk maskin vara eller en Virtualization-plattform?Will you deploy on physical hardware or on a virtualization platform?
  • Vad är processen för att begära en ny server för mål miljön?What is the process to request a new server for your target environment?
  • Vilken är den genomsnittliga leverans tiden för en server att bli tillgänglig?What is the average turnaround time for a server to become available?
  • Vilken storleks server kommer du att begära?What size server will you request?

KontonAccounts

Det finns inga tjänst konto krav för att distribuera en pull-serverinstans.There are no service account requirements to deploy a pull server instance. Det finns dock scenarier där webbplatsen kan köras i kontexten för ett lokalt användar konto.However, there are scenarios where the website could run in the context of a local user account. Om det till exempel finns behov av att komma åt en lagrings resurs för webbplats innehåll och antingen Windows-servern eller enheten som är värd för lagrings resursen inte är domänansluten.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-posterDNS records

Du behöver ett server namn som du kan använda när du konfigurerar klienter för att arbeta med en pull-server-miljö.You will need a server name to use when configuring clients to work with a pull server environment. I test miljöer används vanligt vis serverns värdnamn, eller så kan IP-adressen för servern användas om DNS-namnmatchning inte är tillgänglig.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. I produktions miljöer eller i en labb miljö som är avsedd att representera en produktions distribution är det bästa sättet att skapa en DNS CNAME-post.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.

Med en DNS CNAME kan du skapa ett alias för att referera till värd posten (A).A DNS CNAME allows you to create an alias to refer to your host (A) record. Avsikten med den extra namn posten är att öka flexibiliteten om en ändring krävs i framtiden.The intent of the additional name record is to increase flexibility should a change be required in the future. En CNAME kan hjälpa till att isolera klient konfigurationen så att ändringar i Server miljön, till exempel att ersätta en hämtnings Server eller lägga till ytterligare pull-servrar, kräver ingen motsvarande ändring i klient konfigurationen.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.

Behåll lösnings arkitekturen i åtanke när du väljer ett namn för DNS-posten.When choosing a name for the DNS record, keep the solution architecture in mind. Om du använder belastnings utjämning måste certifikatet som används för att skydda trafik över HTTPS dela samma namn som DNS-posten.If using load balancing, the certificate used to secure traffic over HTTPS will need to share the same name as the DNS record.

ScenarioScenario MetodtipsBest Practice
TestmiljöTest Environment Återskapa den planerade produktions miljön, om möjligt.Reproduce the planned production environment, if possible. Ett server namn är lämpligt för enkla konfigurationer.A server hostname is suitable for simple configurations. Om DNS inte är tillgängligt kan en IP-adress användas i stället för ett värdnamn.If DNS is not available, an IP address may be used in lieu of a hostname.
Distribution av en nodSingle Node Deployment Skapa en DNS CNAME-post som pekar på serverns värdnamn.Create a DNS CNAME record that points to the server hostname.

Mer information finns i Konfigurera DNS Round Robin i Windows Server.For more information, see Configuring DNS Round Robin in Windows Server.

Planerings uppgiftPlanning task

  • Vet du vem du ska kontakta så att DNS-poster skapas och ändras?Do you know who to contact to have DNS records created and changed?
  • Vad är genomsnittet för en begäran om en DNS-post?What is the average turnaround for a request for a DNS record?
  • Behöver du begära statiska värdnamn (A) för servrar?Do you need to request static Hostname (A) records for servers?
  • Vad kommer du att begära som CNAME?What will you request as a CNAME?
  • Om det behövs, vilken typ av belastnings Utjämnings lösning kommer du att använda?If needed, what type of Load Balancing solution will you utilize? (se avsnittet med rubriken belastnings utjämning för mer information)(see section titled Load Balancing for details)

Infrastruktur för offentliga nycklarPublic Key Infrastructure

De flesta organisationer i dag kräver att nätverks trafik, särskilt trafik som inkluderar sådana känsliga data som servrar konfigureras, måste verifieras och/eller krypteras under överföringen.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. Även om det är möjligt att distribuera en pull-server med HTTP som underlättar klient begär anden i klartext, är det en bra idé att skydda trafiken med 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. Tjänsten kan konfigureras att använda HTTPS med en uppsättning parametrar i DSC- xPSDesiredStateConfiguration.The service can be configured to use HTTPS using a set of parameters in the DSC resource xPSDesiredStateConfiguration.

Certifikat kraven för säker HTTPS-trafik för hämtnings servern skiljer sig inte från att skydda andra HTTPS-webbplatser.The certificate requirements to secure HTTPS traffic for pull server are not different than securing any other HTTPS web site. Webb server mal len i en Windows Server Certificate Services uppfyller de funktioner som krävs.The Web Server template in a Windows Server Certificate Services satisfies the required capabilities.

Planerings uppgiftPlanning task

  • Om du inte automatiserar certifikat begär Anden måste du kontakta för att begära ett certifikat?If certificate requests are not automated, who will you need to contact to requests a certificate?
  • Vilken är den genomsnittliga leveransen för begäran?What is the average turnaround for the request?
  • Hur överförs certifikat filen till dig?How will the certificate file be transferred to you?
  • Hur överförs certifikatets privata nyckel till dig?How will the certificate private key be transferred to you?
  • Hur länge är standard förfallo tiden?How long is the default expiration time?
  • Har du kvittat dig på ett DNS-namn för pull Server-miljön, som du kan använda för certifikat namnet?Have you settled on a DNS name for the pull server environment, that you can use for the certificate name?

Välja en arkitekturChoosing an architecture

En hämtnings Server kan distribueras med antingen en webb tjänst som finns på IIS eller en SMB-filresurs.A pull server can be deployed using either a web service hosted on IIS, or an SMB file share. I de flesta fall ger alternativet för webb tjänsten större flexibilitet.In most situations, the web service option will provide greater flexibility. Det är inte ovanligt att HTTPS-trafik passerar nätverks gränserna, medan SMB-trafik ofta filtreras eller blockeras mellan nätverk.It is not uncommon for HTTPS traffic to traverse network boundaries, whereas SMB traffic is often filtered or blocked between networks. Webb tjänsten erbjuder också alternativet att inkludera en inställnings Server eller Web repor ting Manager (båda ämnen som ska åtgärdas i en framtida version av det här dokumentet) som ger en mekanism för klienter att rapportera status tillbaka till en server för centraliserad synlighet.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 innehåller ett alternativ för miljöer där en princip anger att en webb server inte ska användas och andra miljö krav som gör en webb server roll olämplig.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. I båda fallen måste du komma ihåg att utvärdera kraven för signering och kryptering av trafik.In either case, remember to evaluate the requirements for signing and encrypting traffic. HTTPS-, SMB-signering och IPSEC-principer är alla alternativ som är värda att beakta.HTTPS, SMB signing, and IPSEC policies are all options worth considering.

BelastningsutjämningLoad balancing

Klienter som interagerar med webb tjänsten gör en begäran om information som returneras i ett enda svar.Clients interacting with the web service make a request for information that is returned in a single response. Inga sekventiella begär Anden krävs, så det är inte nödvändigt för belastnings Utjämnings plattformen att säkerställa att sessioner upprätthålls på en enskild server vid varje tidpunkt.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.

Planerings uppgiftPlanning task

  • Vilken lösning ska användas för belastnings Utjämnings trafik mellan servrar?What solution will be used for load balancing traffic across servers?
  • Om du använder en maskinvarubaserad belastningsutjämnare, som tar en förfrågan om att lägga till en ny konfiguration till enheten?If using a hardware load balancer, who will take a request to add a new configuration to the device?
  • Vad är genomsnittet för en begäran om att konfigurera en ny belastningsutjämnad webb tjänst?What is the average turnaround for a request to configure a new load balanced web service?
  • Vilken information kommer att krävas för begäran?What information will be required for the request?
  • Behöver du begära ytterligare en IP-adress eller teamet som ansvarar för belastnings Utjämnings referensen?Will you need to request an additional IP or will the team responsible for load balancing handle that?
  • Har du de DNS-poster som behövs och kommer att krävas av teamet som ansvarar för att konfigurera belastnings Utjämnings lösningen?Do you have the DNS records needed, and will this be required by the team responsible for configuring the load balancing solution?
  • Kräver belastnings Utjämnings lösningen att PKI hanteras av enheten eller kan den belastningsutjämna HTTPS-trafik så länge det inte finns några krav för sessionen?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?

Mellanlagring av konfigurationer och moduler på hämtnings servernStaging configurations and modules on the pull server

Som en del av konfigurations planeringen måste du tänka på vilka DSC-moduler och konfigurationer som ska hanteras av hämtnings servern.As part of configuration planning, you will need to think about which DSC modules and configurations will be hosted by the pull server. För konfigurations planering är det viktigt att du har en grundläggande förståelse för hur du förbereder och distribuerar innehåll till en 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.

I framtiden kommer det här avsnittet att expanderas och ingå i en funktions guide för DSC-pull-server.In the future, this section will be expanded and included in an Operations Guide for DSC Pull Server. Guiden diskuterar dag till dags process för att hantera moduler och konfigurationer över tid med automatisering.The guide will discuss the day to day process for managing modules and configurations over time with automation.

DSC-modulerDSC modules

Klienter som begär en konfiguration kommer att behöva de DSC-moduler som krävs.Clients that request a configuration will need the required DSC modules. En funktion i pull-servern är att automatisera distributionen på begäran av DSC-moduler till klienter.A functionality of the pull server is to automate distribution on demand of DSC modules to clients. Om du distribuerar en pull-server för första gången, kanske som labb eller koncept bevis, kommer du troligen att vara beroende av DSC-moduler som är tillgängliga från offentliga databaser, till exempel PowerShell-galleriet eller PowerShell.org GitHub-lagringsplatsen för DSC-moduler.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.

Det är viktigt att komma ihåg att även för betrodda onlinekällor som PowerShell-galleriet, alla moduler som hämtas från ett offentligt lager bör granskas av någon med PowerShell-erfarenhet och kunskap om miljön där modulerna används innan de används i produktionen.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. När du slutför den här uppgiften är det en lämplig tid att söka efter ytterligare en nytto Last i modulen som kan tas bort, till exempel dokumentation och exempel skript.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. Detta minskar nätverks bandbredden per klient i den första begäran, när moduler ska laddas ned över nätverket från server till klient.This will reduce the network bandwidth per client in their first request, when modules will be downloaded over the network from server to client.

Varje modul måste paketeras i ett särskilt format, en ZIP-fil med namnet ModuleName_Version.zip som innehåller modulens nytto Last.Each module must be packaged in a specific format, a ZIP file named ModuleName_Version.zip that contains the module payload. När filen har kopierats till servern måste en kontroll Summa fil skapas.After the file is copied to the server a checksum file must be created. När klienter ansluter till servern används kontroll summan för att kontrol lera att innehållet i DSC-modulen inte har ändrats sedan den publicerades.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 .\

Planerings uppgiftPlanning task

  • Om du planerar en test-eller labb miljö vars scenarier är nyckel att verifiera?If you are planning a test or lab environment which scenarios are key to validate?
  • Finns det offentligt tillgängliga moduler som innehåller resurser för att omfatta allt du behöver eller behöver du redigera dina egna resurser?Are there publicly available modules that contain resources to cover everything you need or will you need to author your own resources?
  • Kommer din miljö att ha Internet åtkomst för att hämta offentliga moduler?Will your environment have Internet access to retrieve public modules?
  • Vem kommer att ansvara för att granska DSC-moduler?Who will be responsible for reviewing DSC modules?
  • Om du planerar en produktions miljö vad kommer du att använda som lokal lagrings plats för att lagra DSC-moduler?If you are planning a production environment what will you use as a local repository for storing DSC modules?
  • Accepterar Central team DSC-moduler från program team?Will a central team accept DSC modules from application teams? Vad kommer processen att vara?What will the process be?
  • Kommer du att automatisera paketering, kopiering och skapande av en kontroll summa för produktions klara DSC-moduler till servern från din lagrings platsen?Will you automate packaging, copying, and creating a checksum for production-ready DSC modules to the server, from your source repo?
  • Är ditt team ansvarigt för att hantera Automation-plattformen också?Will your team be responsible for managing the automation platform as well?

DSC-konfigurationerDSC configurations

Syftet med en pull-server är att tillhandahålla en central mekanism för att distribuera DSC-konfigurationer till klient-noder.The purpose of a pull server is to provide a centralized mechanism for distributing DSC configurations to client nodes. Konfigurationerna lagras på servern som MOF-dokument.The configurations are stored on the server as MOF documents. Varje dokument får ett unikt GUID -namn.Each document will be named with a unique Guid. När klienterna är konfigurerade för att ansluta till en pull-server får de också GUID för den konfiguration de bör begära.When clients are configured to connect with a pull server, they are also given the Guid for the configuration they should request. Det här systemet med referenser till konfigurationer efter GUID garanterar global unikhet och är flexibelt så att en konfiguration kan tillämpas med granularitet per nod, eller som en roll konfiguration som omfattar många servrar som ska ha identiska konfigurationer.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.

GUIDGuids

Planering av konfigurations- GUID är värda ytterligare uppmärksamhet vid användning av en pull-Server-distribution.Planning for configuration Guids is worth additional attention when thinking through a pull server deployment. Det finns inget särskilt krav för att hantera GUID och processen är förmodligen unik för varje miljö.There is no specific requirement for how to handle Guids and the process is likely to be unique for each environment. Processen kan vara mellan enkla och komplexa: en centralt lagrad CSV-fil, en enkel SQL-tabell, en CMDB eller en komplex lösning som kräver integrering med ett annat verktyg eller en program varu lösning.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. Det finns två allmänna metoder:There are two general approaches:

  • Tilldelning av GUID per server – ger ett mått på att varje server konfiguration kontrol leras individuellt.Assigning Guids per server — Provides a measure of assurance that every server configuration is controlled individually. Detta ger en nivå av precision kring uppdateringar och kan fungera bra i miljöer med några få servrar.This provides a level of precision around updates and can work well in environments with few servers.

  • Tilldela GUID per server roll – alla servrar som utför samma funktion, till exempel webb servrar, använder samma GUID för att referera till nödvändiga konfigurations data.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. Tänk på att om många servrar delar samma GUID, så uppdateras alla samtidigt när konfigurationen ändras.Be aware that if many servers share the same GUID, all of them would be updated simultaneously when the configuration changes.

    GUID är något som ska betraktas som känsliga data eftersom det kan utnyttjas av någon med skadlig avsikt för att få information om hur servrar distribueras och konfigureras i din miljö.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. Mer information finns i avsnittet om att allokera GUID i PowerShell Desired State Configuration pull-läge.For more information, see Securely allocating Guids in PowerShell Desired State Configuration Pull Mode.

Planerings uppgiftPlanning task

  • Vem kommer att ansvara för att kopiera konfigurationer till pull-servermappen när de är klara?Who will be responsible for copying configurations in to the pull server folder when they are ready?
  • Vad kommer processen att bli av om konfigurationer har skapats av ett program team?If Configurations are authored by an application team, what will the process be to hand them off?
  • Kommer du att använda en lagrings plats för att lagra konfigurationer när de skapas, i flera team?Will you leverage a repository to store configurations as they are being authored, across teams?
  • Automatiseras processen med att kopiera konfigurationer till servern och skapa en kontroll Summa när de är klara?Will you automate the process of copying configurations to the server and creating a checksum when they are ready?
  • Hur mappar du GUID till servrar eller roller och var kommer det att lagras?How will you map Guids to servers or roles, and where will this be stored?
  • Vad ska du använda som en process för att konfigurera klient datorer och hur kommer det att integreras med processen för att skapa och lagra konfigurations-GUID?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?

InstallationsguideInstallation Guide

Skript som anges i det här dokumentet är stabila exempel. Granska alltid skript noggrant innan du kör dem i en produktions miljö.Scripts given in this document are stable examples. Always review scripts carefully before executing them in a production environment.

FörutsättningarPrerequisites

Använd följande kommando för att kontrol lera versionen av PowerShell på servern.To verify the version of PowerShell on your server use the following command.

$PSVersionTable.PSVersion

Uppgradera om möjligt till den senaste versionen av Windows Management Framework.If possible, upgrade to the latest version of Windows Management Framework. Hämta sedan xPsDesiredStateConfiguration modulen med hjälp av följande kommando.Next, download the xPsDesiredStateConfiguration module using the following command.

Install-Module xPSDesiredStateConfiguration

Kommandot ber om ditt godkännande innan du laddar ned modulen.The command will ask for your approval before downloading the module.

Installations-och konfigurations skriptInstallation and configuration scripts

Den bästa metoden för att distribuera en DSC-pull-server är att använda ett DSC-konfigurations skript.The best method to deploy a DSC pull server is to use a DSC configuration script. Det här dokumentet visar skript, inklusive både grundläggande inställningar som endast konfigurerar DSC-webbtjänsten och avancerade inställningar som konfigurerar en Windows Server från slut punkt till slut punkt inklusive DSC-webbtjänst.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.

Obs: för närvarande xPSDesiredStateConfiguration kräver DSC-modulen att servern är en-US-språkvariant.Note: Currently the xPSDesiredStateConfiguration DSC module requires the server to be EN-US locale.

Grundläggande konfiguration för 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\'

Avancerad konfiguration för 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'

Verifiera hämtning av Server funktionerVerify 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

Konfigurera klienterConfigure 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

Ytterligare referenser, kodfragment och exempelAdditional references, snippets, and examples

Det här exemplet visar hur du manuellt initierar en klient anslutning (kräver WMF5) för testning.This example shows how to manually initiate a client connection (requires WMF5) for testing.

Update-DscConfiguration –Wait -Verbose

Cmdlet: en Add-DnsServerResourceRecordName används för att lägga till en typ CNAME-post i en DNS-zon.The Add-DnsServerResourceRecordName cmdlet is used to add a type CNAME record to a DNS zone.

PowerShell-funktionen för att skapa en kontroll summa och publicera DSC MOF till SMB pull server genererar automatiskt den nödvändiga kontroll summan och kopierar sedan både MOF-konfigurationen och kontroll summornas filer till SMB-pull-servern.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.

Tillägg – förstå ODATA-tjänstens data fil typerAppendix - Understanding ODATA service data file types

En datafil lagras för att skapa information under distributionen av en pull-server som inkluderar OData-webbtjänsten.A data file is stored to create information during deployment of a pull server that includes the OData web service. Vilken typ av fil som används beror på operativ systemet, enligt beskrivningen nedan.The type of file depends on the operating system, as described below.

  • Windows Server 2012 – filtypen är alltid .mdbWindows Server 2012 - The file type will always be .mdb
  • Windows Server 2012 R2 – filtypen används som standard .edb om inte en .mdb anges i konfigurationenWindows Server 2012 R2 - The file type will default to .edb unless a .mdb is specified in the configuration

I det avancerade exempel skriptet för att installera en hämtnings server hittar du också ett exempel på hur du automatiskt kontrollerar web.config fil inställningarna för att förhindra eventuella fel som orsakas av filtypen.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.