Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.
-
Upload
tobias-sachs -
Category
Documents
-
view
215 -
download
1
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/1.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/2.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/3.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/4.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/5.jpg)
Evolution des DevOps
Basic AdminScripter
Programmierer
![Page 6: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/6.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/7.jpg)
Configuration Examples…
![Page 8: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/8.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/9.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/10.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/11.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/12.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/13.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/14.jpg)
DiensteService ServiceExample{ Name = "TermService" StartupType = "Manual"}
![Page 15: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/15.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/16.jpg)
Fehlt noch was…?
ProgrammiererScripter
Basic Admin
![Page 17: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/17.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/18.jpg)
Resource PrototypeFunction Get-TargetResource {}
Function Set-TargetResource {}
Function Test-TargetResource {}
![Page 19: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/19.jpg)
…da gibts noch was… Riesige Sammlung von Ressourcen von Microsoft: https://
gallery.technet.microsoft.com/scriptcenter/DSC-Resource-Kit-All-c449312d
![Page 20: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/20.jpg)
Fehlt ein CMDlet…?
ProgrammiererScripter
Basic Admin
![Page 21: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/21.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/22.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/23.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/24.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/25.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/26.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/27.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/28.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/29.jpg)
Wie kommt das MOF nun auf die Rechner?
![Page 30: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/30.jpg)
PUSH oder PULL?
![Page 31: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/31.jpg)
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.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/32.jpg)
PULLPraktikabler in produktiven UmgebungenÜber…:
HTTP/HTTPS (!!!)SMB
![Page 33: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/33.jpg)
It’s all about…
![Page 34: Für was, wen, wann und überhaupt? DEVOP PART IV: DSC – DESIRED STATE CONFIGURATION.](https://reader036.fdocuments.in/reader036/viewer/2022070507/570491cc1a28ab14218de581/html5/thumbnails/34.jpg)
DEMO: DSC