SlideShare une entreprise Scribd logo
1  sur  30
Vagrant for Virtualized
Development
By:
Adam Culp
Twitter: @adamculp
https://joind.in/10538
2
Vagrant for Virtualized Development
●
About me
– PHP 5.3 Certified
– Consultant at Zend Technologies
– Organizer SoFloPHP (South Florida)
– Organized SunshinePHP (Miami)
– Long distance (ulramarathon) runner
– Judo Black Belt Instructor
3
Vagrant for Virtualized Development
● Shortfalls of development environments
– Does not mirror “testing” or “production” setup.
– Each developer has a different one.
● Easily out of sync with standards
● Many versions of (php, mysql, apache, etc.)
– Long ramp-up/training for new developers
– It works for me!
4
Vagrant for Virtualized Development
● Vagrant - http://vagrantup.com
– Virtualized development environments made easy
●
Command line tool
●
Lowers setup time
● Fully control entire environments and versions
● Eliminates “works on my machine” excuse
● Uses:
– VirtualBox
– VMWare
– AWS
– Others....
● Can use Puppet or Chef
● FREE and open source
5
Vagrant for Virtualized Development
●
Benefits of Using Vagrant
– Solo Developers
●
Maintain consistency across multiple projects.
●
Can run multiple environments on a single host machine.
(Dev., Test, Staging)
●
Easily tear down and rebuild.
– Teams
●
Identical development environments.
●
Consistent and portable.
– Companies
●
Easier onboarding of new talent.
●
Build once and distribute to teams.
6
Vagrant for Virtualized Development
● Vagrant minimum requirements
– VirtualBox and Hyper-V supported out of the box
– Ruby
– Vagrant
● Installers for MAC, Windows, various Linux
● Talks to VirtualBox and builds virtual machine based on a “base box”.
– Chef or Puppet
● These require separate installation
● Enables setup and configuration of advanced services you may need in your
environment.
7
Vagrant for Virtualized Development
● Vagrant Basic “How To”
– Navigate (via terminal) to your project.
– Find a base box: http://vagrantbox.es
– Execute two simple commands:
● vagrant init
● vagrant up
8
Vagrant for Virtualized Development
9
Vagrant for Virtualized Development
● Vagrant Base Box Commands
– Many base boxes available over the Internet, or
you can create your own.
● Creation convention should be followed.
– A base box must be added via local file or HTTP.
10
Vagrant for Virtualized Development
● Vagrant Base Box Commands
– You can list current “installed” base boxes.
11
Vagrant for Virtualized Development
● Vagrant Base Box Commands
– Or you can remove current base boxes.
● Remember to include provider.
12
Vagrant for Virtualized Development
● Vagrant Configuration File (Vagrantfile)
– Simple Ruby code which typically contains a Vagrant
configuration block.
– First thing loaded by Vagrant.
– Basic file created when 'init' is called from within a
directory.
– Add more options for more configuration.
13
Vagrant for Virtualized Development
● Sample Vagrantfile
14
Vagrant for Virtualized Development
● Suspend / Halt / Destroy
– To shut down we can:
● “suspend” to save the current state of the
machine. (does not return disk space, about
1GB)
● “halt” which is a graceful shutdown.
●
“destroy” everything. (requires re-provision)
– If we “suspended” to shut down last time you can
use “vagrant resume” or “vagrant up” when
returning, otherwise we use “vagrant up”.
15
Vagrant for Virtualized Development
●
SSH
– Vagrant makes SSH to the virtual machine easy
from within the project directory.
– Project files are available in the VM at '/vagrant' by
default, but can be changed.
– The VM has both read and write access to the
shared folder.
– Gain root (su) access use “sudo”.
16
Vagrant for Virtualized Development
● Port Forwarding
– By default your host machine should be able to
access the virtual machine by IP address. However,
we need to activate port forwarding for services.
– For HTTP:
– Then we simply reload Vagrant.
$ vagrant reload
17
Vagrant for Virtualized Development
● Provisioning
– We can set up some provisioning automation in
Vagrant by including a shell script.
– Link to a shell script in the Vagrantfile.
18
Vagrant for Virtualized Development
● Sample Shell Script
19
Vagrant for Virtualized Development
●
Packaging Your Own
– Start with a Base Box
●
Customize it as needed, unless relying solely on
provisioning with Chef or Puppet.
●
Run command to package
$ vagrant package –vagrantfile Vagrantfile.pkg
●
Creates 'package.box' in same directory.
●
Distribute via raw file or via HTTP, for others.
●
Other users can now use:
$ vagrant box add my_box /path/to/the/package.box
$ vagrant init my_box
$ vagrant up
20
Vagrant for Virtualized Development
● Packaging Your Own (from scratch)
– Simple enough to do.
– Follow Vagrant standards, especially if you plan to
share it.
● Set sizes of partition and RAM.(40GB/360MB)
● Set Domain and Hostname
●
Create Vagrant user, and password.
● Create some groups
● Ruby, RubyGems, Puppet, Chef, SSH with public keys
● Set sudo permissions
● Create /vagrant directory
21
Vagrant for Virtualized Development
● Provisioning
– Using Chef or Puppet we can create a script to alter
the VM.
●
Install apps
●
Edit config files
●
Many tasks needed to go from Base Box to desired
environment.
– Manifests (or recipe for Chef)
●
Manifests sub-directory within project.
●
Default.pp is the default file loaded.
22
Vagrant for Virtualized Development
● Advanced Capabilities of Vagrant
– Many advanced topics available under
Documentation on the Vagrant site.
●
Modules within Manifests to encapsulate Puppet
files.
●
Create your own Base Boxes
●
Multi-VM Environment
●
Plugins
●
NFS Shared Folders
23
Vagrant for Virtualized Development
● Puppet is:
– Automation software
● Help system admins manage infrastructure.
– Automates provisioning and configuration
– Automate repetitive tasks
– Ensure stability through consistency
– Open source and commercial versions
24
Vagrant for Virtualized Development
● Puppet Supported Operating Systems:
– RHEL
– CentOS
– Ubuntu
– Debian
– Scientific Linux
– Oracle Linux
– SUSE
– Solaris
– Windows
25
Vagrant for Virtualized Development
● Pieces
– Modules for popular
configurations
– Compose application
stack needed
– Rollout to the node
26
Vagrant for Virtualized Development
● Puppet Training
– Materials available on PuppetLabs site for FREE download.
●
Learning Puppet Tutorial
●
Learn Puppet VM to train on (VMWare or VirtualBox)
● Module cheatsheet
● Core types cheatsheet
● Users Guide
● Dashboard Manual
27
Vagrant for Virtualized Development
●
New tool PuPHPet
– Complex Vagrant setups made easy GUI.
●
Puppet manifest creation
●
Host (local, Digital Ocean, Rackspace).
●
Ubuntu version.
●
Set VM options.
● HTTP server. (Apache, Nginx)
●
PHP version. (5.5, 5.4, 5.3)
●
Or HHVM
●
Debugger (Xdebug).
●
Profiler (XHProf).
●
Drush
●
Database. (MySQL, PostgreSQL, MariaDB, MongoDB, Redis)
● Beantalkd or RabitMQ
●
Elastic Search
●
Create!
28
Vagrant for Virtualized Development
● New tool Rove.io
– Complex Vagrant setups made easy GUI.
●
Chef recipe creation
●
Database. (various)
● Language. (Node.js, PHP, Python, Ruby)
● SCM (Git, Mercurial, Subversion)
● HTTP server (Apache, Nginx)
● Generate!
29
Vagrant for Virtualized Development
● Resources
– http://vagrantup.com
– http://puppetlabs.com
– http://opscode.com/chef/
– http://virtualbox.org
– http://puPHPet.com
– http://getcomposer.org
– http://github.com
View details, slides, and rate at https://joind.in/10538
● Thank you
Adam Culp
http://www.geekyboy.com
http://github.com/adamculp
Twitter @adamculp
View details, slides, and rate at https://joind.in/10538

