managing powershell dsc with puppet
TRANSCRIPT
Managing PowerShell DSC with Puppet
Ethan BrownTechnical Lead, Windows Engineering
James PogranSoftware Engineer, Author of Learning PowerShell DSC
Agenda• How Puppet Enterprise works• Why Puppet and DSC• Demo• Puppet Labs Windows support• Resources• Q&A
Our software automates the provisioning,
configuration & ongoing management
of your machines & the applications, services & software running on them.
Puppet Deployment
Ubuntu Server
PUPPET MASTER
Windows Server Cisco Switch
How Puppet Enterprise Works
Why Puppet and DSC• Use the skills you have to do more
• DSC and Puppet: Best of both worlds
• Tracking and reporting on change
Use the skills you have to do more• Migrate a DSC Configuration script to a Puppet manifest with
a few text edits
• Puppet DSL is similar to PowerShell DSC syntax
• Less code when used together
Converting DSC Configuration to Puppet Manifest
DSC and Puppet: Best of Both Worlds• 200+ DSC Resources made by Microsoft and the community
• 4000+ modules made by Puppet and the community
• Interoperable with multiple platforms
Best of Both Worlds: Immediate Value• Solving problems using
the strengths of Puppet and DSC
DEMO
Best of Both Worlds: Advanced Scenario• Let’s deploy an ASP.NET 4.5.2 website
– Puppet reduces the number of steps to get IIS installed
– DSC IIS module has more features
– Also posted here: https://puppetlabs.com/blog/dsc-deep-dive-installing-and-configuring-iis-using-puppet-and-powershell-dsc
DEMO
Tracking and Reporting on Change• Reporting is a must for have any company that has to do any
kind of compliance auditing
• Track changes across your environment to ensure the correct state
• Knowing when something broke is just as important as knowing what broke
Tracking Change in DSC
Tracking Change in DSC with Puppet
Error Investigation in DSC
• Get-xDscOperation
• Trace-xDscOperation
Error Investigation in DSC with Puppet
Summary• Use the skills you have to do more
• DSC and Puppet: Best of both worlds
• Tracking and reporting on change
Puppet Labs Windows Support• 32- & 64-bit Support – Native MSI packages for x64 as of
Puppet Enterprise 3.7• Broad Platform Support - Windows 2008, 2012, 7, 8, 10• Windows Provisioning - Provision Windows OSes with Razor• Puppet Supported & Approved Modules for Windows –
Including Windows Module Pack, Supported SQL Sever & DSC modules
• Azure Integration – Microsoft Azure extension handler for bootstrapping Puppet installs. Supported Azure module.
Puppet Supported Modules• SQL Server – Installs & manages MS SQL Server 2012 &
2014 on Windows systems• WSUS Client – Configure clients to point to update servers;
schedule updates• DSC – Manages PowerShell DSC resources• Azure – Provision and manage Azure VMs• ACL – manage permissions with Windows ACLs• Registry – manage Registry keys and values• PowerShell – execute PowerShell commands with Puppet• Reboot – Automatically reboot after install
Puppet Approved Modules• IIS – install and manage IIS• Chocolatey – package manager• windows_env – manage Windows environment variables• Windows Java – Install and manage Oracle Java on Windows• pget – PowerShell alternative to wget or curl
Windows Webinar SeriesRegister for upcoming webinars at: http://info.puppetlabs.com/1885-Windows-Series-Main_LP-Registration.html
• Patch Management on Windows with Puppet
• Setting up Windows for System and Application Monitoring
• Getting Up and Running with the Windows Module Pack
• Get Started on Azure with Puppet
Questions &Answers
ResourcesPuppetConf 2015 Windows Track• Chocolatey and Puppet - Rob Reynolds• Azure for the Non-Microsoft Person - Rob Reynolds & Scott Hanselman, MSFT• Better Together: Managing Windows with Puppet and DSC - Ethan Brown &
Bruce Payette, MSFT
Blog• Chocolatey blog series• PowerShell DSC blog series
Docs• Managing Windows Configurations
Books• Learning PowerShell DSC by James Pogran
Education• Learning VM• Puppet Essentials for Windows – Instructor-led• Puppet Essentials for Windows - Virtual• Puppet Fundamentals