SlideShare a Scribd company logo
Instant LAMP Stack with
  Vagrant and Puppet
         Patrick Lee
      Boise Code Camp
       March 16, 2013
Resources
Code: https://github.com/patrickdlee/vagrant-examples *
Slides: http://www.slideshare.net/patrickdlee
Me:
● @patrickdlee on Twitter
● Patrick.Lee@bodybuilding.com


* Use the vagrant1.1 branch.
Who am I?
●   Former high school teacher (5 years)
●   Recovering software developer (10 years)
●   Brand new release engineer (one week)
●   Organizer of Boise Web Tech Meetup (4 years)
●   Incurable techie (38 years and counting)

I have worked at Bodybuilding.com for 4-1/2 years.
Yes, we are hiring. Talk to me if you're interested.
Assumptions
I am assuming that you are familiar with the following
or at least know of them...

●   VirtualBox
●   Linux
●   Apache / PHP / MySQL
●   Software configuration
●   Cloud computing

But if not, I'll explain them briefly so don't worry.
A brief analogy
Remember the days before source control?
What did you do? Zip files named by date?
Do you miss doing that?

Here's the analogy...

Vagrant : manual env setup :: Zip files : SCM
Agenda
●   What is the problem anyway?
●   What is Vagrant?
●   Examples!
●   What is Puppet?
●   More examples!
●   Simulating production architecture?
●   Even more examples!
●   Integration with Amazon AWS
●   One more example!
●   Related topics
●   Questions?
●   Links
What is the problem anyway?
Setting up a development environment is not a
fun way to spend an afternoon.

Options:
● Using a remote server
● Installing everything locally
● Creating a virtual machine

Let's take a look at each of these...
Using a remote server
Pros:
● It's separate from your machine
● No divergence of environments on team
● You can rebuild your own machine at will

Cons:
● You have to push code to it
● You probably have to share it with others
● It's just inefficient at best
● What if you're out of the office?
Installing everything locally
Pros:
● You have complete control over it
● Nobody else is breaking using it

Cons:
● It's time-consuming and error-prone
● It's not easily repeatable
● Barrier to rebuilding your machine
● No standards among teammates
Creating a virtual machine
Pros:
● It keeps your own machine cleaner
● VM's can be snapshotted
● VM's are (mostly) portable

Cons:
● Initial installation is time-consuming
● Virtual machine images are big
● There's still configuration when copying them
Enter Vagrant!
Pros:
● Can be run entirely on your machine
● Defines all configuration externally
● Consistent, repeatable, and reliable
● Can standardize environments for your team
● Keeps your own machine cleaner
● You can rebuild your own machine at will

Cons:
● Expectation of increased productivity?
What is Vagrant?
Vagrant is a tool that allows developers to...
"Create and configure lightweight, reproducible, and
portable development environments."

●   Created by Mitchell Hashimoto
●   Open source and on GitHub
●   Available for Linux, Mac, and Windows
●   Uses Oracle's VirtualBox
●   Uses Puppet or Chef for provisioning
Examples!
What is Puppet?
"Puppet is IT automation software that helps system
administrators manage infrastructure throughout its
lifecycle, from provisioning and configuration to patch
management and compliance."

●   Define all your configuration in text files
●   Apply the configuration to your machines
●   Modify the configuration at any time
●   Ensure that all machines are up-to-date
●   Straightforward, yet powerful technology
More examples!
Simulating production architecture?
A single VM is all well and good, but we need
to simulate production.

No problem!

● Create as many types of VM's as you like
● Spin up one of each or entire clusters
● The only limit is your hardware
Even more examples!
Integration with Amazon AWS
Vagrant 1.1 (released 3/14) supports multiple
providers...

●   VirtualBox (the default)
●   Amazon AWS
●   Rackspace Cloud
●   VMWare
●   ...and more to come.
●   You can even add your own.
One more example!
Related topics
PuppetForge is a repository of Puppet modules
provided by the community.

rspec-puppet is a tool for testing Puppet modules.

Chef is another option for provisioning with Vagrant.

AWS OpsWorks is a new service for configuration
management, provisioning, application deployments,
auto-scaling, routing, load balancing, and more.
Questions?
Links
●   http://www.vagrantup.com/
●   https://puppetlabs.com/
●   http://forge.puppetlabs.com/
●   http://rspec-puppet.com/
●   http://www.opscode.com/chef/
●   https://aws.amazon.com/opsworks/

More Related Content

