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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +33 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +59 -34
- data/LICENSE.txt +1 -1
- data/README.md +27 -10
- data/development/Cheffile.lock +1 -5
- data/development/Vagrantfile +81 -71
- data/docs/buckets/apt-lists.md +18 -0
- data/docs/how-does-it-work.md +5 -6
- data/docs/index.md +24 -5
- data/docs/template.html +1 -0
- data/docs/usage.md +81 -28
- data/lib/vagrant-cachier/action/clean.rb +1 -1
- data/lib/vagrant-cachier/action/configure_bucket_root.rb +46 -0
- data/lib/vagrant-cachier/action/install_buckets.rb +47 -0
- data/lib/vagrant-cachier/bucket.rb +55 -0
- data/lib/vagrant-cachier/bucket/apt.rb +3 -12
- data/lib/vagrant-cachier/bucket/apt_cacher.rb +1 -13
- data/lib/vagrant-cachier/bucket/apt_lists.rb +24 -0
- data/lib/vagrant-cachier/bucket/chef.rb +1 -14
- data/lib/vagrant-cachier/bucket/composer.rb +1 -14
- data/lib/vagrant-cachier/bucket/gem.rb +4 -17
- data/lib/vagrant-cachier/bucket/npm.rb +1 -14
- data/lib/vagrant-cachier/bucket/pacman.rb +1 -14
- data/lib/vagrant-cachier/bucket/rvm.rb +4 -17
- data/lib/vagrant-cachier/bucket/yum.rb +4 -15
- data/lib/vagrant-cachier/bucket/zypper.rb +4 -15
- data/lib/vagrant-cachier/cap/debian/apt_lists_dir.rb +13 -0
- data/lib/vagrant-cachier/capabilities.rb +64 -0
- data/lib/vagrant-cachier/config.rb +35 -10
- data/lib/vagrant-cachier/hooks.rb +27 -0
- data/lib/vagrant-cachier/plugin.rb +12 -80
- data/lib/vagrant-cachier/version.rb +1 -1
- data/locales/en.yml +3 -7
- data/vagrant-cachier.gemspec +11 -1
- metadata +20 -12
- data/lib/vagrant-cachier/action/ensure_single_cache_root.rb +0 -64
- data/lib/vagrant-cachier/errors.rb +0 -9
- data/lib/vagrant-cachier/provision_ext.rb +0 -74
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 307983515bc00363631b1742d531e79f2fb24e8e
         | 
| 4 | 
            +
              data.tar.gz: 6bebf0f7c9e887566d4f1161506d461ae43f3b06
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 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:  | 
| 3 | 
            +
              revision: 8ae82e2c57b085a030137a40e9b3d232f42e5117
         | 
| 4 4 | 
             
              specs:
         | 
| 5 | 
            -
                vagrant-global-status (0.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:  | 
| 9 | 
            +
              revision: 1083f100adc4cf1bd20e7eb794ecfda94ef8b365
         | 
| 10 10 | 
             
              specs:
         | 
| 11 | 
            -
                vagrant-lxc (0. | 
| 11 | 
            +
                vagrant-lxc (0.7.1.dev)
         | 
| 12 12 |  | 
| 13 13 | 
             
            GIT
         | 
| 14 14 | 
             
              remote: git://github.com/fgrehm/vagrant-pristine.git
         | 
| 15 | 
            -
              revision:  | 
| 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:  | 
| 21 | 
            +
              revision: 4f0eb9504cc786d5a57a43814427e8eb35407a4c
         | 
| 22 | 
            +
              tag: v1.4.3
         | 
| 22 23 | 
             
              specs:
         | 
| 23 | 
            -
                vagrant (1.3 | 
| 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 ( | 
| 30 | 
            +
                  net-ssh (>= 2.6.6, < 2.8.0)
         | 
| 30 31 |  | 
| 31 32 | 
             
            PATH
         | 
| 32 33 | 
             
              remote: .
         | 
| 33 34 | 
             
              specs:
         | 
| 34 | 
            -
                vagrant-cachier (0. | 
| 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. | 
| 41 | 
            -
                   | 
| 42 | 
            -
                   | 
| 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 | 
            -
                   | 
| 45 | 
            -
                  mixlib- | 
| 46 | 
            -
                  mixlib- | 
| 47 | 
            -
                  mixlib- | 
| 48 | 
            -
                  mixlib- | 
| 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 ( | 
| 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. | 
| 58 | 
            -
                 | 
| 59 | 
            -
                 | 
| 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. | 
| 77 | 
            +
                librarian (0.1.1)
         | 
| 63 78 | 
             
                  highline
         | 
| 64 79 | 
             
                  thor (~> 0.15)
         | 
| 65 | 
            -
                librarian-chef (0.0. | 
| 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 | 
            -
                 | 
| 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. | 
| 74 | 
            -
                mixlib-config ( | 
| 89 | 
            +
                mixlib-cli (1.4.0)
         | 
| 90 | 
            +
                mixlib-config (2.1.0)
         | 
| 75 91 | 
             
                mixlib-log (1.6.0)
         | 
| 76 | 
            -
                mixlib-shellout (1. | 
| 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. | 
| 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. | 
| 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 | 
            -
                 | 
| 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. | 
| 123 | 
            +
                vagrant-librarian-chef (0.1.4)
         | 
| 99 124 | 
             
                  librarian-chef
         | 
| 100 | 
            -
                vagrant-omnibus (1.1 | 
| 101 | 
            -
                yajl-ruby (1. | 
| 125 | 
            +
                vagrant-omnibus (1.2.1)
         | 
| 126 | 
            +
                yajl-ruby (1.2.0)
         | 
| 102 127 |  | 
| 103 128 | 
             
            PLATFORMS
         | 
| 104 129 | 
             
              ruby
         | 
    
        data/LICENSE.txt
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -1,5 +1,7 @@ | |
| 1 1 | 
             
            # vagrant-cachier
         | 
| 2 2 |  | 
| 3 | 
            +
            [](http://badge.fury.io/rb/vagrant-cachier) [](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. | 
| 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 | 
            -
               | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 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 | 
            -
            ##  | 
| 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 | 
            -
            [](https://bitdeli.com/free "Bitdeli Badge")
         | 
    
        data/development/Cheffile.lock
    CHANGED
    
    
    
        data/development/Vagrantfile
    CHANGED
    
    | @@ -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. | 
| 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 | 
            -
               | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 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 | 
            -
               | 
| 66 | 
            -
                 | 
| 67 | 
            -
             | 
| 68 | 
            -
             | 
| 69 | 
            -
             | 
| 70 | 
            -
             | 
| 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 | 
            -
                 | 
| 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 | 
            -
             | 
| 98 | 
            -
                # bundle the project
         | 
| 106 | 
            +
             | 
| 99 107 | 
             
                centos.vm.provision :shell, inline: '
         | 
| 100 | 
            -
             | 
| 101 | 
            -
                     | 
| 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 = ' | 
| 107 | 
            -
                 | 
| 108 | 
            -
                arch. | 
| 109 | 
            -
             | 
| 110 | 
            -
             | 
| 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 | 
            -
                 | 
| 122 | 
            -
                suse.cache. | 
| 123 | 
            -
             | 
| 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
         |