SlideShare una empresa de Scribd logo
1 de 26
Windows: Having It’sWindows: Having It’s
Ass Kicked by PuppetAss Kicked by Puppet
and PowerShell sinceand PowerShell since
20122012
Paul StackPaul Stack
http://www.paulstack.co.ukhttp://www.paulstack.co.uk
http://twitter.com/stack72http://twitter.com/stack72
mail:mail: puppetconf@paulstack.co.ukpuppetconf@paulstack.co.uk
PaurShellPaurShell
This is actually the Northern IrishThis is actually the Northern Irish pronunciation of
the Windows task based framework, PowerShell
About MeAbout Me
Develop software for OpenTableDevelop software for OpenTable
Member of the Jetbrains DevelopmentMember of the Jetbrains Development
AcademyAcademy
DevOps ExtremistDevOps Extremist
AgendaAgenda
Classic infrastructure managementClassic infrastructure management
Snowflake / Phoenix Servers / ImmutableSnowflake / 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
Classic InfrastructureClassic Infrastructure
ManagementManagement
““The Run book”The Run book”
People are generallyPeople are generally
rubbish at performingrubbish at performing
manual repetitive tasksmanual repetitive tasks
SnowFlake ServerSnowFlake Server
Image courtesy of Liz West and under Creative CommonsImage courtesy of Liz West and under Creative Commons
LicenseLicense
Martin Fowler:Martin Fowler:
http://martinfowler.com/bliki/SnowflakeServer.htmlhttp://martinfowler.com/bliki/SnowflakeServer.html
Machines are muchMachines are much
more reliable atmore reliable at
performing repetitiveperforming repetitive
taskstasks
Image courtesy of FoodBev Photos and under CreativeImage courtesy of FoodBev Photos and under Creative
Commons LicenseCommons License
Can’t we automate ourCan’t we automate our
manual run books?manual run books?
Infrastructure As CodeInfrastructure As Code
Phoenix ServersPhoenix Servers
Martin Fowler:Martin Fowler:
http://martinfowler.com/bliki/PhoenixServer.htmlhttp://martinfowler.com/bliki/PhoenixServer.html
ChaosMonkeyChaosMonkey
Chaos Monkey:Chaos Monkey:
http://techblog.netflix.com/2012/07/chaos-monkey-released-into-wild.htmlhttp://techblog.netflix.com/2012/07/chaos-monkey-released-into-wild.html
Immutable infrastructureImmutable infrastructure
Chad Fowler:Chad Fowler:
http://chadfowler.com/blog/2013/06/23/immutable-deployments/http://chadfowler.com/blog/2013/06/23/immutable-deployments/
Code Is BetterCode Is Better
What can we do onWhat can we do on
Windows?Windows?
Managing WindowsManaging Windows
Server 2008 withServer 2008 with
PowerShellPowerShell
Puppet on WindowsPuppet on Windows
Types AvailableTypes Available
filefile
useruser
groupgroup
scheduled_taskscheduled_task
packagepackage
serviceservice
execexec
hosthost
Puppet + PowerShell =Puppet + PowerShell =
Windows Tap OutWindows Tap Out
Puppet ForgePuppet Forge
Puppet integration withPuppet integration with
Windows will get betterWindows will get better
and betterand better
SummarySummary
Code is much better for managing servers thanCode is much better for managing servers than
peoplepeople
PowerShell is a tool to use when working withPowerShell is a tool to use when working with
WindowsWindows
Puppet compliments what PowerShell doesPuppet compliments what PowerShell does
perfectly in a DSL formatperfectly in a DSL format
Windows Server management is no longer aWindows Server management is no longer a
pain in the ass.pain in the ass.
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

Más contenido relacionado

La actualidad más candente

Advances in BeEF - AthCon2012
Advances in BeEF - AthCon2012Advances in BeEF - AthCon2012
Advances in BeEF - AthCon2012
Michele Orru
 
Phone gap
Phone gapPhone gap
Phone gap
caviare
 

La actualidad más candente (20)

L’enjeu du mobile pour le développeur Web, et comment Mozilla va vous aider
L’enjeu du mobile pour le développeur Web,  et comment Mozilla va vous aiderL’enjeu du mobile pour le développeur Web,  et comment Mozilla va vous aider
L’enjeu du mobile pour le développeur Web, et comment Mozilla va vous aider
 
Chocolatey - making the process of installing software on windows easy as pie
Chocolatey - making the process of installing software on windows easy as pieChocolatey - making the process of installing software on windows easy as pie
Chocolatey - making the process of installing software on windows easy as pie
 
Scripting for infosecs
Scripting for infosecsScripting for infosecs
Scripting for infosecs
 
GDG DevFest 2018 - Progressive Web Apps 101
GDG DevFest 2018 - Progressive Web Apps 101GDG DevFest 2018 - Progressive Web Apps 101
GDG DevFest 2018 - Progressive Web Apps 101
 
