PowerShell ¡Desired ¡State ¡ Configuration ¡for ¡Linux By: ¡Kolby ¡Allen August ¡19, ¡2015 LINUXCON ¡North ¡America
Outline -‑ What ¡is ¡PowerShell ¡and ¡Desired ¡State ¡Configuration? -‑ Why ¡would ¡I ¡use ¡PowerShell ¡for ¡Linux? -‑ Review ¡of ¡Desired ¡State ¡Configuration -‑ Server ¡Setup -‑ Client ¡Setup -‑ Examples -‑ Webserver ¡Configuration -‑ End ¡to ¡End ¡Provisioning ¡(Hyper-‑V ¡to ¡Webserver) -‑ Q/A 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 2
What ¡is ¡PowerShell? -‑ PowerShell ¡– task ¡automation ¡and ¡management ¡tool -‑ Allow ¡for ¡both ¡local ¡and ¡remote ¡management -‑ Scripting ¡language -‑ V1 ¡shipped ¡in ¡2006 ¡as ¡optional -‑ V2 ¡shipped ¡with ¡Win7 ¡and ¡Server ¡2008 -‑ V5 ¡currently ¡in ¡preview ¡(unless ¡your ¡on ¡Win10?) Reboot ¡Local ¡Machine: Restart-Computer Reboot ¡Remote ¡Machine: Restart-Computer -ComputerName Server01 Reboot ¡Remote ¡Machines ¡(multiple): Restart-Computer -ComputerName Server01, Server02, localhost 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 3
What ¡is ¡Desired ¡State ¡Configuration? -‑ PowerShell ¡Desired ¡State ¡Configuration ¡was ¡released ¡to ¡allow ¡for ¡ deployment ¡and ¡management ¡of ¡configuration ¡data -‑ Follows ¡DMTF ¡management ¡standards ¡and ¡WS-‑Management ¡Protocol -‑ Applications: -‑ Server ¡role/feature ¡management -‑ Setting/Changing ¡registry ¡items -‑ Process/service ¡management -‑ User/Group ¡Management -‑ Software ¡Deployment ¡and ¡setup -‑ Remote ¡script ¡execution -‑ Managing ¡configuration ¡drift -‑ Actual ¡configuration ¡reporting 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 4
Why ¡use ¡DSC? WHY ¡NOT ¡ONE ¡OF ¡THESE? 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 5
Why ¡use ¡DSC? Because ¡of ¡this… 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 6
Review ¡of ¡DSC ¡– Server ¡Setup ¡-‑ PUSH Start-DscConfiguration Remote Machine Local Target configuration LCM Configurations Remote Machine configuration Local Configuration Manager (LCM) LCM Push ¡Server http://blogs.msdn.com/b/powershell/archive/2013/11/26/push-‑and-‑pull-‑configuration-‑modes.aspx 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 7
Review ¡of ¡DSC ¡– Server ¡Setup ¡-‑ PUSH Author Generate Push Configuration MOF Configuration http://blogs.msdn.com/b/powershell/archive/2013/11/26/push-‑and-‑pull-‑configuration-‑modes.aspx 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 8
Review ¡of ¡DSC ¡– Server ¡Setup ¡-‑ PULL Pull ¡Server get DSC OData Endpoint Remote Machine LCM send IIS Service get Configurations Remote Machine LCM send Resources http://blogs.msdn.com/b/powershell/archive/2013/11/26/push-‑and-‑pull-‑configuration-‑modes.aspx 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 9
Review ¡of ¡DSC ¡– Server ¡Setup ¡-‑ PULL Author Setup Pull Setup DSC Configuration Server on target for Target http://blogs.msdn.com/b/powershell/archive/2013/11/26/push-‑and-‑pull-‑configuration-‑modes.aspx 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 10
Review ¡of ¡DSC ¡– Client ¡Setup Support ¡Operating ¡Systems Required ¡Packages: CentOS5, ¡6, ¡& ¡7 • -‑ glibc -‑ python Debian GNU/Linux ¡6 ¡& ¡7 • -‑ omniserver -‑ Open ¡Management ¡ Oracle ¡Linux ¡5, ¡6, ¡& ¡7 • Infrastructure RHEL ¡5, ¡6, ¡& ¡7 • -‑ openssl SUSE ¡10, ¡11, ¡& ¡12 • -‑ ctypes Ubuntu ¡12.04 ¡LTS ¡& ¡14.04 ¡LTS • -‑ libcurl DSC ¡for ¡Linux ¡Binaries https://github.com/MSFTOSSMgmt/WPSDSCLinux 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 11
Review ¡of ¡DSC ¡– Client ¡Setup ¡– LINUX ¡Resources DSC ¡Resources ¡– building ¡blocks ¡to ¡DSC ¡Configurations Linux ¡Resources nxFile – manages ¡files ¡and ¡directory ¡state • nxScript – run ¡script ¡blocks ¡on ¡target ¡nodes • nxUser – manages ¡linuxusers • nxGroup – manages ¡linuxgroups • nxService – manages ¡linux services ¡(System-‑V, ¡upstart, ¡systemd) • Currently ¡in ¡beta ¡but ¡growing. 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 12
DSC ¡Examples ¡– DSC ¡Configuration Servers ¡installed ¡on Force ¡feature ¡to ¡be ¡installed Adds ¡file ¡to ¡OS 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 13
DSC ¡Examples ¡– DSC ¡Configuration ¡– Windows ¡WebServer 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 14
DSC ¡Examples ¡– Demo DEMO 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 15
DSC ¡Examples ¡– End ¡to ¡End ¡Provisioning Most ¡corporate ¡environments ¡use ¡Hyper-‑V ¡or ¡VMWare • Hyper-‑V ¡has ¡DSC ¡Resources ¡(form ¡MS) • VMWare ¡Powershell tools ¡(requires ¡custom ¡DSC ¡Resource) • Just ¡requires ¡that ¡you ¡have ¡built ¡a ¡VM ¡with ¡all ¡pre-‑reqs • Hyper-‑V ¡and ¡PS ¡DSC ¡for ¡Linux ¡support ¡the ¡same ¡operating ¡services • Once ¡VM ¡is ¡deployed ¡you ¡can ¡use ¡DSC ¡push ¡server ¡to ¡do ¡initial ¡setup • 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 16
DSC ¡Examples ¡– End ¡to ¡End ¡Provisioning ¡– Hyper-‑V http://mikefrobbins.com/2015/01/22/creating-‑hyper-‑v-‑vms-‑with-‑desired-‑state-‑configuration/ 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 17
Review ¡of ¡DSC ¡– Conclusion DSC ¡Provides ¡a ¡new ¡set ¡of ¡tools ¡for ¡machine ¡configuration • Allows ¡integration ¡with ¡current ¡Windows ¡SysAdmintoolset • Hyper-‑V ¡and ¡VMWare ¡end ¡to ¡end ¡provision ¡capabilities • A ¡new ¡tool ¡to ¡manage ¡servers • 8/19/2015 PowerShell ¡DSC ¡for ¡Linux 18
Recommend
More recommend