vagrant-cachier 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -0
  3. data/Gemfile +1 -1
  4. data/Gemfile.lock +59 -34
  5. data/LICENSE.txt +1 -1
  6. data/README.md +27 -10
  7. data/development/Cheffile.lock +1 -5
  8. data/development/Vagrantfile +81 -71
  9. data/docs/buckets/apt-lists.md +18 -0
  10. data/docs/how-does-it-work.md +5 -6
  11. data/docs/index.md +24 -5
  12. data/docs/template.html +1 -0
  13. data/docs/usage.md +81 -28
  14. data/lib/vagrant-cachier/action/clean.rb +1 -1
  15. data/lib/vagrant-cachier/action/configure_bucket_root.rb +46 -0
  16. data/lib/vagrant-cachier/action/install_buckets.rb +47 -0
  17. data/lib/vagrant-cachier/bucket.rb +55 -0
  18. data/lib/vagrant-cachier/bucket/apt.rb +3 -12
  19. data/lib/vagrant-cachier/bucket/apt_cacher.rb +1 -13
  20. data/lib/vagrant-cachier/bucket/apt_lists.rb +24 -0
  21. data/lib/vagrant-cachier/bucket/chef.rb +1 -14
  22. data/lib/vagrant-cachier/bucket/composer.rb +1 -14
  23. data/lib/vagrant-cachier/bucket/gem.rb +4 -17
  24. data/lib/vagrant-cachier/bucket/npm.rb +1 -14
  25. data/lib/vagrant-cachier/bucket/pacman.rb +1 -14
  26. data/lib/vagrant-cachier/bucket/rvm.rb +4 -17
  27. data/lib/vagrant-cachier/bucket/yum.rb +4 -15
  28. data/lib/vagrant-cachier/bucket/zypper.rb +4 -15
  29. data/lib/vagrant-cachier/cap/debian/apt_lists_dir.rb +13 -0
  30. data/lib/vagrant-cachier/capabilities.rb +64 -0
  31. data/lib/vagrant-cachier/config.rb +35 -10
  32. data/lib/vagrant-cachier/hooks.rb +27 -0
  33. data/lib/vagrant-cachier/plugin.rb +12 -80
  34. data/lib/vagrant-cachier/version.rb +1 -1
  35. data/locales/en.yml +3 -7
  36. data/vagrant-cachier.gemspec +11 -1
  37. metadata +20 -12
  38. data/lib/vagrant-cachier/action/ensure_single_cache_root.rb +0 -64
  39. data/lib/vagrant-cachier/errors.rb +0 -9
  40. data/lib/vagrant-cachier/provision_ext.rb +0 -74
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6401dbe459feafa1b357a42a6bfa34220d3fa4a0
4
- data.tar.gz: 7bbc8643bfe247c356819fd34476165675555bf3
3
+ metadata.gz: 307983515bc00363631b1742d531e79f2fb24e8e
4
+ data.tar.gz: 6bebf0f7c9e887566d4f1161506d461ae43f3b06
5
5
  SHA512:
