SlideShare a Scribd company logo
John Coggeshall 
@coogle 
http://www.coggeshall.org/
 A bit about me 
 Involved with PHP since 
1996 
 Author of tidy extension 
 Published Author of 
many PHP texts
 Virtualization for you, the developer 
 Creating fully encapsulated development environments 
▪ Fully Version Controlled 
 Available locally using free tools or deploy to EC2 as 
necessary 
 The technologies we are going to discuss 
 Vagrant – Bootstrap virtual machines, manage box 
settings, etc. 
 VirtualBox – Provides the actual VM environment for 
machine 
 Puppet – Provisions box, installs and manages various 
software, code, etc. (also supports others such as Chef, 
shell scripts, etc.)
Virtualization for Developers
 There are a lot of reasons to use VMs for 
development 
 Keep your host machine clean / easily recover from 
corruption 
 Keep separate projects from stepping on each other 
 Super easy developer on-boarding 
 There are even more reasons to use Vagrant & 
Puppet 
 Much easier management of the stack, versions, etc. 
 Allows seamless deployment to various environments 
for testing
 To get started, you’re going to need to 
download two pieces of software 
 Vagrant - http://www.vagrantup.com/ 
 VirtualBox - https://www.virtualbox.org/ 
 There are builds available for all major 
platforms
 Step 1: Download the tools 
 Step 2: Define your VM parameters 
 Step 3: Build your puppet manifests 
 Step 4: Prosper
 Every repository should have a Vagrantfile in the root 
directory that defines the VM itself 
 Ruby based, but no Ruby knowledge required 
 Defines a few key aspects of your initial VM 
configuration 
 Base VM type used (various available) 
 Network configuration for VM in relation to host machine 
 Provisioning tooling used (i.e. puppet) 
 VM resource limits (memory, etc) 
 Different configurations can be defined for different 
environments, and propagated throughout the 
process
 Once the VM has been defined vagrant can 
boot it up as a headless VM (no display) using 
VirtualBox automatically and configure it as 
necessary 
 Once booted, it can then provision the box by 
installing software packages, shared paths 
with hosts, etc. as necessary through the use 
of provisioning tools like puppet 
 Next step is defining your puppet manifests
 With everything defined, one command takes 
care of it all! 
 Downloads the VirtualBox image if necessary 
(precise64) 
 Boots the VM with the defined parameters (memory, 
network, etc) 
 Sets of shared folders, copies puppet manifests as 
necessary and executes puppet to run those manifests
 vagrant up – Brings up the virtual machine 
 vagrant halt – Halts the VM (poweroff) 
 vagrant destroy – Destroys the VM entirely 
 vagrant provision – Run puppet provisioning 
again 
 vagrant ssh – automagically log into the VM 
via SSH
 Primarily Vagrant is used to build local VMs for 
development 
 But Vagrant can also be used to deploy to other 
environments, such as AWS through the use of 
Vagrant plug-ins 
 First, install the Vagrant AWS provider plug-in:
 Next, you will need to add a new 
environment to your Vagrantfile to setup the 
necessary configuration values for AWS such 
as Key/Secret, AMI type, etc. 
 Note: To do provisioning using puppet, you 
may need to bootstrap the AMI on boot to 
install the puppet tooling 
 To boot, simply add the --provider option to 
vagrant up
 A single Vagrantfile can define multiple VMs 
(multi-machine environments) useful for all 
sorts of things: 
 A web server and database server 
 API client and server 
 Etc. 
 Vagrant can do more than just VirtualBox as 
well, through providers can also provide 
VMWareVMs, etc.
 Vagrantfile configuration files can be created 
at various levels, and will be merged together 
to define/override settings 
 Box itself (precise64) 
 Home directory (~/.vagrant.d) 
 Project directory
 Thank you for coming! 
 Questions? 
 Further Reading: 
 http://docs.vagrantup.com/v2/ 
 http://puppetlabs.com/ 
 http://www.github.com/coogle/skeleton 
 https://joind.in/12070

More Related Content

PPTX
Virtualization for Developers
PPTX
Virtualization for Developers
PPTX
Vagrant-Overview
PDF
An Introduction to Vagrant and Docker
PPTX
Vagrant + Docker
PPTX
How To Set a Vagrant Development System
PPTX
KEY
Virtualization for Developers
Virtualization for Developers
Vagrant-Overview
An Introduction to Vagrant and Docker
Vagrant + Docker
How To Set a Vagrant Development System

What's hot (20)

