Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

34
für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION

Transcript of Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Page 1: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

 für was, wen, wann und überhaupt?

DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION

Page 2: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Dank DSC werden viele Administratoren nicht einmal mehr Powershell lernen müssen…

Page 3: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

DSC ist komplett Textfile basierend – jeder kann es lesen, indexieren, anpassen und generieren.

Page 4: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Calls

MOF onTarget Node

DSC Resourcesspecialized

Windows PowerShell modulesPu

shed

Compiled

DSC ArchitekturConfiguration Script

MyConfig.ps1

MOFSERVER42.mof

Authoring Deployment

Page 5: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Evolution des DevOps

Basic AdminScripter

Programmierer

Page 6: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Configuration ScriptsConfiguration MonitoringSoftware{ param( [string[]]$ComputerName="localhost" ) Node $ComputerName { File MonitoringInstallationFiles { Ensure = "Present" SourcePath = "\\dc01\Software\Monitoring" DestinationPath = "C:\Temp\Monitoring" Type = "Directory" Recurse = $true } }} MonitoringSoftware

Page 7: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Configuration Examples…

Page 8: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

RegistryRegistry RegistryExample{ Ensure = "Present" # You can also set Ensure to "Absent" Key = "HKEY_LOCAL_MACHINE\SOFTWARE\ExampleKey" ValueName ="TestValue" ValueData ="TestData"}

Page 9: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Package ResourcePackage PackageExample{ Ensure = "Present" # You can also set Ensure to "Absent" Path = "$Env:SystemDrive\TestFolder\TestProject.msi" Name = "TestPackage" ProductId = "663A8209-89E0-4C48-898B-53D73CA2C14B"}

Page 10: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

UmgebungsvariablenEnvironment EnvironmentExample{ Ensure = "Present" # You can also set Ensure to "Absent" Name = "TestEnvironmentVariable" Value = "TestValue"}

Page 11: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Archiv RessourceArchive ArchiveExample { Ensure = "Present" Path = "C:\Users\Public\Documents\Test.zip" Destination = "C:\Users\Public\Documents\ExtractionPath"}

Page 12: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Windows FeatureWindowsFeature IIS{ Ensure = "Present" # To uninstall, set Ensure to "Absent" Name = "Web-Server“ # Name property from Get-WindowsFeature}

Page 13: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

GruppenGroup GroupExample{ # This will remove TestGroup, if present # To create a new group, set Ensure to "Present" Ensure = "Absent" GroupName = "TestGroup"}

Page 14: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

DiensteService ServiceExample{ Name = "TermService" StartupType = "Manual"}

Page 15: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Script RessourceScript ScriptExample{ SetScript = { $sw = New-Object System.IO.StreamWriter("C:\TempFolder\TestFile.txt") $sw.WriteLine("Some sample string") $sw.Close() } TestScript = { Test-Path "C:\TempFolder\TestFile.txt" } GetScript = { <# This must return a hash table #> } }

Page 16: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Fehlt noch was…?

ProgrammiererScripter

Basic Admin

Page 17: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

DSC Resource Design

ModulexNetworking

ResourcexIPAddress

ResourcexDNSServerAddress

ModulexFirewall

“x” denotes “Experimental”

“c” denotes “Community”

For internal resources

develop a private prefix

Page 18: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Resource PrototypeFunction Get-TargetResource {}

Function Set-TargetResource {}

Function Test-TargetResource {}

Page 20: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Fehlt ein CMDlet…?

ProgrammiererScripter

Basic Admin

Page 21: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Abgrenzung zu GPO’s?Über Domänengrenzen hinweg

anwendbarErweiterbarkeit durch eigene PS-ScriptsStandardisiertes Format

Page 22: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

DSC vs. GPOFeature Group Policy DSC

Configuration stored in GPO file Configuration script / MOF file

Target nodes by means of AD links to OUs, sites, etc. Configuration specifies node names

Configuration implemented by Client-side OS components Client-side shell scripts (resources)

Extensible by means of Complex native programming Windows PowerShell scripts

Primary configuration target Windows registry Anything Windows PowerShell can “touch”

Persistence Settings reapply each time Settings are persistentNumber of configurations per node

As many GPOs as you want to link One

Page 23: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Was passiert, wenn GPOs und DSC gleichzeitig im Einsatz sind…?

Page 24: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Click icon to add picture

…eine Anleitung…

Ich habe die Configurations gemacht – und jetzt?

Page 25: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Jetzt benötigen wir zuerst ein MOF!

MOF = Managed Object Format

Page 26: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Weshalb ein MOF? Generisches File Format Wird auch von Unix und NW-Komponenten

unterstützt Kann auch durch andere Tools (nicht PS)

generiert werden

Page 27: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Wie mache ich ein MOF?…indem einfach der Name der

CONFIGURATION aufgerufen wird…

Page 28: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Wie sieht ein MOF aus?

/*@TargetNode='GM15-SRV07'@GeneratedBy=Administrator@GenerationDate=11/24/2015 15:56:05@GenerationHost=GM15-SRV01*/instance of MSFT_RoleResource as $MSFT_RoleResource1ref{ ResourceID = "[WindowsFeature]IIS"; Ensure = "Present"; SourceInfo = "::7::1::WindowsFeature"; Name = "Web-Server"; ModuleName = "PsDesiredStateConfiguration"; ModuleVersion = "1.0"; ConfigurationName = "ContosoWebsite";};instance of OMI_ConfigurationDocument{ Version="2.0.0"; MinimumCompatibleVersion = "1.0.0"; CompatibleVersionAdditionalProperties={"Omi_BaseResource:ConfigurationName"}; Author="Administrator"; GenerationDate="11/24/2015 15:56:05"; GenerationHost="GM15-SRV01"; Name="ContosoWebsite";};

Configuration ContosoWebsite{ Node GM15-SRV07 { WindowsFeature BasicWebServerComponents { Ensure = "Present" Name = "Web-Server" } }}

CONFIGURATION MOF

Page 29: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

Wie kommt das MOF nun auf die Rechner?

Page 30: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

PUSH oder PULL?

Page 31: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

PUSHZentral auf die Rechner verteilen: Start-DSCConfiguration –path .\ContosoWebsite –computername GM15-SRV07

Page 32: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

PULLPraktikabler in produktiven UmgebungenÜber…:

HTTP/HTTPS (!!!)SMB

Page 33: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

It’s all about…

Page 34: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.

DEMO: DSC