versions between production and local development • New starters can get going with development straight away • Existing developers can redistribute development platform in case of hardware failure Reasons why we should: Wednesday, 29 May 13
pain in the arse • Scared of the command line • There’s a massive overhead keeping the VM up to date • Can never get the networking between you and your VM working Reasons why we don’t: Wednesday, 29 May 13
kept in version control Vagrant Configuration Vagrant::Config.run do |config| # Forward guest port 80 to # host port 4567 config.vm.forward_port 80, 4567 end • Apply with “vagrant reload” Wednesday, 29 May 13
your servers • Open source • Lots of examples and code to get you started • Integrates brilliantly with Vagrant www.opscode.com/chef/ Wednesday, 29 May 13
Or his comprehensive blog posts josediazgonzalez.com/2011/10/03/full-stack-cakephp-deployment-with-chef-and-capistrano/ Getting started Wednesday, 29 May 13
"/etc/ntp.conf" do source "ntp.conf.erb" owner "root" group "root" mode 0644 notifies :restart, resources(:service => "ntp") end service "ntp" do action :start end Install package Create config file from template Define service and start NTP Restart service when config file changes Wednesday, 29 May 13
basic Ruby code that describe how to setup something. • There’s community (i.e. Open Source, Free) cookbooks for probably everything you’ll need community.opscode.com • You just need to define a few extra things Wednesday, 29 May 13
Windows, Mac, Linux) downloads.vagrantup.com • Assuming you have git Let’s go $ git clone [email protected]:salgo/cakefest-vagrant-chef.git $ cd cakefest-vagrant-chef $ ./git-fetch-submodules.sh $ vagrant up Wednesday, 29 May 13
Puppet or just a custom script if that’s what your company uses • Use your favourite editor, your files appear in /vagrant automatically • Because you can recreate your development environment with “vagrant up” whenever you like, you can save disk space with “vagrant destroy” Wednesday, 29 May 13