Contenu connexe

Tendances

Multi-provider Vagrant and Chef: AWS, VMware, and more
Multi-provider Vagrant and Chef: AWS, VMware, and moreMulti-provider Vagrant and Chef: AWS, VMware, and more
Multi-provider Vagrant and Chef: AWS, VMware, and moreChef Software, Inc.
 
It Works On My Machine: Vagrant for Software Development
It Works On My Machine: Vagrant for Software DevelopmentIt Works On My Machine: Vagrant for Software Development
It Works On My Machine: Vagrant for Software DevelopmentCarlos Perez
 
Vagrant 101 Workshop
Vagrant 101 WorkshopVagrant 101 Workshop
Vagrant 101 WorkshopLiora Milbaum
 
Create your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and PackerCreate your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and Packerfrastel
 
Building (localized) Vagrant boxes with Packer
Building (localized) Vagrant boxes with PackerBuilding (localized) Vagrant boxes with Packer
Building (localized) Vagrant boxes with PackerCristovao G. Verstraeten
 
Vagrant step-by-step guide for Beginners
Vagrant step-by-step guide for BeginnersVagrant step-by-step guide for Beginners
Vagrant step-by-step guide for BeginnersSagar Acharya
 
Vagrant + Ansible + Docker
Vagrant + Ansible + DockerVagrant + Ansible + Docker
Vagrant + Ansible + DockerVijay Selvaraj
 
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ BenetechNode.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ BenetechChristopher Bumgardner
 
