SlideShare una empresa de Scribd logo
1 de 17
C.I. for Hyper-V 
with Puppet 
PUPPETCAMP BOSTON 2014
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
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 
 E: ppouliot@Microsoft.com 
 IRC: primeministerp 
 Skype: primeministerpete

Más contenido relacionado

La actualidad más candente

Kubernetes Story - Day 3: Deploying and Scaling Applications on OpenShift
Kubernetes Story - Day 3: Deploying and Scaling Applications on OpenShiftKubernetes Story - Day 3: Deploying and Scaling Applications on OpenShift
Kubernetes Story - Day 3: Deploying and Scaling Applications on OpenShift
Mihai Criveti
 
Kubernetes Story - Day 2: Quay.io Container Registry for Publishing, Building...
Kubernetes Story - Day 2: Quay.io Container Registry for Publishing, Building...Kubernetes Story - Day 2: Quay.io Container Registry for Publishing, Building...
Kubernetes Story - Day 2: Quay.io Container Registry for Publishing, Building...
Mihai Criveti
 
Gr8conf - The Groovy Ecosystem Revisited
Gr8conf - The Groovy Ecosystem RevisitedGr8conf - The Groovy Ecosystem Revisited
Gr8conf - The Groovy Ecosystem Revisited
Andres Almiray
 

La actualidad más candente (20)

CI : the first_step: Auto Testing with CircleCI - (MOSG)
CI : the first_step: Auto Testing with CircleCI - (MOSG)CI : the first_step: Auto Testing with CircleCI - (MOSG)
CI : the first_step: Auto Testing with CircleCI - (MOSG)
 
Kubernetes Story - Day 3: Deploying and Scaling Applications on OpenShift
Kubernetes Story - Day 3: Deploying and Scaling Applications on OpenShiftKubernetes Story - Day 3: Deploying and Scaling Applications on OpenShift
Kubernetes Story - Day 3: Deploying and Scaling Applications on OpenShift
 
E D - Environmental Dependencies in Python
E D - Environmental Dependencies in PythonE D - Environmental Dependencies in Python
E D - Environmental Dependencies in Python
 
CloudStack and cloud-init
CloudStack and cloud-initCloudStack and cloud-init
CloudStack and cloud-init
 
DevOps: Cooking Drupal Deployment
DevOps: Cooking Drupal DeploymentDevOps: Cooking Drupal Deployment
DevOps: Cooking Drupal Deployment
 
How to master OpenStack in 2 hours
How to master OpenStack in 2 hoursHow to master OpenStack in 2 hours
How to master OpenStack in 2 hours
 
Inithub.org presentation
Inithub.org presentationInithub.org presentation
Inithub.org presentation
 
Using NuGet the way you should - TechDays NL 2014
Using NuGet the way you should - TechDays NL 2014Using NuGet the way you should - TechDays NL 2014
Using NuGet the way you should - TechDays NL 2014
 
Dev stacklabguide
Dev stacklabguideDev stacklabguide
Dev stacklabguide
 
Kubernetes Story - Day 2: Quay.io Container Registry for Publishing, Building...
Kubernetes Story - Day 2: Quay.io Container Registry for Publishing, Building...Kubernetes Story - Day 2: Quay.io Container Registry for Publishing, Building...
Kubernetes Story - Day 2: Quay.io Container Registry for Publishing, Building...
 
CloudInit Introduction
CloudInit IntroductionCloudInit Introduction
CloudInit Introduction
 
Greach - The Groovy Ecosystem
Greach - The Groovy EcosystemGreach - The Groovy Ecosystem
Greach - The Groovy Ecosystem
 
Getting started with python on Windows
Getting started with python on WindowsGetting started with python on Windows
Getting started with python on Windows
 
CloudOps CloudStack Days, Austin April 2015
CloudOps CloudStack Days, Austin April 2015CloudOps CloudStack Days, Austin April 2015
CloudOps CloudStack Days, Austin April 2015
 
Gr8conf - The Groovy Ecosystem Revisited
Gr8conf - The Groovy Ecosystem RevisitedGr8conf - The Groovy Ecosystem Revisited
Gr8conf - The Groovy Ecosystem Revisited
 
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
 