PDF
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
PDF
Stop Sucking at Building Stuff!
PDF
Tuxtorial - talk 1 (pdf)
PDF
How fast can you onboard a new team member with VAGRANT ?
PDF
TDC2013 - PHP - Virtualização e Provisionamento de Ambientes com Vagrant e ...
ODP
Introducing Yeoman 1.0 beta
PDF
PHP Conference Brasil 2013 - Virtualização e Provisionamento de Ambientes c...
PDF
Why You Should Start Using Docker
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
Stop Sucking at Building Stuff!
Tuxtorial - talk 1 (pdf)
How fast can you onboard a new team member with VAGRANT ?
TDC2013 - PHP - Virtualização e Provisionamento de Ambientes com Vagrant e ...
Introducing Yeoman 1.0 beta
PHP Conference Brasil 2013 - Virtualização e Provisionamento de Ambientes c...
Why You Should Start Using Docker

What's hot (20)

ODP
Lighning Talk: PHP build process
PDF
Fast end-to-end-tests
PPTX
Server side swift
PDF
Extreme Programming - to the next-level
PDF
Swift for back end: A new generation of full stack languages?
PPTX
That worked before
PDF
Daniel Steigerwald - Este.js - konec velkého Schizma
PDF
Real Time Realitites
PDF
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
PPTX
BSides 2015 Intro to Web App Pen Testing with Mutillidae
PDF
Ruin your life using robot framework
PPTX
Bootstrapping Quality
PDF
Tests immutable when refactoring - SegFault Unconference Cracow 2019
PPTX
Mono Repo
PDF
Automated Performance Testing
PPTX
XPDays-2018
PPTX
WordPress Local Environments VVV
PDF
WPSessions Composer for WordPress Plugin Development
PPT
Automating Software Releases (Dallas/Ft. Worth Perl Mongers 2004)
PPTX
Reusability is the goal
Lighning Talk: PHP build process
Fast end-to-end-tests
Server side swift
Extreme Programming - to the next-level
Swift for back end: A new generation of full stack languages?
That worked before
Daniel Steigerwald - Este.js - konec velkého Schizma
Real Time Realitites
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
BSides 2015 Intro to Web App Pen Testing with Mutillidae
Ruin your life using robot framework
Bootstrapping Quality
Tests immutable when refactoring - SegFault Unconference Cracow 2019
Mono Repo
Automated Performance Testing
XPDays-2018
WordPress Local Environments VVV
WPSessions Composer for WordPress Plugin Development
Automating Software Releases (Dallas/Ft. Worth Perl Mongers 2004)
Reusability is the goal
Ad

Similar to Instant LAMP Stack with Vagrant and Puppet (20)

PDF
Virtualization with Vagrant (ua.pycon 2011)
PDF
Puppet and Vagrant in development
PDF
Security Testing Using Infrastructure-As-Code
PPTX
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
PDF
Local development environment through virtualisation
ODP
Vagrant and puppet: Deployment made easy
PDF
Developing locally with virtual machines
PPTX
Harmonious Development: Via Vagrant and Puppet
PDF
The future of the php development environment
PDF
Puppet Camp New York 2015: "Safer Puppet" in 4 quick demos (Beginner)
PDF
Keep calm and vagrant up
PPTX
Development with Vagrant
PDF
Improved development workflows using vagrant
PPTX
Virtualization for Developers
PDF
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PDF
Using Vagrant, Puppet, Testing & Hadoop
PDF
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PDF
Powering Development and Testing Environments with Vagrant
PPTX
Virtualization for Developers
PDF
Vagrant for Virtualized Development
Virtualization with Vagrant (ua.pycon 2011)
Puppet and Vagrant in development
Security Testing Using Infrastructure-As-Code
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Local development environment through virtualisation
Vagrant and puppet: Deployment made easy
Developing locally with virtual machines
Harmonious Development: Via Vagrant and Puppet
The future of the php development environment
Puppet Camp New York 2015: "Safer Puppet" in 4 quick demos (Beginner)
Keep calm and vagrant up
Development with Vagrant
Improved development workflows using vagrant
Virtualization for Developers
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
Powering Development and Testing Environments with Vagrant
Virtualization for Developers
Vagrant for Virtualized Development
Ad

Recently uploaded (20)

PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Cloud computing and distributed systems.
PPTX
MYSQL Presentation for SQL database connectivity
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
KodekX | Application Modernization Development
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Spectroscopy.pptx food analysis technology
Review of recent advances in non-invasive hemoglobin estimation
Per capita expenditure prediction using model stacking based on satellite ima...
Understanding_Digital_Forensics_Presentation.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Cloud computing and distributed systems.
MYSQL Presentation for SQL database connectivity
The AUB Centre for AI in Media Proposal.docx
Building Integrated photovoltaic BIPV_UPV.pdf
Chapter 3 Spatial Domain Image Processing.pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Electronic commerce courselecture one. Pdf
KodekX | Application Modernization Development
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Reach Out and Touch Someone: Haptics and Empathic Computing
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Encapsulation_ Review paper, used for researhc scholars
The Rise and Fall of 3GPP – Time for a Sabbatical?
Spectroscopy.pptx food analysis technology