Vagrant hands on workshop for beginners
Vagrant hands on workshop for beginnersVagrant hands on workshop for beginners
Vagrant hands on workshop for beginnersLiora Milbaum
 
Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017Jeff Geerling
 
Automated Infrastructure and Application Management
Automated Infrastructure and Application ManagementAutomated Infrastructure and Application Management
Automated Infrastructure and Application ManagementClark Everetts
 
6 Years of Docker: The Good, the Bad and Python Packaging at PyCon.DE&PyData ...
6 Years of Docker: The Good, the Bad and Python Packaging at PyCon.DE&PyData ...6 Years of Docker: The Good, the Bad and Python Packaging at PyCon.DE&PyData ...
6 Years of Docker: The Good, the Bad and Python Packaging at PyCon.DE&PyData ...Sebastian Neubauer
 
Vagrant - Version control your dev environment
Vagrant - Version control your dev environmentVagrant - Version control your dev environment
Vagrant - Version control your dev environmentbocribbz
 
VCCW - Vagrant based WordPress development environment
VCCW - Vagrant based WordPress development environmentVCCW - Vagrant based WordPress development environment
VCCW - Vagrant based WordPress development environmentTakayuki Miyauchi
 

Tendances (20)

Multi-provider Vagrant and Chef: AWS, VMware, and more
Multi-provider Vagrant and Chef: AWS, VMware, and moreMulti-provider Vagrant and Chef: AWS, VMware, and more
Multi-provider Vagrant and Chef: AWS, VMware, and more
 
It Works On My Machine: Vagrant for Software Development
It Works On My Machine: Vagrant for Software DevelopmentIt Works On My Machine: Vagrant for Software Development
It Works On My Machine: Vagrant for Software Development
 
Vagrant 101 Workshop
Vagrant 101 WorkshopVagrant 101 Workshop
Vagrant 101 Workshop
 
Create your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and PackerCreate your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and Packer
 
Vagrant for real
Vagrant for realVagrant for real
Vagrant for real
 
Vagrant to-aws-flow
Vagrant to-aws-flowVagrant to-aws-flow
Vagrant to-aws-flow
 
Building (localized) Vagrant boxes with Packer
Building (localized) Vagrant boxes with PackerBuilding (localized) Vagrant boxes with Packer
Building (localized) Vagrant boxes with Packer
 
Vagrant step-by-step guide for Beginners
Vagrant step-by-step guide for BeginnersVagrant step-by-step guide for Beginners
Vagrant step-by-step guide for Beginners
 
Vagrant + Ansible + Docker
Vagrant + Ansible + DockerVagrant + Ansible + Docker
Vagrant + Ansible + Docker
 
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ BenetechNode.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ Benetech
 
體驗 Hhvm
體驗 Hhvm體驗 Hhvm
體驗 Hhvm
 
Vagrant and CentOS 7
Vagrant and CentOS 7Vagrant and CentOS 7
Vagrant and CentOS 7
 
Vagrant hands on workshop for beginners
Vagrant hands on workshop for beginnersVagrant hands on workshop for beginners
Vagrant hands on workshop for beginners
 
Vagrant
VagrantVagrant
Vagrant
 
Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017Drupal VM for Drupal 8 Dev - MidCamp 2017
Drupal VM for Drupal 8 Dev - MidCamp 2017
 
Automated Infrastructure and Application Management
Automated Infrastructure and Application ManagementAutomated Infrastructure and Application Management
Automated Infrastructure and Application Management
 
