Desired state-configuration-ravikanth-august-2013-vtc india

18
Desired State Configuration in PowerShell 4.0 Ravikanth Chaganti @Ravikanth http:// www.ravichaganti.com/blog

Transcript of Desired state-configuration-ravikanth-august-2013-vtc india

Page 1: Desired state-configuration-ravikanth-august-2013-vtc india

Desired State Configuration in PowerShell 4.0

Ravikanth Chaganti@Ravikanth

http://www.ravichaganti.com/blog

Page 2: Desired state-configuration-ravikanth-august-2013-vtc india

About Me

• Work at Dell Inc.• Windows PowerShell MVP since 2010• Founder and Editor of PowerShell

Magazine• Twitter: @Ravikanth• Facebook: /Ravikanthc• http://www.powershellmagazine.com• http://www.ravichaganti.com/blog

Page 3: Desired state-configuration-ravikanth-august-2013-vtc india

Desired State Configuration

• A new management platform for management of configuration data– Helps prevent configuration drift– Helps DevOps!

• Provides– Language Extensions– Cmdlets to manage configuration– Built-in resources

Page 4: Desired state-configuration-ravikanth-august-2013-vtc india

DSC Basics … Configuration ArchiveDemo { Node SRV3-WS2012R2 { Archive ArchiveDemo { Path = "\\10.10.10.101\Backup\Scripts.zip" DestinationPath = "C:\Scripts" Ensure="Present" } }}

ArchiveDemo

Declarative Syntax

.PS1

• Can take parameters like a function

• Uses PowerShell Remoting

• Each Configuration document gets converted to a MOF

Page 5: Desired state-configuration-ravikanth-august-2013-vtc india

DSC Resources

ArchiveEnvironmen

tFile Group

Log Package Process Registry

Role Script Service User

… Of course, You can build your own resources

Page 6: Desired state-configuration-ravikanth-august-2013-vtc india

BUILT-IN RESOURCESDemo

Page 7: Desired state-configuration-ravikanth-august-2013-vtc india

Custom DSC Resources

• Create a MOF file describing the resource• Create a PowerShell Module (PSM1 &

PSD1)– Set-TargetResource– Test-TargetResource– Get-TargetResource–Must be idempotent

• Copy all files to C:\Windows\system32\WindowsPowerShell\v1.0\Modules\PSDesiredStateConfiguration\PSProviders

Page 8: Desired state-configuration-ravikanth-august-2013-vtc india

Custom Resource - MOF[version("1.0.0"), FriendlyName("HostsFile")] class HostsFile : MSFT_BaseResourceConfiguration{ [Key] string hostName; [Key] string ipAddress; [write,ValueMap{"Present", "Absent"},Values{"Present", "Absent"}] string Ensure;};

• [Key] for unique attributes; become mandatory

• [Write] for attributes for which a value can be specified

• [Read] for readonly attributes

• ValueMap defines the possible values

• Naming: classname.schema.mof

HostsFile.Schema.Mof

Page 9: Desired state-configuration-ravikanth-august-2013-vtc india

Custom Resource – Module

• Same parameters on – Get-TargetResource• Must return hashtable of the configuration

– Set-TargetResource– Test-TargetResource• Must return true or false

• Module Manifest is required– Use New-ModuleManifest

Page 10: Desired state-configuration-ravikanth-august-2013-vtc india

DSC Execution Flow

Start

Run Test-

TargetResource

Run Set-

TargetResource

False

End

True

Page 11: Desired state-configuration-ravikanth-august-2013-vtc india

CUSTOM DSC RESOURCEDemo

Page 12: Desired state-configuration-ravikanth-august-2013-vtc india

DSC Configuration Data

• Separate business logic from configuration data

• Makes configuration logic more re-usable

$AllNodes = @( @{ NodeName = "*"; RecurseValue =

$true }, @{ NodeName = “SRV2"; HostName = "Web01"; IPAddress = “10.10.10.101"; },

@{ NodeName = “SRV3"; HostName = "Web02"; IPAddress = “10.10.10.102"; },);

Page 13: Desired state-configuration-ravikanth-august-2013-vtc india

DSC – Local Configuration Manager

• Each computer with PS 4.0 runs a DSC Engine (as SYSTEM)

• Responsible for calling the DSC resources

• LCM properties can be updated to use pull model; of course, using DSC

Page 14: Desired state-configuration-ravikanth-august-2013-vtc india

CONFIGURING CM Demo

Page 15: Desired state-configuration-ravikanth-august-2013-vtc india

Configuration Delivery

• Push– Default delivery mechanism– Start-DSCConfiguration

• Pull– DSC Service– IIS Endpoint– Requires • Windows Server 2102 or• Windows Server 2012 R2

Page 16: Desired state-configuration-ravikanth-august-2013-vtc india

Summary

• Understanding DSC and implementing custom resources can change the way configuration management is done

• Endless opportunities for System administrators and DevOps engineers

Page 17: Desired state-configuration-ravikanth-august-2013-vtc india

Resources

• DSC Overviewhttp://technet.microsoft.com/en-us/library/dn249912.aspx

• DevOps and DSCwww.youtube.com/watch?v=w3A2RmppBG4

• DSC at TechEd 2013http://channel9.msdn.com/Events/TechEd/NorthAmerica/2013/MDC-B302

• Github repo for DSC custom resourceshttps://github.com/smurawski/DSC-Contrib

Page 18: Desired state-configuration-ravikanth-august-2013-vtc india

QUESTIONS?