Continuous Integration @ MeetMagento Germany 2015
Continuous Integration @ MeetMagento Germany 2015Continuous Integration @ MeetMagento Germany 2015
Continuous Integration @ MeetMagento Germany 2015
 
Continuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for MagentoContinuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for Magento
 
Advances in BeEF - AthCon2012
Advances in BeEF - AthCon2012Advances in BeEF - AthCon2012
Advances in BeEF - AthCon2012
 
Rock-solid Magento Deployments (and Development)
Rock-solid Magento Deployments (and Development)Rock-solid Magento Deployments (and Development)
Rock-solid Magento Deployments (and Development)
 
Phone gap
Phone gapPhone gap
Phone gap
 
Owasp AppSecEU 2015 - BeEF Session
Owasp AppSecEU 2015 - BeEF SessionOwasp AppSecEU 2015 - BeEF Session
Owasp AppSecEU 2015 - BeEF Session
 
Sage 2 19_v5_busby
Sage 2 19_v5_busbySage 2 19_v5_busby
Sage 2 19_v5_busby
 
Establish reliable builds and deployments with Magento
Establish reliable builds and deployments with MagentoEstablish reliable builds and deployments with Magento
Establish reliable builds and deployments with Magento
 
Magento and Continuous Integration - Damian Luszczymak
Magento and Continuous Integration - Damian LuszczymakMagento and Continuous Integration - Damian Luszczymak
Magento and Continuous Integration - Damian Luszczymak
 
Practical Exploitation - Webappy Style
Practical Exploitation - Webappy StylePractical Exploitation - Webappy Style
Practical Exploitation - Webappy Style
 
PGDAY EU 2016 workshop - privacy and security
PGDAY EU 2016 workshop - privacy and securityPGDAY EU 2016 workshop - privacy and security
PGDAY EU 2016 workshop - privacy and security
 
Continuous Development and Deployment: Workflows and Patterns
Continuous Development and Deployment: Workflows and PatternsContinuous Development and Deployment: Workflows and Patterns
Continuous Development and Deployment: Workflows and Patterns
 
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
 
Attacker Ghost Stories - ShmooCon 2014
Attacker Ghost Stories - ShmooCon 2014Attacker Ghost Stories - ShmooCon 2014
Attacker Ghost Stories - ShmooCon 2014
 
Node.js Anti Patterns
Node.js Anti PatternsNode.js Anti Patterns
Node.js Anti Patterns
 
DevOps for PHP
DevOps for PHPDevOps for PHP
DevOps for PHP
 

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

Puppet powershell
Puppet powershellPuppet powershell
Puppet powershell
Paul Stack
 
Phalcon / Zephir Introduction at PHPConfTW2013
Phalcon / Zephir Introduction at PHPConfTW2013Phalcon / Zephir Introduction at PHPConfTW2013
Phalcon / Zephir Introduction at PHPConfTW2013
Rack Lin
 
Consistent Development Environment with Vagrant and Chef
Consistent Development Environment with Vagrant and ChefConsistent Development Environment with Vagrant and Chef
Consistent Development Environment with Vagrant and Chef
Gerald Villorente
 

Similar a Windows: Having its ass kicked by Puppet and Powershell since 2012 #PuppetConf (20)

Puppet powershell
Puppet powershellPuppet powershell
Puppet powershell
 
de:code エスキュービズム勉強会0620
de:code エスキュービズム勉強会0620de:code エスキュービズム勉強会0620
de:code エスキュービズム勉強会0620
 
An introduction to Phing the PHP build system
An introduction to Phing the PHP build systemAn introduction to Phing the PHP build system
An introduction to Phing the PHP build system
 
An introduction to Phing the PHP build system (PHPDay, May 2012)
An introduction to Phing the PHP build system (PHPDay, May 2012)An introduction to Phing the PHP build system (PHPDay, May 2012)
An introduction to Phing the PHP build system (PHPDay, May 2012)
 
ITB2019 CommandBox vs Node.js - Nolan Erck
ITB2019  CommandBox vs Node.js - Nolan ErckITB2019  CommandBox vs Node.js - Nolan Erck
ITB2019 CommandBox vs Node.js - Nolan Erck
 
PuppetConf track overview: Inside Puppet
PuppetConf track overview: Inside PuppetPuppetConf track overview: Inside Puppet
PuppetConf track overview: Inside Puppet
 
Getting Started with Pelican
Getting Started with PelicanGetting Started with Pelican
Getting Started with Pelican
 
Pwnstaller
PwnstallerPwnstaller
Pwnstaller
 
Encode polkadot club
Encode polkadot club  Encode polkadot club
Encode polkadot club
 
Phalcon / Zephir Introduction at PHPConfTW2013
Phalcon / Zephir Introduction at PHPConfTW2013Phalcon / Zephir Introduction at PHPConfTW2013
Phalcon / Zephir Introduction at PHPConfTW2013
 
