puppet camp boston 2014: continuous integration for hyper-v with puppet (beginner)

17
C.I. for Hyper- V with Puppet PUPPETCAMP BOSTON 2014

Upload: puppet-labs

Post on 14-May-2015

602 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

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

C.I. for Hyper-V with PuppetPUPPETCAMP BOSTON 2014

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

[email protected]

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

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

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

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

Quick Questions

Openstack?

Puppet on Windows? Use of PowerShell in modules?

How many have heard of continuous integration and continuous delivery?

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

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/

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

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

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

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

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

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!

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

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.

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

What we use it for?

Deploying everything Preserving machine state Data collection Automation Wrapper

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

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

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

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

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

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.

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

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

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

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

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

Questions?

Ask some…

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

The End

Contact Information Peter Pouliot CISSP

E: [email protected]

IRC: primeministerp

Skype: primeministerpete