Securing OpenStack and Beyond with Ansible
Securing OpenStack and Beyond with AnsibleSecuring OpenStack and Beyond with Ansible
Securing OpenStack and Beyond with Ansible
 
Lessons Learned: Using Concourse In Production
Lessons Learned: Using Concourse In ProductionLessons Learned: Using Concourse In Production
Lessons Learned: Using Concourse In Production
 
.NET on Linux: Entity Framework Core 1.0
.NET on Linux: Entity Framework Core 1.0.NET on Linux: Entity Framework Core 1.0
.NET on Linux: Entity Framework Core 1.0
 
Maven from Scratch to Production (.odp)
Maven from Scratch to Production (.odp)Maven from Scratch to Production (.odp)
Maven from Scratch to Production (.odp)
 

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

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

PuppetConf track overview: Puppet Applied
PuppetConf track overview: Puppet AppliedPuppetConf track overview: Puppet Applied
PuppetConf track overview: Puppet Applied
 
Openstack win final
Openstack win finalOpenstack win final
Openstack win final
 
PuppetConf 2017: Puppet Enterprise Roadmap 2017- Ryan Coleman, Puppet
PuppetConf 2017: Puppet Enterprise Roadmap 2017- Ryan Coleman, PuppetPuppetConf 2017: Puppet Enterprise Roadmap 2017- Ryan Coleman, Puppet
PuppetConf 2017: Puppet Enterprise Roadmap 2017- Ryan Coleman, Puppet
 
Boston open stack meetup hyper v in openstack
Boston open stack meetup   hyper v in openstackBoston open stack meetup   hyper v in openstack
Boston open stack meetup hyper v in openstack
 
PuppetConf track overview: Windows
PuppetConf track overview: WindowsPuppetConf track overview: Windows
PuppetConf track overview: Windows
 
Puppet latest and greatest
Puppet latest and greatestPuppet latest and greatest
Puppet latest and greatest
 
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDENantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
 
Open stack icehouse microsoftupdate
Open stack icehouse microsoftupdateOpen stack icehouse microsoftupdate
Open stack icehouse microsoftupdate
 
Puppet Keynote by Ralph Luchs
Puppet Keynote by Ralph LuchsPuppet Keynote by Ralph Luchs
Puppet Keynote by Ralph Luchs
 
PuppetConf track overview: Inside Puppet
PuppetConf track overview: Inside PuppetPuppetConf track overview: Inside Puppet
PuppetConf track overview: Inside Puppet
 
PuppetConf track overview: Case Studies
PuppetConf track overview: Case StudiesPuppetConf track overview: Case Studies
PuppetConf track overview: Case Studies
 
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
 
Puppet
PuppetPuppet
Puppet
 
The Medusa Project
The Medusa ProjectThe Medusa Project
The Medusa Project
 
Uyuni: the solution to manage your Linux infrastructure (OpenFest 2020)
Uyuni: the solution to manage your Linux infrastructure (OpenFest 2020)Uyuni: the solution to manage your Linux infrastructure (OpenFest 2020)
Uyuni: the solution to manage your Linux infrastructure (OpenFest 2020)
 
Dean Hagen
Dean HagenDean Hagen
Dean Hagen
 
Pyfest Tunisia 2015 - Python & DevOps
Pyfest Tunisia 2015 - Python & DevOpsPyfest Tunisia 2015 - Python & DevOps
Pyfest Tunisia 2015 - Python & DevOps
 
Building Eclipse Plugins with Tycho
Building Eclipse Plugins with TychoBuilding Eclipse Plugins with Tycho
Building Eclipse Plugins with Tycho
 
Docker Enables DevOps - Boston
Docker Enables DevOps - BostonDocker Enables DevOps - Boston
Docker Enables DevOps - Boston
 
OWASP WTE - Now in the Cloud!
OWASP WTE - Now in the Cloud!OWASP WTE - Now in the Cloud!
OWASP WTE - Now in the Cloud!
 

Más de Puppet

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
Puppet
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
Puppet
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
Puppet
 

Más de Puppet (20)

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
 

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

  • 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
  • 17. The End  Contact Information  Peter Pouliot CISSP  E: ppouliot@Microsoft.com  IRC: primeministerp  Skype: primeministerpete