6
- metadata.gz: fac081741ef0c1678cdf85e15c30beac681f319444ed2ee14902735866f647a570398fe76b902db7754474cff18a127867995af23d3d565de089d6b743c54494
7
- data.tar.gz: 005f3712fc40ed86c7b0d7509a6d8056dbf47e3f3235d8dd12c83061a2b8cd68cdf3356a044a822132458b2919b595e6d5c0af5f8a2aad1fbbd44a31199fa46d
6
+ metadata.gz: 6677e3fcb6ebb9c699fd3c774250fba801a50c914c32022d53367ad2a2b1fe029f03f8853f84858fe8bf554e982c5763bab24d1f2ed70a140847f587287ad01e
7
+ data.tar.gz: 20574de968aac25e1d2295739a2f97d2876be801f1d966841c631d7524b3186aef29e522952ce7b2c5c3ed2d53cac244826d171db505eab9265e4ab8f4efe583
data/CHANGELOG.md CHANGED
@@ -1,3 +1,36 @@
1
+ ## [0.6.0](https://github.com/fgrehm/vagrant-cachier/compare/v0.5.1...v0.6.0) (Feb 26, 2014)
2
+
3
+ BACKWARDS INCOMPATIBILITY:
4
+
5
+ - Plugin activation is now triggered by the `cache.scope` config and that config
6
+ is now required. Previous versions of the plugin had it set to `:box` but
7
+ there is no consensus whether `:box` and `:machine` is better. This is to
8
+ highlight that you need to think about the caching strategy you are going
9
+ to use. For more information and to discuss this move please check [GH-17](https://github.com/fgrehm/vagrant-cachier/issues/17).
10
+ - Because `cache.scope` is now a requirement and in order to reduce the amount of
11
+ configuration required by the plugin, we enabled automatic bucket detection by
12
+ default. To revert to the old behavior you can disable it globally from your
13
+ `~/.vagrant.d/Vagrantfile`.
14
+ - Support for Vagrant < 1.4 is gone, please use a previous plugin version if
15
+ you are running Vagrant 1.2 / 1.3
16
+ - Automatic handling of multiple machine scoped cache dirs from versions
17
+ prior to 0.3.0 of this plugin was removed.
18
+ - Support for `enable_nfs` has been deprecated and will be removed on 0.7.0,
19
+ please use `cache.synced_folder_opts = {type: :nfs}` instead.
20
+
21
+ FEATURES:
22
+
23
+ - Warm up cache buckets with files available on guest in case bucket is empty
24
+ - Support for offline provisioning of apt-packages by caching `/var/lib/apt/lists` [GH-84]
25
+ - Support for specifying custom cache bucket synced folder opts
26
+ - Support to force disabe the plugin [GH-72]
27
+ - Automatically disable the plugin for cloud providers [GH-45]
28
+ - Skip configuration of buckets that have been configured already [GH-85]
29
+
30
+ BUG FIXES:
31
+
32
+ - Properly fix NFS support for Vagrant 1.4+ [GH-76]
33
+
1
34
  ## [0.5.1](https://github.com/fgrehm/vagrant-cachier/compare/v0.5.0...v0.5.1) (Dec 20, 2013)
2
35
 
3
36
  BUG FIXES:
data/Gemfile CHANGED
@@ -4,7 +4,7 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  group :development do
7
- gem 'vagrant', github: 'mitchellh/vagrant'
7
+ gem 'vagrant', github: 'mitchellh/vagrant', tag: 'v1.4.3'
8
8
  gem 'vagrant-lxc', github: 'fgrehm/vagrant-lxc'
9
9
  gem 'vagrant-pristine', github: 'fgrehm/vagrant-pristine'
10
10
  gem 'vagrant-global-status', github: 'fgrehm/vagrant-global-status'
data/Gemfile.lock CHANGED
@@ -1,104 +1,129 @@
1
1
  GIT
2
2
  remote: git://github.com/fgrehm/vagrant-global-status.git
3
- revision: a0295400a0e47756cbcb8f97ed9f4449b1fb6b56
3
+ revision: 8ae82e2c57b085a030137a40e9b3d232f42e5117
4
4
  specs:
5
- vagrant-global-status (0.1.1)
5
+ vagrant-global-status (0.1.5.dev)
6
6
 
7
7
  GIT
8
8
  remote: git://github.com/fgrehm/vagrant-lxc.git
9
- revision: 225af5622767059708278db29d42941e93d41994
9
+ revision: 1083f100adc4cf1bd20e7eb794ecfda94ef8b365
10
10
  specs:
11
- vagrant-lxc (0.6.4.dev)
11
+ vagrant-lxc (0.7.1.dev)
12
12
 
13
13
  GIT
14
14
  remote: git://github.com/fgrehm/vagrant-pristine.git
15
- revision: 4638491786943bfbf6f115b1fc379f069963fe46
15
+ revision: 503dbc47848c81d0fbfa6840491856f518d244a1
16
16
  specs:
17
17
  vagrant-pristine (0.3.0)
18
18
 
19
19
  GIT
20
20
  remote: git://github.com/mitchellh/vagrant.git
21
- revision: 57e95323b6600b146167f0f14f83b22dd31dd03f
21
+ revision: 4f0eb9504cc786d5a57a43814427e8eb35407a4c
22
+ tag: v1.4.3
22
23
  specs:
23
- vagrant (1.3.6.dev)
24
+ vagrant (1.4.3)
24
25
  childprocess (~> 0.3.7)
25
26
  erubis (~> 2.7.0)
26
27
  i18n (~> 0.6.0)
27
28
  log4r (~> 1.1.9)
28
29
  net-scp (~> 1.1.0)
29
- net-ssh (~> 2.6.6)
30
+ net-ssh (>= 2.6.6, < 2.8.0)
30
31
 
31
32
  PATH
32
33
  remote: .
33
34
  specs:
34
- vagrant-cachier (0.5.1)
35
+ vagrant-cachier (0.6.0)
35
36
 
36
37
  GEM
37
38
  remote: https://rubygems.org/
38
39
  specs:
39
40
  archive-tar-minitar (0.5.2)
40
- chef (11.6.0)
41
- erubis
42
- highline (>= 1.6.9)
41
+ chef (11.8.2)
42
+ chef-zero (~> 1.6, >= 1.6.2)
43
+ diff-lcs (~> 1.2, >= 1.2.4)
44
+ erubis (~> 2.7)
45
+ highline (~> 1.6, >= 1.6.9)
43
46
  json (>= 1.4.4, <= 1.7.7)
44
- mixlib-authentication (>= 1.3.0)
45
- mixlib-cli (~> 1.3.0)
46
- mixlib-config (>= 1.1.2)
47
- mixlib-log (>= 1.3.0)
48
- mixlib-shellout
47
+ mime-types (~> 1.16)
48
+ mixlib-authentication (~> 1.3)
49
+ mixlib-cli (~> 1.3)
50
+ mixlib-config (~> 2.0)
51
+ mixlib-log (~> 1.3)
52
+ mixlib-shellout (~> 1.2)
49
53
  net-ssh (~> 2.6)
50
54
  net-ssh-multi (~> 1.1.0)
51
- ohai (>= 0.6.0)
55
+ ohai (~> 6.0)
56
+ pry (~> 0.9)
57
+ puma (~> 1.6)
52
58
  rest-client (>= 1.0.4, < 1.7.0)
53
59
  yajl-ruby (~> 1.1)
60
+ chef-zero (1.7.2)
61
+ hashie (~> 2.0)
62
+ json
63
+ mixlib-log (~> 1.3)
64
+ moneta (< 0.7.0)
65
+ rack
54
66
  childprocess (0.3.9)
55
67
  ffi (~> 1.0, >= 1.0.11)
68
+ coderay (1.1.0)
69
+ diff-lcs (1.2.5)
56
70
  erubis (2.7.0)
57
- ffi (1.9.0)
58
- highline (1.6.19)
59
- i18n (0.6.5)
71
+ ffi (1.9.3)
72
+ hashie (2.0.5)
73
+ highline (1.6.20)
74
+ i18n (0.6.9)
60
75
  ipaddress (0.8.0)
61
76
  json (1.7.7)
62
- librarian (0.1.0)
77
+ librarian (0.1.1)
63
78
  highline
64
79
  thor (~> 0.15)
65
- librarian-chef (0.0.1)
80
+ librarian-chef (0.0.2)
66
81
  archive-tar-minitar (>= 0.5.2)
67
82
  chef (>= 0.10)
68
83
  librarian (~> 0.1.0)
69
84
  log4r (1.1.10)
70
- mime-types (1.23)
85
+ method_source (0.8.2)
86
+ mime-types (1.25.1)
71
87
  mixlib-authentication (1.3.0)
72
88
  mixlib-log
73
- mixlib-cli (1.3.0)
74
- mixlib-config (1.1.2)
89
+ mixlib-cli (1.4.0)
90
+ mixlib-config (2.1.0)
75
91
  mixlib-log (1.6.0)
76
- mixlib-shellout (1.2.0)
92
+ mixlib-shellout (1.3.0)
93
+ moneta (0.6.0)
77
94
  net-scp (1.1.2)
78
95
  net-ssh (>= 2.6.5)
79
- net-ssh (2.6.8)
96
+ net-ssh (2.7.0)
80
97
  net-ssh-gateway (1.2.0)
81
98
  net-ssh (>= 2.6.5)
82
99
  net-ssh-multi (1.1)
83
100
  net-ssh (>= 2.1.4)
84
101
  net-ssh-gateway (>= 0.99.0)
85
- ohai (6.18.0)
102
+ ohai (6.20.0)
86
103
  ipaddress
87
104
  mixlib-cli
88
105
  mixlib-config
89
106
  mixlib-log
90
107
  mixlib-shellout
91
- systemu
108
+ systemu (~> 2.5.2)
92
109
  yajl-ruby
93
- rake (10.1.0)
110
+ pry (0.9.12.4)
111
+ coderay (~> 1.0)
112
+ method_source (~> 0.8)
113
+ slop (~> 3.4)
114
+ puma (1.6.3)
115
+ rack (~> 1.2)
116
+ rack (1.5.2)
117
+ rake (10.1.1)
94
118
  rest-client (1.6.7)
95
119
  mime-types (>= 1.16)
120
+ slop (3.4.7)
96
121
  systemu (2.5.2)
97
122
  thor (0.18.1)
98
- vagrant-librarian-chef (0.1.2)
123
+ vagrant-librarian-chef (0.1.4)
99
124
  librarian-chef
100
- vagrant-omnibus (1.1.2)
101
- yajl-ruby (1.1.0)
125
+ vagrant-omnibus (1.2.1)
126
+ yajl-ruby (1.2.0)
102
127
 
103
128
  PLATFORMS
104
129
  ruby
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013 Fabio Rehm
1
+ Copyright (c) 2013-2014 Fabio Rehm
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # vagrant-cachier
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/vagrant-cachier.png)](http://badge.fury.io/rb/vagrant-cachier) [![Gittip](http://img.shields.io/gittip/fgrehm.svg)](https://www.gittip.com/fgrehm/)
4
+
3
5
  A [Vagrant](http://www.vagrantup.com/) plugin that helps you reduce the amount of
4
6
  coffee you drink while waiting for boxes to be provisioned by sharing a common
5
7
  package cache among similiar VM instances. Kinda like [vagrant-apt_cache](https://github.com/avit/vagrant-apt_cache)
@@ -9,7 +11,7 @@ multiple package managers and Linux distros.
9
11
 
10
12
  ## Installation
11
13
 
12
- Make sure you have Vagrant 1.2+ and run:
14
+ Make sure you have Vagrant 1.4+ and run:
13
15
 
14
16
  ```
15
17
  vagrant plugin install vagrant-cachier
@@ -17,15 +19,27 @@ vagrant plugin install vagrant-cachier
17
19
 
18
20
  ## Quick start
19
21
 
20
- The easiest way to set things up is just to enable [cache buckets auto detection](http://fgrehm.viewdocs.io/vagrant-cachier/usage)
21
- from within your `Vagrantfile`:
22
-
23
22
  ```ruby
24
23
  Vagrant.configure("2") do |config|
25
24
  config.vm.box = 'your-box'
26
- config.cache.auto_detect = true
27
- # If you are using VirtualBox, you might want to enable NFS for shared folders
28
- # config.cache.enable_nfs = true
25
+ if Vagrant.has_plugin?("vagrant-cachier")
26
+ # Configure cached packages to be shared between instances of the same base box.
27
+ # More info on http://fgrehm.viewdocs.io/vagrant-cachier/usage
28
+ config.cache.scope = :box
29
+
30
+ # If you are using VirtualBox, you might want to use that to enable NFS for
31
+ # shared folders. This is also very useful for vagrant-libvirt if you want
32
+ # bi-directional sync
33
+ config.cache.synced_folder_opts = {
34
+ type: :nfs,
35
+ # The nolock option can be useful for an NFSv3 client that wants to avoid the
36
+ # NLM sideband protocol. Without this option, apt-get might hang if it tries
37
+ # to lock files needed for /var/cache/* operations. All of this can be avoided
38
+ # by using NFSv4 everywhere. Please note that the tcp option is not the default.
39
+ mount_options: ['rw', 'vers=3', 'tcp', 'nolock']
40
+ }
41
+ # For more information please check http://docs.vagrantup.com/v2/synced-folders/basic_usage.html
42
+ end
29
43
  end
30
44
  ```
31
45
 
@@ -33,12 +47,17 @@ For more information please read the documentation available at
33
47
  http://fgrehm.viewdocs.io/vagrant-cachier.
34
48
 
35
49
 
36
- ## Compatible providers
50
+ ## Providers that are known to work
37
51
 
38
52
  * Vagrant's built in VirtualBox provider
39
53
  * [vagrant-lxc](https://github.com/fgrehm/vagrant-lxc)
40
54
  * [VMware providers](http://www.vagrantup.com/vmware) with NFS enabled (See
41
55
  [GH-24](https://github.com/fgrehm/vagrant-cachier/issues/24) for more info)
56
+ * [docker-provider](https://github.com/fgrehm/docker-provider)
57
+ * _[Let me know if it is compatible with other providers!](https://github.com/fgrehm/vagrant-cachier/issues/new)_
58
+
59
+ _Please note that as of v0.6.0 the plugin will automatically disable any
60
+ previously defined configs for [cloud providers](lib/vagrant-cachier/plugin.rb#L19-22)_
42
61
 
43
62
 
44
63
  ## Contributing
@@ -48,5 +67,3 @@ http://fgrehm.viewdocs.io/vagrant-cachier.
48
67
  3. Commit your changes (`git commit -am 'Add some feature'`)
49
68
  4. Push to the branch (`git push origin my-new-feature`)
50
69
  5. Create new Pull Request
51
-
52
- [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/fgrehm/vagrant-cachier/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
@@ -1,11 +1,7 @@
1
1
  SITE
2
2
  remote: http://community.opscode.com/api/v1
3
3
  specs:
4
- chef_handler (1.1.4)
5
- java (1.12.0)
6
- windows (>= 0.0.0)
7
- windows (1.10.0)
8
- chef_handler (>= 0.0.0)
4
+ java (1.19.2)
9
5
 
10
6
  DEPENDENCIES
11
7
  java (>= 0)
@@ -12,116 +12,126 @@ Vagrant.configure("2") do |config|
12
12
 
13
13
  config.cache.scope = :machine
14
14
  config.cache.auto_detect = true
15
- config.cache.enable_nfs = true
16
-
17
- config.omnibus.chef_version = :latest
18
- config.vm.provision :chef_solo do |chef|
19
- chef.add_recipe "java::oracle"
20
- chef.json = {
21
- :java => {
22
- :oracle => {
23
- :accept_oracle_download_terms => true
24
- }
25
- }
26
- }
27
- end
15
+ config.cache.synced_folder_opts = { type: :nfs }
28
16
 
29
- # Installs RVM
30
- config.vm.provision :shell, inline: '
31
- if ! [ -d /home/vagrant/.rvm ]; then
32
- HOME=/home/vagrant su -p vagrant -l -c "curl -L https://get.rvm.io | bash -s stable"
33
- fi
34
- '
35
-
36
- # Here we have the RVM cache bucket configured, so we install 2.0.0
37
- config.vm.provision :shell, inline: '
38
- if ! [ -d /home/vagrant/.rvm/rubies/ruby-1.9.3* ]; then
39
- HOME=/home/vagrant su -p vagrant -l -c "rvm install 1.9.3 && rvm use 1.9.3 --default"
40
- fi
41
- '
42
-
43
- config.vm.provision :shell, inline: '
44
- if ! [ -d /home/vagrant/.nvm ]; then
45
- apt-get install git -y
46
- HOME=/home/vagrant su -p vagrant -l -c "
47
- curl https://raw.github.com/creationix/nvm/master/install.sh | sh
48
- "
49
- fi
50
- '
51
-
52
- config.vm.provision :shell, inline: '
53
- if ! [ -d /home/vagrant/.nvm/v0.10* ]; then
54
- HOME=/home/vagrant su -p vagrant -l -c "
55
- nvm install 0.10
56
- nvm alias default 0.10
57
- "
58
- fi
59
- '
17
+ config.vm.provider :virtualbox do |vb|
18
+ vb.customize [ "modifyvm", :id, "--memory", 256, "--cpus", "1" ]
19
+ end
60
20
 
61
21
  configure_private_network = lambda do |node, suffix|
62
22
  node.vm.network :private_network, ip: "192.168.50.#{suffix}"
63
23
  end
64
24
 
65
- debian_like_configs = lambda do |debian|
66
- # Here we have the RubyGems cache bucket configured to the right path, so we
67
- # bundle the project
68
- debian.vm.provision :shell, inline: '
69
- sudo apt-get install -y git php5-cli
70
- HOME=/home/vagrant su -p vagrant -l -c "cd /vagrant && bundle"
25
+ initial_debian_setup = lambda do |debian, git_pkg = 'git'|
26
+ debian.vm.provision :shell, inline: "apt-get update && apt-get install -y #{git_pkg} php5-cli curl wget htop"
27
+ end
28
+
29
+ install_nvm_and_rvm = lambda do |node|
30
+ # Installs RVM
31
+ node.vm.provision :shell, inline: '
32
+ if ! [ -d /home/vagrant/.rvm ]; then
33
+ HOME=/home/vagrant su -p vagrant -l -c "curl -L https://get.rvm.io | bash -s stable"
34
+ fi
35
+ '
36
+
37
+ # Here we have the RVM cache bucket configured, so we install 2.0.0
38
+ node.vm.provision :shell, inline: '
39
+ if ! [ -d /home/vagrant/.rvm/rubies/ruby-2.0.0* ]; then
40
+ HOME=/home/vagrant su -p vagrant -l -c "rvm install 2.0.0 && rvm use 2.0.0 --default"
41
+ fi
42
+ '
43
+
44
+ node.vm.provision :shell, inline: '
45
+ if ! [ -d /home/vagrant/.nvm ]; then
46
+ apt-get install git -y
47
+ HOME=/home/vagrant su -p vagrant -l -c "
48
+ curl https://raw.github.com/creationix/nvm/master/install.sh | sh
49
+ "
50
+ fi
51
+ '
52
+
53
+ node.vm.provision :shell, inline: '
54
+ if ! [ -d /home/vagrant/.nvm/v0.10* ]; then
55
+ HOME=/home/vagrant su -p vagrant -l -c "
56
+ nvm install 0.10
57
+ nvm alias default 0.10
58
+ "
59
+ fi
71
60
  '
72
61
  end
73
62
 
74
63
  config.vm.define :ubuntu do |ubuntu|
75
64
  ubuntu.vm.box = "quantal64"
76
- debian_like_configs.call ubuntu
77
65
  configure_private_network.call ubuntu, 10
66
+
67
+ initial_debian_setup.call(ubuntu)
68
+ install_nvm_and_rvm.call(ubuntu)
69
+
70
+ ubuntu.omnibus.chef_version = :latest
71
+ ubuntu.vm.provision :chef_solo do |chef|
72
+ chef.add_recipe "java::oracle"
73
+ chef.json = {
74
+ :java => {
75
+ :oracle => {
76
+ :accept_oracle_download_terms => true
77
+ }
78
+ }
79
+ }
80
+ end
78
81
  end
79
82
 
80
83
  config.vm.define :lucid do |lucid|
81
84
  lucid.vm.box = "lucid64"
82
- debian_like_configs.call lucid
85
+ # Disable NFS
86
+ lucid.cache.synced_folder_opts = { }
83
87
  configure_private_network.call lucid, 11
88
+
89
+ initial_debian_setup.call(lucid, 'git-core')
90
+ install_nvm_and_rvm.call(lucid)
84
91
  end
85
92
 
86
93
  config.vm.define :debian do |debian|
87
94
  debian.vm.box = "squeeze64"
88
95
  debian.vm.box_url = 'http://f.willianfernandes.com.br/vagrant-boxes/DebianSqueeze64.box'
89
- debian_like_configs.call debian
90
96
  configure_private_network.call debian, 12
97
+
98
+ initial_debian_setup.call(debian)
99
+ install_nvm_and_rvm.call(debian)
91
100
  end
92
101
 
93
102
  config.vm.define :centos do |centos|
94
103
  centos.vm.box = 'centos6_64'
95
104
  centos.vm.box_url = 'http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130309.box'
96
105
  configure_private_network.call centos, 13
97
- # Here we have the RubyGems cache bucket configured to the right path, so we
98
- # bundle the project
106
+
99
107
  centos.vm.provision :shell, inline: '
100
- yum install -y libffi-devel ruby-devel git
101
- HOME=/home/vagrant su -p vagrant -l -c "cd /vagrant && bundle"'
108
+ (
109
+ mkdir -p /tmp/epel
110
+ cd /tmp/epel
111
+ wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
112
+ wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
113
+ sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
114
+ )
115
+ yum install -y libffi-devel ruby-devel git
116
+ '
117
+ centos.vm.provision :shell, inline: 'gem install bundler'
102
118
  end
103
119
 
104
120
  config.vm.define :arch do |arch|
105
121
  arch.vm.box = 'arch64'
106
- arch.vm.box_url = 'http://vagrant.pouss.in/archlinux_2012-07-02.box'
107
- configure_private_network.call arch, 14
108
- arch.vm.provision :shell, inline: '
109
- pacman -Syu --noconfirm libffi git
110
- HOME=/home/vagrant su -p vagrant -l -c "cd /vagrant && bundle"'
122
+ arch.vm.box_url = 'https://dl.dropboxusercontent.com/u/6750592/Arch_Linux_2013.11_x64.box'
123
+ # Disable NFS
124
+ arch.cache.synced_folder_opts = { }
125
+
126
+ arch.vm.provision :shell, inline: 'pacman -Syu --noconfirm libffi git ruby && gem install bundler'
111
127
  end
112
128
 
113
- # Please note that we are not able to install chef on the VM, so when bringing
114
- # this up we should always pass in `--provision-with=shell`
115
- #
116
- # TODO: Find out how to install chef on this or other box or find one that has
117
- # it pre installed
118
129
  config.vm.define :opensuse do |suse|
119
130
  suse.vm.box = 'opensuse-12'
120
131
  suse.vm.box_url = 'http://sourceforge.net/projects/opensusevagrant/files/12.3/opensuse-12.3-64.box/download'
121
- configure_private_network.call suse, 15
122
- suse.cache.enable_nfs = false
123
- # This seems to not be working
124
- suse.omnibus.chef_version = nil
132
+ # Disable NFS
133
+ suse.cache.synced_folder_opts = { }
134
+
125
135
  suse.vm.provision :shell, inline: 'time zypper install -y git'
126
136
  end
127
137
  end