The DSC Book

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Microsoft MVP Award recipient Don Jones and in-the-trenches DSC expert Missy Januszko tackle the enormous and complex topic of Desired State Configuration (DSC) in this "agile-published" book that will continue to be expanded and updated over time. Covering everything from design principles and infrastructure deployment, to configuration authoring, and to custom resource design and programming, you'll find everything you need in this comprehensive tome. And what you might not find in this book will be added and revised over time - making this your "forever" book on the subject, unlike traditionally published volumes. The DSC Book is designed to help you understand how DSC works, and how you can use it in a variety of scenarios. Examples are, for the most part, extremely concise - they're intended to help you understand the needed structure and approach. You should already be very familiar with coding advanced functions ("script cmdlets") in PowerShell, or consider purchasing Learn PowerShell Toolmaking in a Month of Lunches to gain that background knowledge. The practices and approaches presented in the book come from real-world engagements and experiences, and will continue to evolve over time as more and more people engage with DSC. Those "over time" learnings will be incorporated into the book, hopefully making it the last DSC book you'll ever need to buy.

Author(s): Don Jones; Melissa Januszko
Edition: Forever Edition [2018-12-18]
Publisher: Leanpub
Year: 2018

Language: English
Pages: 148

Table of Contents
About This Book
About the Authors
Feedback
A Note on Code Listings
Code Samples
Introduction
What is DSC?
Not Just for Provisioning
How Does DSC Compare to Group Policy?
Cattle, Not Pets
Technology, not Tool
A 2018 Update: What is DSC Good For?
Part 1: Design Decisions
Designing DSC
The Players
The Pieces
The CIM Connection
Uniqueness in MOFs
Getting the MOF to the LCM
Configuration Variations
Understanding Dependencies
Part 2: Configuring the Infrastructure
Infrastructure Prerequisites
Configuring the LCM
Checking the Configuration
Changing the Configuration
Deploying the LCM Configuration
Specifying Configuration Pull Servers
Specifying DSC Resource Pull Servers
Specifying Reporting Servers
Partial Configurations
Versions and Troubleshooting
Setting Up a Pull Server
Before You Begin
Reprising the Roles
A Word of Caution
Step 1: Install the Module
Step 2: Get an SSL Certificate
Step 3: Make a GUID
Step 4: Set Up DSC
Step 5: Run and Deploy the Config
Confirming the Setup
Life Choices
Opting Out of the Pull Server Approach
Part 3: Testing the Infrastructure
Testing Push Mode
Creating the Configuration
Running the Configuration to Produce a MOF
Pushing the MOF
Testing Pull Mode
Creating the Configuration
Running the Configuration to Produce a MOF
Deploying the MOF and Module to a Pull Server
Creating a Meta-Configuration
Pushing the Meta-Configuration to a Node
Pulling the Configuration from the Pull Server
Verifying the Node's State
Part 4: Authoring Configurations
Basic Configuration Authoring
Getting Started: The Configuration Block
Adding Nodes
Adding a Parameter Block
Adding Settings
Adding Basic Logic
Adding Node-Side Logic
Documenting Dependencies
Running the Configuration
Deploying the MOF
Wrapping Up
Going Further with Configurations
Again: DSC isn't Tooling
Understanding ConfigurationData
Defining Configuration Data
Referencing and Using Configuration Data
All-Nodes Data
Using the $AllNodes Variable
Configuration Script Strategies
Using NonNodeData
Poor Man's Configuration Modularization
Dot Sourcing
Approach Analysis
Composite Configurations
Creating a Composite Resource
Turning the Configuration into a Resource Module
Using the Composite Resource
Deploying the Composite Resource
Approach Analysis
Design Considerations
Partial Configurations
Summarizing Partial Configuration Pros and Cons
Authoring a Partial Configuration MOF
Configuring the LCM for Partial Configurations
Partial Configuration Dependencies
Partial Configuration Authoritative Resources
Mix `n' Match
File Naming Details
Deploying MOFs to a Pull Server
Part 5: Using and Authoring Resources
Finding and Using Resources
Finding What's Out There
Installing What's Out There
Finding What's Installed
Figuring Out What a Resource Wants
Custom Resources
Before We Begin: Function-Based vs. Class-Based
Writing the Functional Code
Writing the Interface Module
Preparing the Module for Use and Deployment
Triggering a Reboot
Class-Based Custom Resources
Writing the Class-Based Interface Module
Preparing the Module for Use
Best Practices for Resource Design
Principle One: Resources are an Interface
Thinking About Design
For Example
Advantages of the Approach
Disadvantage of the Approach
The Script Resource
The Basics
Cool Tricks
Part 6: Advanced Stuff
Reporting
Understanding the Default Report Server
Querying Report Data
The AgentId
Security and DSC
A Word on Certificates
Securing the Pull Server
Securing Credentials in Configurations
PSDSCRunAsCredential
Digital Signing
DSC in Azure
DSC on Linux
Troubleshooting and Debugging
Getting Eyes-On
Resource Debugging
Stopping a Hung LCM
Self-Modifying Configurations
Understanding the LCM's Processing
The Basic Self-Modifying Workflow
Options
A Problem to Consider
Crazy Ideas for What the Bootstrap Can Do
The Scaling Question
DSC Already Scales - But You Don't
Let's Set the Stage
Raise Cattle, Not Pets
Enter Containers
Rock-Solid Infrastructure
Getting Back to DSC
The Perfect Example
LCM and Pull Server Communications
The Database
Known Problems
Error configuring the LCM: ``Specified Property does not exist,'' ``MI RESULT 12''
Registration Key Problems
maxEnvelopeSize Errors
Reporting Server and Large Configurations
Class-Based Resources Can't be ExclusiveResources in Partials