PPTX
Using vagrant
PPTX
Vagrant crash course
PPTX
Development with Vagrant
PDF
Vagrant presentation
PDF
Vagrant + Docker provider [+Puppet]
PPTX
Node.js, Vagrant, Chef, and Mathoid @ Benetech
PDF
Deployment automation
PDF
Vagrant: The Oscar Plug-in
PPTX
Webinar - Auto-deploy Puppet Enterprise: Vagrant and Oscar
PDF
Vagrant for real (codemotion rome 2016)
PDF
VCCW - Vagrant based WordPress development environment
PPTX
Instruction to build Apache CloudStack docs with Sphinx
PDF
Wocker @WordBench Osaka No.41
PPTX
Devops Boise - Israel Shirk - Pragmatic Migration to Infrastructure As Code
PDF
Puppet and Vagrant in development
PDF
Vagrant and docker
PDF
Intro to vagrant
PPTX
Docker and fig for dev
ODP
Building (localized) Vagrant boxes with Packer
PDF
Vagrant for Development
Using vagrant
Vagrant crash course
Development with Vagrant
Vagrant presentation
Vagrant + Docker provider [+Puppet]
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Deployment automation
Vagrant: The Oscar Plug-in
Webinar - Auto-deploy Puppet Enterprise: Vagrant and Oscar
Vagrant for real (codemotion rome 2016)
VCCW - Vagrant based WordPress development environment
Instruction to build Apache CloudStack docs with Sphinx
Wocker @WordBench Osaka No.41
Devops Boise - Israel Shirk - Pragmatic Migration to Infrastructure As Code
Puppet and Vagrant in development
Vagrant and docker
Intro to vagrant
Docker and fig for dev
Building (localized) Vagrant boxes with Packer
Vagrant for Development
Ad

Viewers also liked (6)

PPT
Ppt polos para polo patagonia norte
PPT
Alumni As Advocates
PPT
Cartoons History
 
PPT
Department Of Labor Presentation
 
PPT
My recommendations
 
PPT
Kelly Broadbent 2009
 
Ppt polos para polo patagonia norte
Alumni As Advocates
Cartoons History
 
Department Of Labor Presentation
 
My recommendations
 
Kelly Broadbent 2009
 
Ad

Similar to Virtualization for Developers (20)

PPTX
Vagrant Up in 5 Easy Steps
PDF
Security Testing Using Infrastructure-As-Code
PDF
Vagrant - Version control your dev environment
PDF
Keep calm and vagrant up
PDF
Local development environment through virtualisation
PPT
Django Deployment
PPTX
AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...
PDF
Making Developers Productive with Vagrant, VirtualBox, and Docker
PDF
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
PDF
Create Disposable Test Environments with Vagrant and Puppet
PDF
Create Disposable Test Environments with Vagrant and Puppet
PDF
Vagrant-Binding JUG Dortmund
DOCX
BLCN532 Lab 1Set up your development environmentV2.0.docx
PDF
Oracle Developers APAC Meetup #1 - Working with Wercker Worksheets
PDF
Vagrant are you still develop in a non-virtual environment-
PDF
Vagrant for local and team WordPress Development
PDF
Vagrant Binding JayDay 2013
PDF
Create Development and Production Environments with Vagrant
PPTX
DevOps Hackathon - Session 1: Vagrant
PDF
Building your own Desktop Cloud Environment
Vagrant Up in 5 Easy Steps
Security Testing Using Infrastructure-As-Code
Vagrant - Version control your dev environment
Keep calm and vagrant up
Local development environment through virtualisation
Django Deployment
AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...
Making Developers Productive with Vagrant, VirtualBox, and Docker
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
Create Disposable Test Environments with Vagrant and Puppet
Create Disposable Test Environments with Vagrant and Puppet
Vagrant-Binding JUG Dortmund
BLCN532 Lab 1Set up your development environmentV2.0.docx
Oracle Developers APAC Meetup #1 - Working with Wercker Worksheets
Vagrant are you still develop in a non-virtual environment-
Vagrant for local and team WordPress Development
Vagrant Binding JayDay 2013
Create Development and Production Environments with Vagrant
DevOps Hackathon - Session 1: Vagrant
Building your own Desktop Cloud Environment

More from John Coggeshall (20)

PPTX
Migrating to PHP 7
PPTX
Peek at PHP 7
PPTX
ZF2 Modules: Events, Services, and of course, modularity
PPT
PHP Development for Google Glass using Phass
PPTX
Introduction to Zend Framework 2
PPTX
10 things not to do at a Startup
PPTX
PPT
Building PHP Powered Android Applications
PPT
Ria Applications And PHP
PPT
Beyond the Browser
PPT
Apache Con 2008 Top 10 Mistakes
PPT
Ria Development With Flex And PHP
PPT
Top 10 Scalability Mistakes
PPT
Enterprise PHP: A Case Study
PPT
Building Dynamic Web Applications on i5 with PHP
PPT
PHP Security Basics
PPT
Migrating from PHP 4 to PHP 5
PPT
Ajax and PHP
PPT
Top 10 Scalability Mistakes
PPT
Top 30 Scalability Mistakes
Migrating to PHP 7
Peek at PHP 7
ZF2 Modules: Events, Services, and of course, modularity
PHP Development for Google Glass using Phass
Introduction to Zend Framework 2
10 things not to do at a Startup
Building PHP Powered Android Applications
Ria Applications And PHP
Beyond the Browser
Apache Con 2008 Top 10 Mistakes
Ria Development With Flex And PHP
Top 10 Scalability Mistakes
Enterprise PHP: A Case Study
Building Dynamic Web Applications on i5 with PHP
PHP Security Basics
Migrating from PHP 4 to PHP 5
Ajax and PHP
Top 10 Scalability Mistakes
Top 30 Scalability Mistakes

