26
Windows: Having It’s Windows: Having It’s Ass Kicked by Puppet Ass Kicked by Puppet and PowerShell since and PowerShell since 2012 2012 Paul Stack Paul Stack http://www.paulstack.co .uk http://twitter.com/ http://twitter.com/ stack72 stack72 mail: mail: [email protected] [email protected] .uk .uk

Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Embed Size (px)

Citation preview

Page 1: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Windows: Having It’s Windows: Having It’s Ass Kicked by Puppet Ass Kicked by Puppet and PowerShell since and PowerShell since 20122012

Paul StackPaul Stackhttp://www.paulstack.co.ukhttp://twitter.com/stack72http://twitter.com/stack72mail: mail: [email protected]@paulstack.co.ukk

Page 2: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

PaurShellPaurShellThis is actually the Northern Irish This is actually the Northern Irish pronunciation of the Windows task based framework, PowerShell

Page 3: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

About MeAbout Me

Develop software for OpenTableDevelop software for OpenTable

Member of the Jetbrains Development Member of the Jetbrains Development AcademyAcademy

DevOps ExtremistDevOps Extremist

Page 4: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

AgendaAgenda

Classic infrastructure managementClassic infrastructure management

Snowflake / Phoenix Servers / Immutable Snowflake / Phoenix Servers / Immutable InfrastructureInfrastructure

Infrastructure as CodeInfrastructure as Code

PowerShell as a way to manage WindowsPowerShell as a way to manage Windows

PowerShell + Puppet = Kicking Windows’ AssPowerShell + Puppet = Kicking Windows’ Ass

Page 5: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Classic Infrastructure Classic Infrastructure ManagementManagement

Page 6: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

““The Run book”The Run book”

Page 7: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

People are generally People are generally rubbish at performing rubbish at performing manual repetitive tasksmanual repetitive tasks

Page 8: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

SnowFlake ServerSnowFlake Server

Image courtesy of Liz West and under Creative Commons Image courtesy of Liz West and under Creative Commons LicenseLicense

Martin Fowler: Martin Fowler: http://martinfowler.com/bliki/SnowflakeServer.html

Page 9: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Machines are much Machines are much more reliable at more reliable at performing repetitive performing repetitive taskstasks

Page 10: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Image courtesy of FoodBev Photos and under Creative Commons Image courtesy of FoodBev Photos and under Creative Commons LicenseLicense

Page 11: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Can’t we automate our Can’t we automate our manual run books?manual run books?

Page 12: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Infrastructure As CodeInfrastructure As Code

Page 13: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Phoenix ServersPhoenix Servers

Martin Fowler: Martin Fowler: http://martinfowler.com/bliki/PhoenixServer.html

Page 14: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

ChaosMonkeyChaosMonkey

Chaos Monkey: Chaos Monkey: http://techblog.netflix.com/2012/07/chaos-monkey-released-into-wild.html

Page 15: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Immutable Immutable infrastructureinfrastructure

Chad Fowler: Chad Fowler: http://chadfowler.com/blog/2013/06/23/immutable-deployments/

Page 16: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Code Is BetterCode Is Better

Page 17: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

What can we do on What can we do on Windows?Windows?

Page 18: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf
Page 19: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Managing Windows Managing Windows Server 2008 with Server 2008 with PowerShellPowerShell

Page 20: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Puppet on WindowsPuppet on Windows

Page 21: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Types AvailableTypes Available

filefile

useruser

groupgroup

scheduled_taskscheduled_task

packagepackage

serviceservice

execexec

hosthost

Page 22: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Puppet + PowerShell = Puppet + PowerShell = Windows Tap OutWindows Tap Out

Page 23: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Puppet ForgePuppet Forge

Page 24: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Puppet integration with Puppet integration with Windows will get better Windows will get better and betterand better

Page 25: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

SummarySummary

Code is much better for managing servers than Code is much better for managing servers than peoplepeople

PowerShell is a tool to use when working with PowerShell is a tool to use when working with WindowsWindows

Puppet compliments what PowerShell does Puppet compliments what PowerShell does perfectly in a DSL formatperfectly in a DSL format

Windows Server management is no longer a Windows Server management is no longer a pain in the ass. pain in the ass.

Page 26: Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf

Further InformationFurther Information

http://forge.puppetlabs.comhttp://forge.puppetlabs.com/ /

http://blogs.msdn.com/b/powershell/http://blogs.msdn.com/b/powershell/

http://github.com/opentable/puppet-iishttp://github.com/opentable/puppet-iis

http://github.com/opentable/puppet-http://github.com/opentable/puppet-windowsfeaturewindowsfeature