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.
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/
- Install the latest version of Vagrant
- Install the latest version of ChefDK
- Install the Vagrant Berkshelf plugin:
$ vagrant plugin install vagrant-berkshelf
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
Thank you to all of our Contributors, testers, and users.
- Please report issues on the GitHub issue tracker
If you'd like to contribute, please see our contribution guidelines first.
- Jamie Winsor (jamie@vialstudios.com)
- Michael Ivey (michael.ivey@riotgames.com)
- Seth Vargo (sethvargo@gmail.com)
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.