Vagrant and Chef for Rails Developers

855ee26b04af97fe0fc421b03a92454e?s=47 Martin Fenner
September 05, 2014

Vagrant and Chef for Rails Developers

Rails Software Development with Chef and Vagrant


Martin Fenner

September 05, 2014


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

    ! ! ! ! ! ! ! Martin Fenner Technical Lead, PLOS Article-Level Metric Project

  3. Dev/Prod Parity Keep development, staging, and production as similar

    as possible!
  4. Dev Environment == Production Then you can’t develop on a

  5. 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
  6. These two make a difference Automation Virtualization

  7. 3 Dev Environment == Production Automation! Shell! Ansible! CFEngine! Chef!

    Puppet! Salt! Docker Virtualization! Virtualbox! VMware! AWS! Rackspace! Digital Ocean! Hyper-V! Docker Vagrant is a tool for building complete development environments
  8. Dev Environment == Production

  9. Dev Environment == Production 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.
  10. The Future! But not much help for developing single web

    applications on a Mac

  12. 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.!! ! Berkshelf and Librarian-Chef are two popular tools to manage cookbook installation and dependencies.!!! Chef Cookbooks
  13. Dev Environment == Production Chef Recipes This recipe installs

    and configures the ALM Reports Ruby on Rails application.
  14. Dev Environment == Production Chef Resource (LWRP) Trend is

    to use resources instead of recipes.
  15. Dev Environment == Production Chef Attributes Although there many

    standard cookbooks, best practices are still emerging.
  16. Test Kitchen

  17. Dev Environment == Production Serverspec Test-driven development for infrastructure

  18. Dev Environment == Production Further Reading Pivotal Sprout! Chef recipe

    to configure an OS X Mavericks developer workstation! Customizing Chef! Chef for cookbook authors. August 2014! Vagrant Blog! Feature Preview: Docker-Based Development Environments! docker-dev-environments.htm