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
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.
-
Private and public bentoboxes
-
Categorized ingredients
-
Cookbooks list gathered from a chef server (or static configuration)
-
Vagrantbox upload
Bentobox is configured for capistrano passenger deployment, visit deploy.rb for customization.
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]
-
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!