🟢 Stable
development | ||
docs | ||
lib | ||
locales | ||
spec/acceptance | ||
.gitignore | ||
CHANGELOG.md | ||
Gemfile | ||
Gemfile.lock | ||
LICENSE.txt | ||
Rakefile | ||
README.md | ||
vagrant-cachier.gemspec |
vagrant-cachier
A Vagrant plugin that helps you reduce the amount of coffee you drink while waiting for boxes to be provisioned by sharing a common package cache among similiar VM instances. Kinda like vagrant-apt_cache or this magical snippet but targetting multiple package managers and Linux distros.
Installation
Make sure you have Vagrant 1.4+ and run:
vagrant plugin install vagrant-cachier
Quick start
Vagrant.configure("2") do |config|
config.vm.box = 'your-box'
if Vagrant.has_plugin?("vagrant-cachier")
# Configure cached packages to be shared between instances of the same base box.
# More info on http://fgrehm.viewdocs.io/vagrant-cachier/usage
config.cache.scope = :box
# If you are using VirtualBox, you might want to use that to enable NFS for
# shared folders. This is also very useful for vagrant-libvirt if you want
# bi-directional sync
config.cache.synced_folder_opts = {
type: :nfs,
# The nolock option can be useful for an NFSv3 client that wants to avoid the
# NLM sideband protocol. Without this option, apt-get might hang if it tries
# to lock files needed for /var/cache/* operations. All of this can be avoided
# by using NFSv4 everywhere. Please note that the tcp option is not the default.
mount_options: ['rw', 'vers=3', 'tcp', 'nolock']
}
# For more information please check http://docs.vagrantup.com/v2/synced-folders/basic_usage.html
end
end
For more information please read the documentation available at http://fgrehm.viewdocs.io/vagrant-cachier.
Providers that are known to work
- Vagrant's built in VirtualBox provider
- vagrant-lxc
- VMware providers with NFS enabled (See GH-24 for more info)
- docker-provider
- Let me know if it is compatible with other providers!
Please note that as of v0.6.0 the plugin will automatically disable any previously defined configs for cloud providers
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request