From printed circuit boards to exploits
From printed circuit boards to exploitsFrom printed circuit boards to exploits
From printed circuit boards to exploits
 
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
 
c0c0n2010 -
c0c0n2010 - c0c0n2010 -
c0c0n2010 -
 
Consistent Development Environment with Vagrant and Chef
Consistent Development Environment with Vagrant and ChefConsistent Development Environment with Vagrant and Chef
Consistent Development Environment with Vagrant and Chef
 
Don't screw it up! How to build durable API
Don't screw it up! How to build durable API Don't screw it up! How to build durable API
Don't screw it up! How to build durable API
 
Building appliances
Building appliancesBuilding appliances
Building appliances
 
Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)
 
JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...
JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...
JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...
 
Contextual Final
Contextual FinalContextual Final
Contextual Final
 
The Modern Developer Toolbox
The Modern Developer ToolboxThe Modern Developer Toolbox
The Modern Developer Toolbox
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

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

Notas del editor

  1. Puppet first support for windows was 2.7.6. I have only been using it since 2012 :)
  2. Runbooks are a traditional way of instructing the users what steps to run when installing software, operating systems or doing server builds
  3. They cut corners, they make mistakes, and techniques differ from person to person. Its important to remember that working at 100% all of the time is not the best use of time So when creating server builds for web, databases etc. this leads to..... snowflake servers
  4. 1. Difficult to reproduce if there are issuesand even more difficult to create similarenvironments in QA2. When trying to change a snowflake serverthings get really interesting. There are allsorts of potential knock on effects
  5. (unless you are on windows and you get a blue screen of death....)
  6. People cannot run at 100% - they will burn out. FYI machines should never be running at 100% either.
  7. We (OpenTable) are desperately trying to move away from these manual runbooks. We used to have to create them for our systems and our “best” piece of work is approximately 57 pages in a work document.
  8. The end goal of infrastructure as code is to perform as many infrastructure tasks as possible programmatically. So yes, we can automate (most of) our runbooks.
  9. Martin Fowler wrote about Phoenix Servers on 10th July 2012 Each server is created and managed in exactly the same way each time it is provisioned. These would be using tooling to create them and maintain their configuration. Martin said: “ One day I had this fantasy of starting a certification service for operations. The certification assessment would consist of a colleague and I turning up at the corporate data center and setting about critical production servers with a baseball bat, a chainsaw, and a water pistol. The assessment would be based on how long it would take for the operations team to get all the applications up and running again.”
  10. Chad Fowler 23rd June 2013 Immutable Deployments - Need to upgrade or patch a server would mean spinning up a new one on the fly instead of hoping for a success story on an existing server
  11. Share code Review Code Training Read books Knowledge is portable / spreadable Tooling is available RSpec Puppet (test framework for puppet code) think of integration / unit tests here Can be run in a CI environment Tooling helps us write infrastructure code in the same way as application code TravisCI is awesome for pupept module continuous integration Code is structured for validity convention based linting tools etc. e.g. puppet lint based on guidance from experienced users IDEs are becoming available e.g. Gepetto, RubyMine now has support too Active communities
  12. 1.0 – 2006. Pretty much crap. It put a lot of people off PowerShell 2.0 – Much better! Things started to get going for automation PowerShell Remoting: Background Jobs: Transactions: Modules: Script Debugging: Eventing: Windows PowerShell Integrated Scripting Environment (ISE): 3.0 – Now we are rocking! Scheduled jobs: Session connectivity: Autocompletion and Intellisense Delegation support:
  13. Demo Time We want to demo the script on how we install Windows Features and Also manage IIS. Point out that this even feels complex and that there should be another way to make this easier The problem here is that someone has to manually log into the server and run the scripts - show a runbook to demo what they would be doing.
  14. Give details about puppet - show a sample manifest and explain how it works using the inbuilt types. Important to note that not all the same types are available for use on Windows as there is on Linux / Unix based systems
  15. Think of someone tapping out of a submission move! Show the puppet script to install 7zip on a windows server. This will be able to demonstrate that it uses the system architecture to install the correct version of the application Show the scripts for Puppet-IIS and show that by running these values, I can manage IIS on any Windows Server 2008 webserver Look at the difference between this module for managing IIS and the Raw PowerShell script. This scripts looks so much easier Show the entire build_base_server manifest so that people can see exactly what runs. This log onto the box and demonstrate that the box runs against the snapshot.
  16. Change to show the puppet modules currently available for Windows on the forge. From what I am told, Windows is the 3rd highest searched for term on the forge. There have been approx 15600 downloads of windows modules We should all thank Ryan Coleman and his team for doing an awesome job on the forge. BTW Ryan, Im not quite sure why windows is not in the popular tags :)
  17. There are a lot of eyes on Windows automation now. We have at least 3 sessions on Windows here at Puppetconf. There are lots of questions to companies about it now. The Windows community is finally got the memo