Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Per-Developer Vagrant Environments with Vagrant...

Per-Developer Vagrant Environments with Vagrant and Puppet

At the UNICOM DevOps Summit in February 2014, @jtopper presented on the use of Vagrant and Puppet for providing per-developer environments - including a live demo of the approach in action.

You can try the code yourself too, visit the GitHub Project and follow the instructions in the README. https://github.com/jtopper/vagrant-demo

Avatar for The Scale Factory

The Scale Factory

February 27, 2014
Tweet

More Decks by The Scale Factory

Other Decks in Technology

Transcript

  1. Env OS PHP MySQL Prod RedHat 6.3 5.3.3 5.1.73 Pre-prod

    CentOS 6.5 5.3.3 5.1.73 Back-end Ubuntu 13.10 5.5.3 5.5.35 Front-end OS X 10.9 5.3.28 5.6.16 Javascript Windows 7 5.5.9 5.6.16
  2. Why is this bad? ‣ Increased deployment risk ‣ Wasted

    developer time ‣ Wasted operator time
  3. Why is this good? ‣ Environments scale with number of

    developers ‣ Environments as portable as developer hardware
  4. What is Vagrant? ‣ Tool for managing dev environments ‣

    Supports Linux, Mac, Windows ‣ Integrates with CM tools (eg. puppet) ‣ Folder sharing ‣ As portable as your laptop
  5. What is Vagrant? ‣ Import pre-defined “base boxes” from remote

    servers ‣ Describe box configuration in Vagrantfile ‣ Share both with other people ‣ “vagrant up” starts a clean, new environment ‣ “vagrant destroy” throws it away.
  6. What is Vagrant? Operating System Webserver Text editor Browser Database

    Messenger Music Twitter Photoshop Guest O/S Filesystem
  7. What is Puppet? ‣ Describe desired system state ‣ “What”,

    rather than “How” ‣ Puppet moves system from current, to desired state
  8. Benefits ‣ Repeatable ‣ Puppet can be used all the

    way from dev to live ‣ Parity with production builds confidence ‣ Configure once, deploy everywhere
  9. Env OS PHP MySQL Prod CentOS 6.5 5.3.3 5.1.73 Pre-prod

    CentOS 6.5 5.3.3 5.1.73 Back-end CentOS 6.5 5.3.3 5.1.73 Front-end CentOS 6.5 5.3.3 5.1.73 Javascript CentOS 6.5 5.3.3 5.1.73