6 Years of Docker: The Good, the Bad and Python Packaging at PyCon.DE&PyData ...
6 Years of Docker: The Good, the Bad and Python Packaging at PyCon.DE&PyData ...6 Years of Docker: The Good, the Bad and Python Packaging at PyCon.DE&PyData ...
6 Years of Docker: The Good, the Bad and Python Packaging at PyCon.DE&PyData ...
 
Vagrant - Version control your dev environment
Vagrant - Version control your dev environmentVagrant - Version control your dev environment
Vagrant - Version control your dev environment
 
VCCW - Vagrant based WordPress development environment
VCCW - Vagrant based WordPress development environmentVCCW - Vagrant based WordPress development environment
VCCW - Vagrant based WordPress development environment
 
Using vagrant
Using vagrantUsing vagrant
Using vagrant
 

En vedette

Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]Nicolas Poggi
 
Dockerizing development workflow
Dockerizing development workflowDockerizing development workflow
Dockerizing development workflowOrest Ivasiv
 
Vagrant or docker for java dev environment
Vagrant or docker for java dev environmentVagrant or docker for java dev environment
Vagrant or docker for java dev environmentOrest Ivasiv
 
Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))Michele Orselli
 
Automate your Development Environment with Vagrant & Chef
Automate your Development Environment with Vagrant & ChefAutomate your Development Environment with Vagrant & Chef
Automate your Development Environment with Vagrant & Chef Michael Lihs
 
Vagrant, como usar para desenvolvimento PHP
Vagrant, como usar para desenvolvimento PHPVagrant, como usar para desenvolvimento PHP
Vagrant, como usar para desenvolvimento PHPRenan Martins Pimentel
 
Minicurso de Vagrant
Minicurso de VagrantMinicurso de Vagrant
Minicurso de VagrantLeandro Nunes
 
Virtualization with Vagrant (ua.pycon 2011)
Virtualization with Vagrant (ua.pycon 2011)Virtualization with Vagrant (ua.pycon 2011)
Virtualization with Vagrant (ua.pycon 2011)Dmitry Guyvoronsky
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVinícius Krolow
 
Software Containerization
Software ContainerizationSoftware Containerization
Software ContainerizationRoshan Deniyage
 
Vagrant and docker
Vagrant and dockerVagrant and docker
Vagrant and dockerDuckDuckGo
 
Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)Michele Orselli
 
Vagrant vs Docker
Vagrant vs DockerVagrant vs Docker
Vagrant vs Dockerjchase50
 
Intro to containerization
Intro to containerizationIntro to containerization
Intro to containerizationBalint Pato
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩Wen-Tien Chang
 
Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...Jérôme Petazzoni
 
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...Carlos Sanchez
 

En vedette (20)

Vagrant For DevOps
Vagrant For DevOpsVagrant For DevOps
Vagrant For DevOps
 
Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]
 
Dockerizing development workflow
Dockerizing development workflowDockerizing development workflow
Dockerizing development workflow
 
Vagrant or docker for java dev environment
Vagrant or docker for java dev environmentVagrant or docker for java dev environment
Vagrant or docker for java dev environment
 
Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))
 
Automate your Development Environment with Vagrant & Chef
Automate your Development Environment with Vagrant & ChefAutomate your Development Environment with Vagrant & Chef
Automate your Development Environment with Vagrant & Chef
 
Vagrant, como usar para desenvolvimento PHP
Vagrant, como usar para desenvolvimento PHPVagrant, como usar para desenvolvimento PHP
Vagrant, como usar para desenvolvimento PHP
 
Minicurso de Vagrant
Minicurso de VagrantMinicurso de Vagrant
Minicurso de Vagrant
 
Virtualization with Vagrant (ua.pycon 2011)
Virtualization with Vagrant (ua.pycon 2011)Virtualization with Vagrant (ua.pycon 2011)
Virtualization with Vagrant (ua.pycon 2011)
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizado
 
Software Containerization
Software ContainerizationSoftware Containerization
Software Containerization
 
Vagrant and docker
Vagrant and dockerVagrant and docker
Vagrant and docker
 
Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)
 
Vagrant + Docker
Vagrant + DockerVagrant + Docker
Vagrant + Docker
 
Vagrant vs Docker
Vagrant vs DockerVagrant vs Docker
Vagrant vs Docker
 
Intro to containerization
Intro to containerizationIntro to containerization
Intro to containerization
 
Vagrant
VagrantVagrant
Vagrant
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
 
Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...
 
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
 

Similaire à Vagrant for Virtualized Development

