Skip to content

danielkummer/bentobox-4-vagrant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bentobox 4 Vagrant

Bentobox 4 Vagrant is a nifty tool for generating Vagrantfile configurations. It’s intended for use with a chef server which supplies the cookbooks and recepies.

A bentobox is essentially a Vagrantfile file consisting of a basebox and several ingredients. An ingredient is simply a configuration which can include cookbooks, share folders, portmappings and network configurations.

Demo at: bentobox-4-vagrant.herokuapp.com

User: [email protected] Password: 123456

Getting Started

You need

  • Ruby 1.9.x

  • MongoDB > 2.0

If you’d like some example data use

rake db:seed
  • application configuration: You need to configure bentobox-4-vagrant as a chef client in order to list the available cookbooks when creating or editing

ingredients. The chef client connection is also used when optaining a new private key. To edit the settings log in as an administrator and browse to the simple admin page. Load the validation.pem key to permit clients to download it and register themselves at the chef server.

Features

  • Private and public bentoboxes

  • Categorized ingredients

  • Cookbooks list gathered from a chef server (or static configuration)

  • Vagrantbox upload

Deployment

Capistrano deployment

Bentobox is configured for capistrano passenger deployment, visit deploy.rb for customization.

Heroku support

Although the demo application is running on heroku, there are some additional steps needed for production. Heroku only supports carrierwave (file upload) in conjunction with an amazon S3 (or another cloud storage service). You need to adjust the following files to support file upload on heroku (the affected lines are commented)

  • config/initializers/carrier_wave.rb

  • app/uploaders/vagrantbox_uploader.rb

Additionally, the following environment variables must be set (replace the bracket values with the correct ones):

heroku config:add S3_KEY=[YOUR_KEY]
heroku config:add S3_SECRET=[YOUR_SECRET]
heroku config:add S3_BUCKET=[THE_BUCKET]

Known Issues

  • The carrierwave-mongoid gem currently isn’t working in conjunction with the mongoid 3 gem. Because of this there is no gridFs support for carrierwave!