Anda di halaman 1dari 17

About the Speaker

Originally from Cape Town South Africa been living and working in London for 6 years. Developing with PHP on the lamp stack since 2002. Currently work at a well known charity on their scalable fundraising platform.

Follow me on twitter @jeremyquinton

Using Vagrant, Virtual Box and Chef in your Development Environment

The future of Development


@mitchellh creator and maintainer of vagrant

WHY?
Vagrant lowers development environment setup time, maximize dev/prod parity, and makes the works on my machine excuse a relic of the past. -http://vagrantup.com

http://www.12factor.net

Components of a virtualised development environment



Virtualbox - virtualisation layer. Vagrant

Provisioning tool like chef or puppet.

Virtual Box

Virutalisation product freely available as Open Source Software under (GPL) version 2.

Supports all major platforms. https://www.virtualbox.org/manual/ch01.html#hostossupport


Community effort backed by a big company. Grab a copy for your platform at https://www.virtualbox.org/wiki/Downloads

Vagrant

A tool to transparently manage all the complex parts of modern development within a virtual environment without affecting the everyday workflow of the developer too much. - vagrantup.com Opensource project and written in Ruby, a command line tool. Supported on most major operating systems. Hashicorp - http://www.hashicorp.com/blog/announcinghashicorp.html Grab a copy here - http://downloads.vagrantup.com/tags/v1.0.5 for a package or install with ruby gems.

Chef

Chef is a open source provisioning tool which was built for automating the cloud. https://github.com/opscode/chef http://wiki.opscode.com/display/chef/Home There are hundreds of recipes which are already written so you can simply re-use them. https://github.com/opscode/cookbooks Can be installed via ruby gems. gem install chef

Different configurations chef solo will be used in the examples.

Windows Developer

VCS
Mac Osx Developer

VagrantFile

Linux Developer
Chef Solo Scripts
1. vagrant add box box_name package.box 2. vagrant up 3. vagrant provision

Deployment tool

Staging

Production

How vagrant works



Vagrant instance is managed with Vagrantfile which is ruby syntax. 28 configuration options. You dont need to use them all Ill demo 7 today. Full list on vagrantup.com.

Basic VagrantFile

Vagrant box file can be obtained from 3 places

Three methods to create a box file


Method
Download a box file from http://www.vagrant.es

Pros
- Simplest - Up and running quickly

Cons
- You dont know whats on the base box

Using the instructions off vagrantup.com

- Gives understanding of the specifics of a vagrant box setup

- Time consuming. - Miss a step or do a step wrong and you have a vagrant box which has odd behaviour

Using the opensource project VeeWee off github https://github.com/jedi4ever/vee wee

- Simpler,Powerful - Templates for most server operating systems

Vagrant file options

Chef configuration

Demo

Download Virtualbox 4.1.22 http://download.virtualbox.org/virtualbox/4.1.22/ Download vagrant package or install via ruby gems http://downloads.vagrantup.com/tags/v1.0.5 Add 33.33.33.10 vagrantdemo.com to /etc/hosts Get the project git clone http://www.github.com/jeremyquinton/vagrant_demo cd vagrant_demo vagrant up --no-provision vagrant provision Browse to vagrantdemo.com

Sources
http://downloads.vagrantup.com/tags/v1
.0.5

http://download.virtualbox.org/virtualbox
/

http://www.opscode.com/chef/ https://github.com/jedi4ever/veewee https://github.com/mitchellh/vagrant Andy Thompson

Anda mungkin juga menyukai