Managing PowerShell DSC with Puppet

25
Managing PowerShell DSC with Puppet Ethan Brown Technical Lead, Windows Engineering James Pogran Software Engineer, Author of Learning PowerShell DSC

Transcript of Managing PowerShell DSC with Puppet

Page 1: Managing PowerShell DSC with Puppet

Managing PowerShell DSC with Puppet

Ethan BrownTechnical Lead, Windows Engineering

James PogranSoftware Engineer, Author of Learning PowerShell DSC

Page 2: Managing PowerShell DSC with Puppet

Agenda• How Puppet Enterprise works• Why Puppet and DSC• Demo• Puppet Labs Windows support• Resources• Q&A

Page 3: Managing PowerShell DSC with Puppet

Our software automates the provisioning,

configuration & ongoing management

of your machines & the applications, services & software running on them.

Page 4: Managing PowerShell DSC with Puppet

Puppet Deployment

Ubuntu Server

PUPPET MASTER

Windows Server Cisco Switch

Page 5: Managing PowerShell DSC with Puppet

How Puppet Enterprise Works

Page 6: Managing PowerShell DSC with Puppet

Why Puppet and DSC• Use the skills you have to do more

• DSC and Puppet: Best of both worlds

• Tracking and reporting on change

Page 7: Managing PowerShell DSC with Puppet

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

Page 8: Managing PowerShell DSC with Puppet

Converting DSC Configuration to Puppet Manifest

Page 9: Managing PowerShell DSC with Puppet

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

Page 10: Managing PowerShell DSC with Puppet

Best of Both Worlds: Immediate Value• Solving problems using

the strengths of Puppet and DSC

Page 11: Managing PowerShell DSC with Puppet

DEMO

Page 12: Managing PowerShell DSC with Puppet

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

Page 13: Managing PowerShell DSC with Puppet

DEMO

Page 14: Managing PowerShell DSC with Puppet

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

Page 15: Managing PowerShell DSC with Puppet

Tracking Change in DSC

Page 16: Managing PowerShell DSC with Puppet

Tracking Change in DSC with Puppet

Page 17: Managing PowerShell DSC with Puppet

Error Investigation in DSC

• Get-xDscOperation

• Trace-xDscOperation

Page 18: Managing PowerShell DSC with Puppet

Error Investigation in DSC with Puppet

Page 19: Managing PowerShell DSC with Puppet

Summary• Use the skills you have to do more

• DSC and Puppet: Best of both worlds

• Tracking and reporting on change

Page 20: Managing PowerShell DSC with Puppet

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.

Page 21: Managing PowerShell DSC with Puppet

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

Page 22: Managing PowerShell DSC with Puppet

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

Page 23: Managing PowerShell DSC with Puppet

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

Page 24: Managing PowerShell DSC with Puppet

Questions &Answers

Page 25: Managing PowerShell DSC with Puppet

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