Recently uploaded (20)

PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
cuic standard and advanced reporting.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPT
Teaching material agriculture food technology
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Encapsulation theory and applications.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Building Integrated photovoltaic BIPV_UPV.pdf
The AUB Centre for AI in Media Proposal.docx
cuic standard and advanced reporting.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Spectral efficient network and resource selection model in 5G networks
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Teaching material agriculture food technology
Chapter 3 Spatial Domain Image Processing.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Unlocking AI with Model Context Protocol (MCP)
Encapsulation_ Review paper, used for researhc scholars
Understanding_Digital_Forensics_Presentation.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
Reach Out and Touch Someone: Haptics and Empathic Computing
Mobile App Security Testing_ A Comprehensive Guide.pdf
A Presentation on Artificial Intelligence
Encapsulation theory and applications.pdf

Virtualization for Developers

  • 1. John Coggeshall @coogle http://www.coggeshall.org/
  • 2.  A bit about me  Involved with PHP since 1996  Author of tidy extension  Published Author of many PHP texts
  • 3.  Virtualization for you, the developer  Creating fully encapsulated development environments ▪ Fully Version Controlled  Available locally using free tools or deploy to EC2 as necessary  The technologies we are going to discuss  Vagrant – Bootstrap virtual machines, manage box settings, etc.  VirtualBox – Provides the actual VM environment for machine  Puppet – Provisions box, installs and manages various software, code, etc. (also supports others such as Chef, shell scripts, etc.)
  • 5.  There are a lot of reasons to use VMs for development  Keep your host machine clean / easily recover from corruption  Keep separate projects from stepping on each other  Super easy developer on-boarding  There are even more reasons to use Vagrant & Puppet  Much easier management of the stack, versions, etc.  Allows seamless deployment to various environments for testing
  • 6.  To get started, you’re going to need to download two pieces of software  Vagrant - http://www.vagrantup.com/  VirtualBox - https://www.virtualbox.org/  There are builds available for all major platforms
  • 7.  Step 1: Download the tools  Step 2: Define your VM parameters  Step 3: Build your puppet manifests  Step 4: Prosper
  • 8.  Every repository should have a Vagrantfile in the root directory that defines the VM itself  Ruby based, but no Ruby knowledge required  Defines a few key aspects of your initial VM configuration  Base VM type used (various available)  Network configuration for VM in relation to host machine  Provisioning tooling used (i.e. puppet)  VM resource limits (memory, etc)  Different configurations can be defined for different environments, and propagated throughout the process
  • 9.  Once the VM has been defined vagrant can boot it up as a headless VM (no display) using VirtualBox automatically and configure it as necessary  Once booted, it can then provision the box by installing software packages, shared paths with hosts, etc. as necessary through the use of provisioning tools like puppet  Next step is defining your puppet manifests
  • 10.  With everything defined, one command takes care of it all!  Downloads the VirtualBox image if necessary (precise64)  Boots the VM with the defined parameters (memory, network, etc)  Sets of shared folders, copies puppet manifests as necessary and executes puppet to run those manifests
  • 11.  vagrant up – Brings up the virtual machine  vagrant halt – Halts the VM (poweroff)  vagrant destroy – Destroys the VM entirely  vagrant provision – Run puppet provisioning again  vagrant ssh – automagically log into the VM via SSH
  • 12.  Primarily Vagrant is used to build local VMs for development  But Vagrant can also be used to deploy to other environments, such as AWS through the use of Vagrant plug-ins  First, install the Vagrant AWS provider plug-in:
  • 13.  Next, you will need to add a new environment to your Vagrantfile to setup the necessary configuration values for AWS such as Key/Secret, AMI type, etc.  Note: To do provisioning using puppet, you may need to bootstrap the AMI on boot to install the puppet tooling  To boot, simply add the --provider option to vagrant up
  • 14.  A single Vagrantfile can define multiple VMs (multi-machine environments) useful for all sorts of things:  A web server and database server  API client and server  Etc.  Vagrant can do more than just VirtualBox as well, through providers can also provide VMWareVMs, etc.
  • 15.  Vagrantfile configuration files can be created at various levels, and will be merged together to define/override settings  Box itself (precise64)  Home directory (~/.vagrant.d)  Project directory
  • 16.  Thank you for coming!  Questions?  Further Reading:  http://docs.vagrantup.com/v2/  http://puppetlabs.com/  http://www.github.com/coogle/skeleton  https://joind.in/12070