SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
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/

Más contenido relacionado

La actualidad más candente

Lighning Talk: PHP build process
Lighning Talk: PHP build processLighning Talk: PHP build process
Lighning Talk: PHP build process
Bryan Agee
 
BSides 2015 Intro to Web App Pen Testing with Mutillidae
BSides 2015 Intro to Web App Pen Testing with MutillidaeBSides 2015 Intro to Web App Pen Testing with Mutillidae
BSides 2015 Intro to Web App Pen Testing with Mutillidae
andrew242
 
WPSessions Composer for WordPress Plugin Development
WPSessions Composer for WordPress Plugin DevelopmentWPSessions Composer for WordPress Plugin Development
WPSessions Composer for WordPress Plugin Development
Caldera Labs
 
Automating Software Releases (Dallas/Ft. Worth Perl Mongers 2004)
Automating Software Releases (Dallas/Ft. Worth Perl Mongers 2004)Automating Software Releases (Dallas/Ft. Worth Perl Mongers 2004)
Automating Software Releases (Dallas/Ft. Worth Perl Mongers 2004)
brian d foy
 

La actualidad más candente (20)

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

Similar a Instant LAMP Stack with Vagrant and Puppet

icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02
Manohar Kumar
 

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

The Professional Programmer
The Professional ProgrammerThe Professional Programmer
The Professional Programmer
 
Improve the deployment process step by step
Improve the deployment process step by stepImprove the deployment process step by step
Improve the deployment process step by step
 
Pentester++
Pentester++Pentester++
Pentester++
 
Perl Continous Integration
Perl Continous IntegrationPerl Continous Integration
Perl Continous Integration
 
Survival of the Continuist
Survival of the ContinuistSurvival of the Continuist
Survival of the Continuist
 
TDD with Python and App Engine
TDD with Python and App EngineTDD with Python and App Engine
TDD with Python and App Engine
 
Passing the Joel Test in the PHP World (phpbnl10)
Passing the Joel Test in the PHP World (phpbnl10)Passing the Joel Test in the PHP World (phpbnl10)
Passing the Joel Test in the PHP World (phpbnl10)
 
icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02
 
De-centralise and conquer: Masterless Puppet in a dynamic environment
De-centralise and conquer: Masterless Puppet in a dynamic environmentDe-centralise and conquer: Masterless Puppet in a dynamic environment
De-centralise and conquer: Masterless Puppet in a dynamic environment
 
De-centralise and Conquer: Masterless Puppet in a Dynamic Environment
De-centralise and Conquer: Masterless Puppet in a Dynamic EnvironmentDe-centralise and Conquer: Masterless Puppet in a Dynamic Environment
De-centralise and Conquer: Masterless Puppet in a Dynamic Environment
 
Monitoring and automation
Monitoring and automationMonitoring and automation
Monitoring and automation
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy process
 
Ice breaker with dev ops
Ice breaker with dev opsIce breaker with dev ops
Ice breaker with dev ops
 
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff  - Mykel Alvis at Puppet Camp AltantaDon't Suck at Building Stuff  - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
 
Puppetizing Your Organization
Puppetizing Your OrganizationPuppetizing Your Organization
Puppetizing Your Organization
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at Froscon
 
Test all the things! Automated testing with Drupal 8
Test all the things! Automated testing with Drupal 8Test all the things! Automated testing with Drupal 8
Test all the things! Automated testing with Drupal 8
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
 
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
 
Buildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in pythonBuildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in python
 

Último

Último (20)

Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 

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/