Puppet Camp Boston 2014: Continuous Integration for Hyper-V with Puppet (Beginner)

Uploaded on

"Continuous Integration for Hyper-V with Puppet" presented by Peter J. Pouliot, Microsoft at Puppet Camp Boston 2014

"Continuous Integration for Hyper-V with Puppet" presented by Peter J. Pouliot, Microsoft at Puppet Camp Boston 2014

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. C.I. for Hyper-V with Puppet PUPPETCAMP BOSTON 2014
  • 2. ppouliot@Microsoft.com  Live in Stoneham, MA  Education: Philosophy (RIC), Telecom Sec & Digital Forensics (BU)  Certifications: CISSP, MCSE+I, MCT, OCP, Network+  18+ Years in Datacenter, Network, and Application infrastructure and automation.  Working within the OSS community focused on Window/Linux interoperability for 11+ years professionally  Active in Infragard (2011) & ISSA (2010) communities  Working within the OpenStack community for over 3 1/2 years
  • 3. Agenda  Quick overview of Microsoft’s involvement with the Puppet community  Overview of the Continuous Integration  Give a high level overview of the role Puppet plays within the OpenStack Continuous Integration process for Hyper-V.  Provide a view into what you can do with Puppet on the Windows Platform
  • 4. Quick Questions  Openstack?  Puppet on Windows?  Use of PowerShell in modules?  How many have heard of continuous integration and continuous delivery?
  • 5. Microsoft and Puppetlabs  MSOpenTech and Puppetlabs  2014 Released Puppet modules to support Azure APIs  https://github.com/MSOpenTech/azure-puppet  MS OSTC (OpenSource Technology Center)  2012 began building OpenStack CI for Hyper-V using Puppet  2013 CERN begins contributing to Puppet Code for Hyper-V/OpenStack Nova  Many modules supporting multiple platforms created by MS  https://github.com/openstack-hyper-v/
  • 6. What is Continuous Integration?  The continuous process of applying quality control  Automated unit testing  Tests typically run after each commit of code  Test driven development  Short development cycles  Test case for each function
  • 7. Nova and Neutron Continuous Integration for Hyper-V  Came alive in mid January 2014  Built and maintained by a small team of highly skilled engineers  Undercloud of KVM on Centos providing virtualized Ubuntu Devstack Controllers  Two Physical Hyper-V nodes per Controller dynamically assembled  All layers automated through native operating system tools, puppet, or shell scripting.  Executes a Tempest run for every upstream commit  Automation and Scripts:  https://github.com/openstack-hyper-v  https://github.com/cloudbase
  • 8. Our Infrastructure Design Tenants  Ability to rapidly redeploy any component including application workload on virtual or physical compute resources in under 15 minutes.  Be able to switch operating system and preserve workload  Every thing is code or it doesn’t exist  Consume as much upstream code as possible.  Use as much OSS as possible  Redhat, Debian, Windows server are target ::$OSFAMILY  Test it often!
  • 9. Why Puppet?  Good support for multiple platforms  Better support for Windows platform at the time then other solutions  My customers were using it already.  Strong community and catalog of modules.
  • 10. What we use it for?  Deploying everything  Preserving machine state  Data collection  Automation Wrapper
  • 11. The Hyper-V CI and Puppet  Puppet modules were built and used to deploy entire infrastructure  All OS provisioning templates generated and managed via Puppet ERBs  single preseed,kickstart,unattend.xml erb for respective os derivatives  All node and some switch configuration managed via puppet  Hiera used extensively for entire infrastructure.  R10K used for module management
  • 12. Puppet and Windows (2012)  Not many upstream modules for Windows  Writing puppet for windows was extremely painful  No package management for windows adds additional complexity  No shell provider
  • 13. Puppet and Windows (2014)  PowerShell provider gives windows a shell provider you can use  Thanks Josh Cooper!  Chocolatey package provider gives Windows package management  Thanks Rob Reynolds!  Puppetlabs has an awesome Windows Team  MS and Puppetlabs working together to make puppet better for Windows  More modules for Windows than before  MS contributes to upstream modules.
  • 14. Windows/Puppet Best Practice  Don’t be afraid it’s just Computer Science  Use PowerShell as much as possible  Windows can be completely configured via PowerShell so use it  Stay away from legacy tools if PowerShell is available  Use Chocolatey for package manage  And you can use it to install and update OpenSource puppet too!  Don’t be afraid to add multi os support to your puppet module
  • 15. What we still need to do.  Module refactor, documentation and cleanup.  CI Implemented for automated module testing  Tests triggered by change in upstream dependencies  Tests triggered by inbound code change.  Align with all best practice for Module testing.  PuppetForge release pipeline  Define and automate release process  Stackforge integration
  • 16. Questions?  Ask some…
  • 17. The End  Contact Information  Peter Pouliot CISSP  E: ppouliot@Microsoft.com  IRC: primeministerp  Skype: primeministerpete