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

Vagrant and Chef for Rails Developers

Martin Fenner
September 05, 2014

Vagrant and Chef for Rails Developers

Rails Software Development with Chef and Vagrant

Martin Fenner

September 05, 2014
Tweet

More Decks by Martin Fenner

Other Decks in Technology

Transcript

  1. Rails Software Development ! with Chef and Vagrant ! !

    ! ! ! ! ! ! ! Martin Fenner Technical Lead, PLOS Article-Level Metric Project https://github.com/mfenner http://en.wikipedia.org/wiki/Chef
  2. Bundler provides a consistent environment for Ruby projects by tracking

    and installing the exact gems and versions that are needed. RVM is a command-line tool which allows you to easily install, manage, and work with multiple ruby environments from interpreters to sets of gems. Homebrew installs the stuff you need that Apple didn’t. RubyGems is a package manager for the Ruby language. Good, but not good enough
  3. 3 Dev Environment == Production Automation! Shell! Ansible! CFEngine! Chef!

    Puppet! Salt! Docker Virtualization! Virtualbox! VMware! AWS! Rackspace! Digital Ocean! Hyper-V! Docker https://www.vagrantup.com/ Vagrant is a tool for building complete development environments
  4. Dev Environment == Production https://xkcd.com/ Vagrant Core Concepts Code and

    configuration management is under version control. Clone a repo and get started. Shared Folders Host and guest Virtual Machine share access to the project code. Use your favorite editor for development and see changes immediately. Keep it Simple Dramatically reduce the learning curve to configure a Virtual Machine and run IT automation software. No Vendor Lock-in Open source software (VMware plugin is commercial). Flexibility in virtualization and automation tools.
  5. The Future! But not much help for developing single web

    applications on a Mac https://www.docker.com/
  6. https://downloads.getchef.com/chef-dk A cookbook is the fundamental unit of configuration and

    policy distribution.! ! Cookbooks are written in Ruby, using the Chef DSL.! ! The Chef Supermarket is the central community resource for cookbooks.! https://supermarket.getchef.com/! ! Berkshelf and Librarian-Chef are two popular tools to manage cookbook installation and dependencies.! http://berkshelf.com/! https://github.com/applicationsonline/librarian-chef! Chef Cookbooks
  7. Dev Environment == Production Further Reading Pivotal Sprout! Chef recipe

    to configure an OS X Mavericks developer workstation! https://github.com/pivotal-sprout Customizing Chef! Chef for cookbook authors. August 2014! http://shop.oreilly.com/product/0636920032984.do Vagrant Blog! Feature Preview: Docker-Based Development Environments! https://www.vagrantup.com/blog/feature-preview-vagrant-1-6- docker-dev-environments.htm