Local development with Vagrant
Yuriy Gerasimov
Senior Drupal Architect
Propeople
@ygerasimov
Plan
● What is Vagrant?
● Provisioning, puppet
● Generating configs with puphpet.com
● How puphpet.com works internally
What is Vagrant
● Layer on top ov virtual machine providers
– Virtualbox
– Vmware
● Command line tool
● Text file to contr...
Vagrant commands
● vagrant up
● vagrant ssh
● vagrant provision
● vagrant halt
● vagrant destroy
● vagrant reload --provis...
Vagrant configuration
● Ruby syntax
● Box, ram, cpu
Vagrant.configure("2") do |config|
config.vm.box = 'ubuntu-1204'
confi...
Vagrant boxes
● https://vagrantcloud.com
● http://www.vagrantbox.es
Vagrant configuration
● Network
● Sync folders
● Nfs is faster than native. Try latest vagrant with rsync
Vagrant.configur...
Vagrant provisioning
● Shell
● Puppet (model driven)
● Chef (procedural)
puppet
PuPHPet.com
Demo
PuPHPet.com
PuPHPet.com
● All configs in puphpet/config.yaml
● Uses puppet librarian (Puppetfile)
Extending configs
● Use another puppet module
– Add it to the Puppetfile
– Modify manifest.pp
Contributing to puphpet.com
● Symfony app
● Each config element is a separate bundle that
provides UI and manifest.pp part...
Local development with Vagrant
Yuriy Gerasimov
Senior Drupal Architect
Propeople
@ygerasimov
Upcoming SlideShare
Loading in...5
×

Vagrant Stanford DrupalCamp 2014

766

Published on

Development of real life projects on multiple platforms can be very very painful. In our teams we have people who work on MacOS, Linux, Windows and setting up environments for different projects is not easy thing to do. Specially when everyone needs specific PHP versions, memcache, apache solr, varnish etc.

But there are tools to solve this problems. One of most promiment is Vagrant. It allows to spin local virtual machine with same settings on different platforms.

There are also tools to create configurations for your varnish VMs that won't require you to read a lot of documentation. It is simple like using UI of the website, click on various checkboxes, download archive and run 'vagrant up' and here you go.

In this session we will talk about:
- how vagrant works, how to run it locally and why you should use it
- how puppet works, how to adjust puppet scripts for your custom needs
- puphpet.com website to help building configurations, puphpet.drupal.ua for drupal specific configs
- we will share our real life experience using vm's for handling drupal projects

After this session attendees will have practical instructions how to use vagrant in their daily work.

Published in: Technology, Design
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
766
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
5
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Vagrant Stanford DrupalCamp 2014

  1. 1. Local development with Vagrant Yuriy Gerasimov Senior Drupal Architect Propeople @ygerasimov
  2. 2. Plan ● What is Vagrant? ● Provisioning, puppet ● Generating configs with puphpet.com ● How puphpet.com works internally
  3. 3. What is Vagrant ● Layer on top ov virtual machine providers – Virtualbox – Vmware ● Command line tool ● Text file to control the settings ● Plenty of boxes available on internet
  4. 4. Vagrant commands ● vagrant up ● vagrant ssh ● vagrant provision ● vagrant halt ● vagrant destroy ● vagrant reload --provision
  5. 5. Vagrant configuration ● Ruby syntax ● Box, ram, cpu Vagrant.configure("2") do |config| config.vm.box = 'ubuntu-1204' config.vm.box_url = 'http://.../ubuntu-1204-x64.box' config.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--memory", "2048"] vb.customize ["modifyvm", :id, "--cpus", "2"] end end
  6. 6. Vagrant boxes ● https://vagrantcloud.com ● http://www.vagrantbox.es
  7. 7. Vagrant configuration ● Network ● Sync folders ● Nfs is faster than native. Try latest vagrant with rsync Vagrant.configure("2") do |config| config.vm.network "private_network", ip: "192.168.50.4" end Vagrant.configure("2") do |config| config.vm.synced_folder "project/", "/var/www/project" end
  8. 8. Vagrant provisioning ● Shell ● Puppet (model driven) ● Chef (procedural)
  9. 9. puppet
  10. 10. PuPHPet.com Demo
  11. 11. PuPHPet.com
  12. 12. PuPHPet.com ● All configs in puphpet/config.yaml ● Uses puppet librarian (Puppetfile)
  13. 13. Extending configs ● Use another puppet module – Add it to the Puppetfile – Modify manifest.pp
  14. 14. Contributing to puphpet.com ● Symfony app ● Each config element is a separate bundle that provides UI and manifest.pp part ● Remember about all OS (debian + centos)
  15. 15. Local development with Vagrant Yuriy Gerasimov Senior Drupal Architect Propeople @ygerasimov
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×