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

Per-Developer Vagrant Environments with Vagrant and Puppet

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

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