Upload
puppet-labs
View
607
Download
0
Tags:
Embed Size (px)
DESCRIPTION
"Continuous Integration for Hyper-V with Puppet" presented by Peter J. Pouliot, Microsoft at Puppet Camp Boston 2014
Citation preview
C.I. for Hyper-V with PuppetPUPPETCAMP BOSTON 2014
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
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
Quick Questions
Openstack?
Puppet on Windows? Use of PowerShell in modules?
How many have heard of continuous integration and continuous delivery?
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/
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
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
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!
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.
What we use it for?
Deploying everything Preserving machine state Data collection Automation Wrapper
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
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
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.
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
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
Questions?
Ask some…
The End
Contact Information Peter Pouliot CISSP
IRC: primeministerp
Skype: primeministerpete