Virtualizing Development
Virtualizing DevelopmentVirtualizing Development
Virtualizing DevelopmentAdam Culp
 
Take Home Your Very Own Free Vagrant CFML Dev Environment
Take Home Your Very Own Free Vagrant CFML Dev Environment Take Home Your Very Own Free Vagrant CFML Dev Environment
Take Home Your Very Own Free Vagrant CFML Dev Environment ColdFusionConference
 
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Gavin Pickin
 
Vagrant are you still develop in a non-virtual environment-
Vagrant  are you still develop in a non-virtual environment-Vagrant  are you still develop in a non-virtual environment-
Vagrant are you still develop in a non-virtual environment-Anatoly Bubenkov
 
Puppet and Vagrant in development
Puppet and Vagrant in developmentPuppet and Vagrant in development
Puppet and Vagrant in developmentAdam Culp
 
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & HadoopPuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & HadoopOlinData
 
Using Vagrant, Puppet, Testing & Hadoop
Using Vagrant, Puppet, Testing & HadoopUsing Vagrant, Puppet, Testing & Hadoop
Using Vagrant, Puppet, Testing & HadoopPuppet
 
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & HadoopPuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & HadoopWalter Heck
 
Vagrant workshop 2015
Vagrant workshop 2015Vagrant workshop 2015
Vagrant workshop 2015Haifa Ftirich
 
Cooking Perl with Chef: Hello World Tutorial
Cooking Perl with Chef: Hello World TutorialCooking Perl with Chef: Hello World Tutorial
Cooking Perl with Chef: Hello World TutorialDavid Golden
 
Create Development and Production Environments with Vagrant
Create Development and Production Environments with VagrantCreate Development and Production Environments with Vagrant
Create Development and Production Environments with VagrantBrian Hogan
 
Automating with ansible (Part B)
Automating with ansible (Part B)Automating with ansible (Part B)
Automating with ansible (Part B)iman darabi
 
Professional deployment
Professional deploymentProfessional deployment
Professional deploymentIvelina Dimova
 
Puppet Provisioning Vagrant Virtual Machine
Puppet Provisioning Vagrant Virtual MachinePuppet Provisioning Vagrant Virtual Machine
Puppet Provisioning Vagrant Virtual MachineArpit Aggarwal
 
Varying wordpressdevelopmentenvironment wp-campus2016
Varying wordpressdevelopmentenvironment wp-campus2016Varying wordpressdevelopmentenvironment wp-campus2016
Varying wordpressdevelopmentenvironment wp-campus2016David Brattoli
 
Using Vagrant
Using VagrantUsing Vagrant
Using Vagrantandygale
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and dockerFabio Fumarola
 

Similaire à Vagrant for Virtualized Development (20)

Virtualizing Development
Virtualizing DevelopmentVirtualizing Development
Virtualizing Development
 
Take Home Your Very Own Free Vagrant CFML Dev Environment
Take Home Your Very Own Free Vagrant CFML Dev Environment Take Home Your Very Own Free Vagrant CFML Dev Environment
Take Home Your Very Own Free Vagrant CFML Dev Environment
 
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
 
Ansible & Vagrant
Ansible & VagrantAnsible & Vagrant
Ansible & Vagrant
 
Vagrant are you still develop in a non-virtual environment-
Vagrant  are you still develop in a non-virtual environment-Vagrant  are you still develop in a non-virtual environment-
Vagrant are you still develop in a non-virtual environment-
 
Puppet and Vagrant in development
Puppet and Vagrant in developmentPuppet and Vagrant in development
Puppet and Vagrant in development
 
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & HadoopPuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
 
Using Vagrant, Puppet, Testing & Hadoop
Using Vagrant, Puppet, Testing & HadoopUsing Vagrant, Puppet, Testing & Hadoop
Using Vagrant, Puppet, Testing & Hadoop
 
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & HadoopPuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
 
Keep calm and vagrant up
Keep calm and vagrant upKeep calm and vagrant up
Keep calm and vagrant up
 
Vagrant workshop 2015
Vagrant workshop 2015Vagrant workshop 2015
Vagrant workshop 2015
 
Vagrantfordevops
VagrantfordevopsVagrantfordevops
Vagrantfordevops
 
Cooking Perl with Chef: Hello World Tutorial
Cooking Perl with Chef: Hello World TutorialCooking Perl with Chef: Hello World Tutorial
Cooking Perl with Chef: Hello World Tutorial
 
