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

Upload: tobias-sachs

Post on 06-Apr-2016

216 views

Category:

Documents


1 download

TRANSCRIPT

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