Instant LAMP Stack with Vagrant and Puppet

  • 1. Instant LAMP Stack with Vagrant and Puppet Patrick Lee Boise Code Camp March 16, 2013
  • 2. Resources Code: https://github.com/patrickdlee/vagrant-examples * Slides: http://www.slideshare.net/patrickdlee Me: ● @patrickdlee on Twitter ● Patrick.Lee@bodybuilding.com * Use the vagrant1.1 branch.
  • 3. Who am I? ● Former high school teacher (5 years) ● Recovering software developer (10 years) ● Brand new release engineer (one week) ● Organizer of Boise Web Tech Meetup (4 years) ● Incurable techie (38 years and counting) I have worked at Bodybuilding.com for 4-1/2 years. Yes, we are hiring. Talk to me if you're interested.
  • 4. Assumptions I am assuming that you are familiar with the following or at least know of them... ● VirtualBox ● Linux ● Apache / PHP / MySQL ● Software configuration ● Cloud computing But if not, I'll explain them briefly so don't worry.
  • 5. A brief analogy Remember the days before source control? What did you do? Zip files named by date? Do you miss doing that? Here's the analogy... Vagrant : manual env setup :: Zip files : SCM
  • 6. Agenda ● What is the problem anyway? ● What is Vagrant? ● Examples! ● What is Puppet? ● More examples! ● Simulating production architecture? ● Even more examples! ● Integration with Amazon AWS ● One more example! ● Related topics ● Questions? ● Links
  • 7. What is the problem anyway? Setting up a development environment is not a fun way to spend an afternoon. Options: ● Using a remote server ● Installing everything locally ● Creating a virtual machine Let's take a look at each of these...
  • 8. Using a remote server Pros: ● It's separate from your machine ● No divergence of environments on team ● You can rebuild your own machine at will Cons: ● You have to push code to it ● You probably have to share it with others ● It's just inefficient at best ● What if you're out of the office?
  • 9. Installing everything locally Pros: ● You have complete control over it ● Nobody else is breaking using it Cons: ● It's time-consuming and error-prone ● It's not easily repeatable ● Barrier to rebuilding your machine ● No standards among teammates
  • 10. Creating a virtual machine Pros: ● It keeps your own machine cleaner ● VM's can be snapshotted ● VM's are (mostly) portable Cons: ● Initial installation is time-consuming ● Virtual machine images are big ● There's still configuration when copying them
  • 11. Enter Vagrant! Pros: ● Can be run entirely on your machine ● Defines all configuration externally ● Consistent, repeatable, and reliable ● Can standardize environments for your team ● Keeps your own machine cleaner ● You can rebuild your own machine at will Cons: ● Expectation of increased productivity?
  • 12. What is Vagrant? Vagrant is a tool that allows developers to... "Create and configure lightweight, reproducible, and portable development environments." ● Created by Mitchell Hashimoto ● Open source and on GitHub ● Available for Linux, Mac, and Windows ● Uses Oracle's VirtualBox ● Uses Puppet or Chef for provisioning
  • 14. What is Puppet? "Puppet is IT automation software that helps system administrators manage infrastructure throughout its lifecycle, from provisioning and configuration to patch management and compliance." ● Define all your configuration in text files ● Apply the configuration to your machines ● Modify the configuration at any time ● Ensure that all machines are up-to-date ● Straightforward, yet powerful technology
  • 16. Simulating production architecture? A single VM is all well and good, but we need to simulate production. No problem! ● Create as many types of VM's as you like ● Spin up one of each or entire clusters ● The only limit is your hardware
  • 18. Integration with Amazon AWS Vagrant 1.1 (released 3/14) supports multiple providers... ● VirtualBox (the default) ● Amazon AWS ● Rackspace Cloud ● VMWare ● ...and more to come. ● You can even add your own.
  • 20. Related topics PuppetForge is a repository of Puppet modules provided by the community. rspec-puppet is a tool for testing Puppet modules. Chef is another option for provisioning with Vagrant. AWS OpsWorks is a new service for configuration management, provisioning, application deployments, auto-scaling, routing, load balancing, and more.
  • 22. Links ● http://www.vagrantup.com/ ● https://puppetlabs.com/ ● http://forge.puppetlabs.com/ ● http://rspec-puppet.com/ ● http://www.opscode.com/chef/ ● https://aws.amazon.com/opsworks/