Create Development and Production Environments with Vagrant
Create Development and Production Environments with VagrantCreate Development and Production Environments with Vagrant
Create Development and Production Environments with Vagrant
 
Automating with ansible (Part B)
Automating with ansible (Part B)Automating with ansible (Part B)
Automating with ansible (Part B)
 
Professional deployment
Professional deploymentProfessional deployment
Professional deployment
 
Puppet Provisioning Vagrant Virtual Machine
Puppet Provisioning Vagrant Virtual MachinePuppet Provisioning Vagrant Virtual Machine
Puppet Provisioning Vagrant Virtual Machine
 
Varying wordpressdevelopmentenvironment wp-campus2016
Varying wordpressdevelopmentenvironment wp-campus2016Varying wordpressdevelopmentenvironment wp-campus2016
Varying wordpressdevelopmentenvironment wp-campus2016
 
Using Vagrant
Using VagrantUsing Vagrant
Using Vagrant
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
 

Plus de Adam Culp

Putting legacy to REST with middleware
Putting legacy to REST with middlewarePutting legacy to REST with middleware
Putting legacy to REST with middlewareAdam Culp
 
Release your refactoring superpower
Release your refactoring superpowerRelease your refactoring superpower
Release your refactoring superpowerAdam Culp
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical DebtAdam Culp
 
Developing PHP Applications Faster
Developing PHP Applications FasterDeveloping PHP Applications Faster
Developing PHP Applications FasterAdam Culp
 
Containing Quality
Containing QualityContaining Quality
Containing QualityAdam Culp
 
Debugging elephpants
Debugging elephpantsDebugging elephpants
Debugging elephpantsAdam Culp
 
Zend expressive workshop
Zend expressive workshopZend expressive workshop
Zend expressive workshopAdam Culp
 
Expressive Microservice Framework Blastoff
Expressive Microservice Framework BlastoffExpressive Microservice Framework Blastoff
Expressive Microservice Framework BlastoffAdam Culp
 
Foundations of Zend Framework
Foundations of Zend FrameworkFoundations of Zend Framework
Foundations of Zend FrameworkAdam Culp
 
Accidental professional
Accidental professionalAccidental professional
Accidental professionalAdam Culp
 
Build great products
Build great productsBuild great products
Build great productsAdam Culp
 
Does Your Code Measure Up?
Does Your Code Measure Up?Does Your Code Measure Up?
Does Your Code Measure Up?Adam Culp
 
Practical PHP Deployment with Jenkins
Practical PHP Deployment with JenkinsPractical PHP Deployment with Jenkins
Practical PHP Deployment with JenkinsAdam Culp
 
Refactoring Legacy Code
Refactoring Legacy CodeRefactoring Legacy Code
Refactoring Legacy CodeAdam Culp
 
Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2Adam Culp
 
Clean application development tutorial
Clean application development tutorialClean application development tutorial
Clean application development tutorialAdam Culp
 
Refactoring 101
Refactoring 101Refactoring 101
Refactoring 101Adam Culp
 
Essential git for developers
Essential git for developersEssential git for developers
Essential git for developersAdam Culp
 

Plus de Adam Culp (20)

Hypermedia
HypermediaHypermedia
Hypermedia
 
Putting legacy to REST with middleware
Putting legacy to REST with middlewarePutting legacy to REST with middleware
Putting legacy to REST with middleware
 
php-1701-a
php-1701-aphp-1701-a
php-1701-a
 
Release your refactoring superpower
Release your refactoring superpowerRelease your refactoring superpower
Release your refactoring superpower
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical Debt
 
Developing PHP Applications Faster
Developing PHP Applications FasterDeveloping PHP Applications Faster
Developing PHP Applications Faster
 
Containing Quality
Containing QualityContaining Quality
Containing Quality
 
Debugging elephpants
Debugging elephpantsDebugging elephpants
Debugging elephpants
 
Zend expressive workshop
Zend expressive workshopZend expressive workshop
Zend expressive workshop
 
Expressive Microservice Framework Blastoff
Expressive Microservice Framework BlastoffExpressive Microservice Framework Blastoff
Expressive Microservice Framework Blastoff
 
Foundations of Zend Framework
Foundations of Zend FrameworkFoundations of Zend Framework
Foundations of Zend Framework
 
Accidental professional
Accidental professionalAccidental professional
Accidental professional
 
Build great products
Build great productsBuild great products
Build great products
 
