Skip to content
This repository has been archived by the owner on Dec 26, 2017. It is now read-only.

A Vagrant plugin to add Berkshelf integration to the Chef provisioners

License

Notifications You must be signed in to change notification settings

berkshelf/vagrant-berkshelf

Repository files navigation

Vagrant Berkshelf Plugin

Gem Version Build Status

Vagrant Berkshelf is a Vagrant plugin that adds Berkshelf integration to the Chef provisioners. Vagrant Berkshelf will automatically download and install cookbooks onto the Vagrant Virtual Machine.

vagrant-berkshelf vs. Test Kitchen

This plugin was created before the development of Test Kitchen, which provides a much simpler and more robust cookbook testing experience. We highly recommend using Test Kitchen instead of Vagrant for your cookbook testing workflows and will not be further maintaining this project. If you are interested in maintaining this project see: #321

See Seth Vargo's blog post for additional information on Test Kitchen vs. Vagrant Berkshelf: https://sethvargo.com/the-future-of-vagrant-berkshelf/

Installation

  1. Install the latest version of Vagrant
  2. Install the latest version of ChefDK
  3. Install the Vagrant Berkshelf plugin:
$ vagrant plugin install vagrant-berkshelf

Usage

If the Vagrant Berkshelf plugin is installed, it will intelligently detect when a Berksfile is present in the same working directory as the Vagrantfile.

Here is an example Vagrantfile configuration section for Vagrant Berkshelf:

Vagrant.configure("2") do |config|
  # The path to the Berksfile to use. The default value is "Berksfile" if one
  # exists, or nil if it does not.
  config.berkshelf.berksfile_path = "custom.Berksfile"

  # Enable Berkshelf. If a Berksfile exists or a berksfile_path is given, this
  # value is automatically set to true. If not, the value is false
  config.berkshelf.enabled = true

  # A list of Berkshelf groups to only install and sync to the Vagrant Virtual
  # Machine. The default value is an empty array.
  config.berkshelf.only = ["group_a", "group_b"]

  # A list of Berkshelf groups to not install and sync to the Vagrant Virtual
  # Machine. The default value is an empty array.
  config.berkshelf.except = ["group_c", "group_d"]

  # A list of extra values to pass to the `berks` executable. The default value
  # is an empty array.
  config.berkshelf.args = ["--format json"]
end

Contributing

Thank you to all of our Contributors, testers, and users.

If you'd like to contribute, please see our contribution guidelines first.

License & Authors

Copyright (c) 2012-2014 Riot Games

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.