Does Your Code Measure Up?
Does Your Code Measure Up?Does Your Code Measure Up?
Does Your Code Measure Up?
 
Practical PHP Deployment with Jenkins
Practical PHP Deployment with JenkinsPractical PHP Deployment with Jenkins
Practical PHP Deployment with Jenkins
 
Refactoring Legacy Code
Refactoring Legacy CodeRefactoring Legacy Code
Refactoring Legacy Code
 
Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2
 
Clean application development tutorial
Clean application development tutorialClean application development tutorial
Clean application development tutorial
 
Refactoring 101
Refactoring 101Refactoring 101
Refactoring 101
 
Essential git for developers
Essential git for developersEssential git for developers
Essential git for developers
 

Dernier

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Dernier (20)

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 

Vagrant for Virtualized Development

  • 1. Vagrant for Virtualized Development By: Adam Culp Twitter: @adamculp https://joind.in/10538
  • 2. 2 Vagrant for Virtualized Development ● About me – PHP 5.3 Certified – Consultant at Zend Technologies – Organizer SoFloPHP (South Florida) – Organized SunshinePHP (Miami) – Long distance (ulramarathon) runner – Judo Black Belt Instructor
  • 3. 3 Vagrant for Virtualized Development ● Shortfalls of development environments – Does not mirror “testing” or “production” setup. – Each developer has a different one. ● Easily out of sync with standards ● Many versions of (php, mysql, apache, etc.) – Long ramp-up/training for new developers – It works for me!
  • 4. 4 Vagrant for Virtualized Development ● Vagrant - http://vagrantup.com – Virtualized development environments made easy ● Command line tool ● Lowers setup time ● Fully control entire environments and versions ● Eliminates “works on my machine” excuse ● Uses: – VirtualBox – VMWare – AWS – Others.... ● Can use Puppet or Chef ● FREE and open source
  • 5. 5 Vagrant for Virtualized Development ● Benefits of Using Vagrant – Solo Developers ● Maintain consistency across multiple projects. ● Can run multiple environments on a single host machine. (Dev., Test, Staging) ● Easily tear down and rebuild. – Teams ● Identical development environments. ● Consistent and portable. – Companies ● Easier onboarding of new talent. ● Build once and distribute to teams.
  • 6. 6 Vagrant for Virtualized Development ● Vagrant minimum requirements – VirtualBox and Hyper-V supported out of the box – Ruby – Vagrant ● Installers for MAC, Windows, various Linux ● Talks to VirtualBox and builds virtual machine based on a “base box”. – Chef or Puppet ● These require separate installation ● Enables setup and configuration of advanced services you may need in your environment.
  • 7. 7 Vagrant for Virtualized Development ● Vagrant Basic “How To” – Navigate (via terminal) to your project. – Find a base box: http://vagrantbox.es – Execute two simple commands: ● vagrant init ● vagrant up
  • 9. 9 Vagrant for Virtualized Development ● Vagrant Base Box Commands – Many base boxes available over the Internet, or you can create your own. ● Creation convention should be followed. – A base box must be added via local file or HTTP.
  • 10. 10 Vagrant for Virtualized Development ● Vagrant Base Box Commands – You can list current “installed” base boxes.
  • 11. 11 Vagrant for Virtualized Development ● Vagrant Base Box Commands – Or you can remove current base boxes. ● Remember to include provider.
  • 12. 12 Vagrant for Virtualized Development ● Vagrant Configuration File (Vagrantfile) – Simple Ruby code which typically contains a Vagrant configuration block. – First thing loaded by Vagrant. – Basic file created when 'init' is called from within a directory. – Add more options for more configuration.
  • 13. 13 Vagrant for Virtualized Development ● Sample Vagrantfile
  • 14. 14 Vagrant for Virtualized Development ● Suspend / Halt / Destroy – To shut down we can: ● “suspend” to save the current state of the machine. (does not return disk space, about 1GB) ● “halt” which is a graceful shutdown. ● “destroy” everything. (requires re-provision) – If we “suspended” to shut down last time you can use “vagrant resume” or “vagrant up” when returning, otherwise we use “vagrant up”.
  • 15. 15 Vagrant for Virtualized Development ● SSH – Vagrant makes SSH to the virtual machine easy from within the project directory. – Project files are available in the VM at '/vagrant' by default, but can be changed. – The VM has both read and write access to the shared folder. – Gain root (su) access use “sudo”.
  • 16. 16 Vagrant for Virtualized Development ● Port Forwarding – By default your host machine should be able to access the virtual machine by IP address. However, we need to activate port forwarding for services. – For HTTP: – Then we simply reload Vagrant. $ vagrant reload
  • 17. 17 Vagrant for Virtualized Development ● Provisioning – We can set up some provisioning automation in Vagrant by including a shell script. – Link to a shell script in the Vagrantfile.
  • 18. 18 Vagrant for Virtualized Development ● Sample Shell Script
  • 19. 19 Vagrant for Virtualized Development ● Packaging Your Own – Start with a Base Box ● Customize it as needed, unless relying solely on provisioning with Chef or Puppet. ● Run command to package $ vagrant package –vagrantfile Vagrantfile.pkg ● Creates 'package.box' in same directory. ● Distribute via raw file or via HTTP, for others. ● Other users can now use: $ vagrant box add my_box /path/to/the/package.box $ vagrant init my_box $ vagrant up
  • 20. 20 Vagrant for Virtualized Development ● Packaging Your Own (from scratch) – Simple enough to do. – Follow Vagrant standards, especially if you plan to share it. ● Set sizes of partition and RAM.(40GB/360MB) ● Set Domain and Hostname ● Create Vagrant user, and password. ● Create some groups ● Ruby, RubyGems, Puppet, Chef, SSH with public keys ● Set sudo permissions ● Create /vagrant directory
  • 21. 21 Vagrant for Virtualized Development ● Provisioning – Using Chef or Puppet we can create a script to alter the VM. ● Install apps ● Edit config files ● Many tasks needed to go from Base Box to desired environment. – Manifests (or recipe for Chef) ● Manifests sub-directory within project. ● Default.pp is the default file loaded.
  • 22. 22 Vagrant for Virtualized Development ● Advanced Capabilities of Vagrant – Many advanced topics available under Documentation on the Vagrant site. ● Modules within Manifests to encapsulate Puppet files. ● Create your own Base Boxes ● Multi-VM Environment ● Plugins ● NFS Shared Folders
  • 23. 23 Vagrant for Virtualized Development ● Puppet is: – Automation software ● Help system admins manage infrastructure. – Automates provisioning and configuration – Automate repetitive tasks – Ensure stability through consistency – Open source and commercial versions
  • 24. 24 Vagrant for Virtualized Development ● Puppet Supported Operating Systems: – RHEL – CentOS – Ubuntu – Debian – Scientific Linux – Oracle Linux – SUSE – Solaris – Windows
  • 25. 25 Vagrant for Virtualized Development ● Pieces – Modules for popular configurations – Compose application stack needed – Rollout to the node
  • 26. 26 Vagrant for Virtualized Development ● Puppet Training – Materials available on PuppetLabs site for FREE download. ● Learning Puppet Tutorial ● Learn Puppet VM to train on (VMWare or VirtualBox) ● Module cheatsheet ● Core types cheatsheet ● Users Guide ● Dashboard Manual
  • 27. 27 Vagrant for Virtualized Development ● New tool PuPHPet – Complex Vagrant setups made easy GUI. ● Puppet manifest creation ● Host (local, Digital Ocean, Rackspace). ● Ubuntu version. ● Set VM options. ● HTTP server. (Apache, Nginx) ● PHP version. (5.5, 5.4, 5.3) ● Or HHVM ● Debugger (Xdebug). ● Profiler (XHProf). ● Drush ● Database. (MySQL, PostgreSQL, MariaDB, MongoDB, Redis) ● Beantalkd or RabitMQ ● Elastic Search ● Create!
  • 28. 28 Vagrant for Virtualized Development ● New tool Rove.io – Complex Vagrant setups made easy GUI. ● Chef recipe creation ● Database. (various) ● Language. (Node.js, PHP, Python, Ruby) ● SCM (Git, Mercurial, Subversion) ● HTTP server (Apache, Nginx) ● Generate!
  • 29. 29 Vagrant for Virtualized Development ● Resources – http://vagrantup.com – http://puppetlabs.com – http://opscode.com/chef/ – http://virtualbox.org – http://puPHPet.com – http://getcomposer.org – http://github.com View details, slides, and rate at https://joind.in/10538
  • 30. ● Thank you Adam Culp http://www.geekyboy.com http://github.com/adamculp Twitter @adamculp View details, slides, and rate at https://joind.in/10538