Code Monkey home page Code Monkey logo

vagrant-r10k's Introduction

Vagrant::R10k

Build Status Code Coverage Code Climate Gem Version Total Downloads Github Issues Project Status: Unsupported – The project has reached a stable, usable state but the author(s) have ceased all work on it. A new maintainer may be desired.

vagrant-r10k is a Vagrant 1.2+ middleware plugin to allow you to have just a Puppetfile and manifests in your vagrant project, and pull in the required modules via r10k. This plugin only works with the 'puppet' provisioner, not a puppet server. It expects you to have a Puppetfile in the same repository as your Vagrantfile.

Important Note: I no longer use this project anywhere, and am no longer able to maintain it. If anyone is interested in taking over as maintainer, please contact me.

Installation

$ vagrant plugin install vagrant-r10k

Note that if you include modules from a (the) forge in your Puppetfile, i.e. in the format

mod 'username/modulename'

instead of just git references, you will need the puppet rubygem installed and available. It is not included in the Gemfile so that users who only use git references won't have a new/possibly conflicting Puppet installation.

Usage

Add the following to your Vagrantfile, before the puppet section:

config.r10k.puppet_dir = 'dir' # the parent directory that contains your module directory and Puppetfile
config.r10k.puppetfile_path = 'dir/Puppetfile' # the path to your Puppetfile, within the repo

For the following example directory structure:

.
├── README.md
├── Vagrantfile
├── docs
│   └── foo.md
├── puppet
│   ├── Puppetfile
│   ├── manifests
│   │   └── default.pp
│   └── modules
└── someproject
    └── foo.something

The configuration for r10k and puppet would look like:

# r10k plugin to deploy puppet modules
config.r10k.puppet_dir = "puppet"
config.r10k.puppetfile_path = "puppet/Puppetfile"

# Provision the machine with the appliction
config.vm.provision "puppet" do |puppet|
  puppet.manifests_path = "puppet/manifests"
  puppet.manifest_file  = "default.pp"
  puppet.module_path = "puppet/modules"
end

If you provide an array of directories in puppet.module_path, vagrant-r10k will use the first directory listed for auto configuration. If you want to let r10k use a different directory, see below.

Puppet Forge Modules in Puppetfile

In order to prevent conflicts with other plugins and allow you to use whatever Puppet version you need, puppet itself is not included in this plugin. This means that, as-is, this plugin can't install Forge modules in your Puppetfile, only modules from Git or SVN. This is because installing Forge modules requires puppet itself to download the module.

The two possible ways to deal with this are:

  1. Only use git or svn repo references in your Puppetfile.
  2. Install puppet into Vagrant's gems

For #2, installing puppet into Vagrant's gems, simply vagrant plugin install puppet; for further information, see the vagrant plugin documentation. If you do this, you should probably ensure that puppet is present by putting something like this at the top of your Vagrantfile:

# test that puppet is installed as a Vagrant plugin
# you can't use ``Vagrant.has_plugin?("puppet")`` because Vagrant's built-in
# Puppet Provisioner provides a plugin named "puppet", so this always evaluates to true.
begin
  gem "puppet"
rescue Gem::LoadError
  raise "puppet is not installed in vagrant gems! please run 'vagrant plugin install puppet'"
end

If you want to check for a specific version of Puppet, you can replace the content of the begin block with something like:

  gem "puppet", ">=3.8"

Usage with explicit path to module installation directory

Add the following to your Vagrantfile, before the puppet section:

config.r10k.puppet_dir = 'dir' # the parent directory that contains your module directory and Puppetfile
config.r10k.puppetfile_path = 'dir/Puppetfile' # the path to your Puppetfile, within the repo
config.r10k.module_path = 'dir/moduledir' # the path where r10k should install its modules (should be same / one of those in puppet provisioner, will be checked)

For the following example directory structure:

.
├── README.md
├── Vagrantfile
├── docs
│   └── foo.md
├── puppet
│   ├── Puppetfile
│   ├── manifests
│   │   └── default.pp
│   ├── modules # your own modules
│   └── vendor # modules installed by r10k
└── someproject
└── foo.something

The configuration for r10k and puppet would look like:

# r10k plugin to deploy puppet modules
config.r10k.puppet_dir = "puppet"
config.r10k.puppetfile_path = "puppet/Puppetfile"
config.r10k.module_path = "puppet/vendor"

# Provision the machine with the appliction
config.vm.provision "puppet" do |puppet|
  puppet.manifests_path = "puppet/manifests"
  puppet.manifest_file  = "default.pp"
  puppet.module_path = ["puppet/modules", "puppet/vendor"]
end

Usage With Puppet4 Environment-Based Provisioner

Puppet4 discontinues use of the manifest_file and manifests_path parameters, and also makes the module_path parameter optional for Puppet. In cases where only environment and environment_path are specified, module_path will be parsed from the environment's environment.conf.

vagrant-r10k does not handle parsing environment.conf; you must still specify the module_path for r10k to deploy modules into.

Here is an example Vagrantfile (taken from vagrant-r10k's acceptance tests) for use with environment-based configuration. Note that config.r10k.module_path is still specified. You can see the directory structure of this example here.

Vagrant.configure("2") do |config|
  config.vm.box = "vagrantr10kspec"
  config.vm.network "private_network", type: "dhcp"

  # r10k plugin to deploy puppet modules
  config.r10k.puppet_dir = "environments/myenv"
  config.r10k.puppetfile_path = "environments/myenv/Puppetfile"
  config.r10k.module_path = "environments/myenv/modules"

  # Provision the machine with the appliction
  config.vm.provision "puppet" do |puppet|
    puppet.environment = "myenv"
    puppet.environment_path  = "environments"
  end
end

Getting Help

Bug reports, feature requests, and pull requests are always welcome. At this time, the GitHub Issues Tracker is the only place for support, so questions and comments are welcome there as well, but please be sure they haven't already been asked and answered.

Bug reports should include the following information in order to be investigated:

  1. A detailed description of the problem, including the behavior you expected and the actual behavior that you're observing.
  2. The output of vagrant plugin list showing all of the plugins you're running and their versions.
  3. The versions of Ruby (ruby --version) and Vagrant (vagrant --version) itself that you're running.
  4. A copy of the Vagrantfile that was being used. Please include all lines in it; if you have any confidential or proprietary information, feel free to replace usernames, passwords, URLs, IPs, etc. with "X"s, but please don't remove large portions of it.
  5. A debug-level log of the command you're having problems with. i.e. if your problem is experienced when running vagrant up, please include the full output of VAGRANT_LOG=debug vagrant up.

Contributing

  1. Fork it ( https://github.com/jantman/vagrant-r10k/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Add yourself to the "Contributors" list below.
  5. Push to the branch (git push origin my-new-feature)
  6. Create a new Pull Request

Contributors

Development

Note that developing vagrant plugins requires ruby 2.0.0 or newer. A .ruby-version is provided to get rvm to use 2.1.1.

Unit Tests

These will be automatically run by TravisCI for any pull requests or commits to the repository. To run manually:

bundle install --path vendor
bundle exec rake spec

Acceptance Tests

Unfortunately, "acceptance" testing Vagrant requires the various providers be functional; i.e. to test the VMWare Providers requires both a license for them from Hashicorp, and the VMWare products themselves. Similarly, testing the AWS providers requires an AWS account and actually running EC2 instances. As such, acceptance tests are provided separately for each provider.

Note that the acceptance tests are tested with bundler 1.7.14. Also note that the first time the VMWare provider is run in a given installation, it will present an interactive sudo prompt in order to be able to interact with VMWare.

Running Virtualbox acceptance tests:

bundle exec rake acceptance:virtualbox

When tests fail, they leave Virtualbox hostonlyifs around; this can quickly clutter up the system and cause other problems. As a result, after the virtualbox tests, we invoke the Vagrant VirtualBox Provider's delete_unused_host_only_networks method. This can also be manually run via bundle exec rake clean_vbox.

These tests may generate a lot of output; since there's no nice standalone junit XML viewer, it may be helpful to run the tests as:

bundle exec rake acceptance:virtualbox 2>&1 | tee acceptance.out

And then examine acceptance.out as needed.

Note that the vmware-workstation provider acceptance tests are not currently functional; I've only been able to get the VirtualBox acceptance tests working. If many users report vmware-specific problems, I'll give the tests another try. Helpful information for them is available at http://www.codingonstilts.com/2013/07/how-to-bundle-exec-vagrant-up-with.html and https://groups.google.com/d/topic/vagrant-up/J8J6LmhzBqM/discussion I had these working at some point, but have been unable to get them working since; it seems that (a bit painfully and ironically), mitchellh's vagrant-spec doesn't seem to work cleanly with Hashicorp's paid/licensed Vagrant providers.

Running (currently broken) VMWare Workstation acceptance tests:

bundle exec rake acceptance:vmware_workstation

Manually Testing Vagrant

For manual testing:

bundle install --path vendor
VAGRANT_LOG=debug bundle exec vagrant up

To use an existing project's Vagrantfile, you can just specify the directory that the Vagrantfile is in using the VAGRANT_CWD environment variable (i.e. prepend VAGRANT_CWD=/path/to/project to the above command).

Note that this will not work easily with the VMWare provider, or any other Hashicorp paid/licensed provider.

Debugging

Exporting VAGRANT_LOG=debug will also turn on debug-level logging for r10k.

Releasing

  1. Ensure all tests are passing, coverage is acceptable, etc.
  2. Increment the version number in lib/vagrant-r10k/version.rb
  3. Update CHANGES.md
  4. Push those changes to origin.
  5. bundle exec rake build
  6. bundle exec rake release

Acknowlegements

Thanks to the following people:

vagrant-r10k's People

Contributors

cdenneen avatar jantman avatar poikilotherm avatar robmack avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

vagrant-r10k's Issues

Problems with plugin sync

When trying to launch a vagrant up and using config elements like the following, I get the error in the debug log -

config.r10k.puppet_dir = "."
config.r10k.puppetfile_path = "Puppetfile"
config.r10k.module_path = "modules"

and the following Puppetfile

mod 'puppetlabs/ntp'
mod 'basti1302/windows_path'
mod 'rismoney/chocolatey'

The short of the error is the following

[R10K::TaskRunner - ERROR] Task #<R10K::Task::Module::Sync:0x00000102150498> failed while running: Command puppet module --modulepath
/Users/frizop/Documents/vagrant-windows/modules install --force puppetlabs/ntp exited with 1:
/Applications/Vagrant/embedded/gems/gems/bundler-1.6.6/lib/bundler/rubygems_integration.rb:256:in 
`block in replace_gem': puppet is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
    from /usr/local/var/rbenv/versions/2.0.0-p247/bin/puppet:22:in `<main>'

So I'm pretty confused here, if I manually run the puppet module command above it works fine, if I run r10k puppetfile install it installs fine, but for some reason (even after uninstalling and reinstalling the vagrant r10k plugin) it still doesn't work, any help?

And the debug log:

    DEBUG subprocess: Waiting for process to exit. Remaining to timeout: 32000
DEBUG subprocess: Exit status: 0
 INFO warden: Calling OUT action: #<VagrantPlugins::ProviderVirtualBox::Action::Created:0x000001024a7a88>
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 5 hooks defined.
 INFO runner: Running action: #<Vagrant::Action::Warden:0x00000102540f30>
 INFO warden: Calling IN action: #<Proc:0x0000010258bb98@/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:94 (lambda)>
 INFO warden: Calling IN action: #<Proc:0x00000102540e90@/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:94 (lambda)>
 INFO warden: Calling IN action: #<VagrantPlugins::R10k::Modulegetter:0x0000010207aca8>
 INFO interface: info: vagrant-r10k: Beginning r10k deploy of puppet modules into /Users/User1/Documents/vagrant-windows/modules using /Users/User1/Documents/vagrant-windows/Puppetfile
 INFO interface: info: ==> build: vagrant-r10k: Beginning r10k deploy of puppet modules into /Users/User1/Documents/vagrant-windows/modules using /Users/User1/Documents/vagrant-windows/Puppetfile
==> build: vagrant-r10k: Beginning r10k deploy of puppet modules into /Users/User1/Documents/vagrant-windows/modules using /Users/User1/Documents/vagrant-windows/Puppetfile
[R10K::Task::Puppetfile::Sync - INFO] Loading modules from Puppetfile into queue
[R10K::Task::Module::Sync - INFO] Deploying chocolatey into /Users/User1/Documents/vagrant-windows/modules
[R10K::Task::Module::Sync - INFO] Deploying windows_path into /Users/User1/Documents/vagrant-windows/modules
[R10K::Task::Module::Sync - INFO] Deploying ntp into /Users/User1/Documents/vagrant-windows/modules
[R10K::Module::Forge - DEBUG] Execute: puppet module --modulepath /Users/User1/Documents/vagrant-windows/modules install --force puppetlabs/ntp
[R10K::Module::Forge - DEBUG] [puppet module --modulepath /Users/User1/Documents/vagrant-windows/modules install --force puppetlabs/ntp] STDERR: /Applications/Vagrant/embedded/gems/gems/bundler-1.6.6/lib/bundler/rubygems_integration.rb:256:in `block in replace_gem': puppet is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
    from /usr/local/var/rbenv/versions/2.0.0-p247/bin/puppet:22:in `<main>'
[R10K::TaskRunner - ERROR] Task #<R10K::Task::Module::Sync:0x00000102447048> failed while running: Command puppet module --modulepath /Users/User1/Documents/vagrant-windows/modules install --force puppetlabs/ntp exited with 1: /Applications/Vagrant/embedded/gems/gems/bundler-1.6.6/lib/bundler/rubygems_integration.rb:256:in `block in replace_gem': puppet is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
    from /usr/local/var/rbenv/versions/2.0.0-p247/bin/puppet:22:in `<main>'

[R10K::Task::Puppetfile::Purge - DEBUG] No stale modules in /Users/User1/Documents/vagrant-windows/modules
ERROR warden: Error occurred: RuntimeError: Command puppet module --modulepath /Users/User1/Documents/vagrant-windows/modules install --force puppetlabs/ntp exited with 1: /Applications/Vagrant/embedded/gems/gems/bundler-1.6.6/lib/bundler/rubygems_integration.rb:256:in `block in replace_gem': puppet is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
    from /usr/local/var/rbenv/versions/2.0.0-p247/bin/puppet:22:in `<main>'

 INFO warden: Beginning recovery process...
 INFO warden: Calling recover: #<Vagrant::Action::Builtin::Call:0x0000010207ae10>
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
 INFO warden: Recovery complete.
ERROR warden: Error occurred: RuntimeError: Command puppet module --modulepath /Users/User1/Documents/vagrant-windows/modules install --force puppetlabs/ntp exited with 1: /Applications/Vagrant/embedded/gems/gems/bundler-1.6.6/lib/bundler/rubygems_integration.rb:256:in `block in replace_gem': puppet is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
    from /usr/local/var/rbenv/versions/2.0.0-p247/bin/puppet:22:in `<main>'

 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
ERROR warden: Error occurred: RuntimeError: Command puppet module --modulepath /Users/User1/Documents/vagrant-windows/modules install --force puppetlabs/ntp exited with 1: /Applications/Vagrant/embedded/gems/gems/bundler-1.6.6/lib/bundler/rubygems_integration.rb:256:in `block in replace_gem': puppet is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
    from /usr/local/var/rbenv/versions/2.0.0-p247/bin/puppet:22:in `<main>'

 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
 INFO environment: Released process lock: machine-action-7158750c4ad0798b640156d433f681aa
 INFO environment: Running hook: environment_unload
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 5 hooks defined.
 INFO runner: Running action: #<Vagrant::Action::Builder:0x0000010265b848>
ERROR vagrant: Vagrant experienced an error! Details:
ERROR vagrant: #<VagrantPlugins::R10k::ErrorWrapper: RuntimeError: Command puppet module --modulepath /Users/User1/Documents/vagrant-windows/modules install --force puppetlabs/ntp exited with 1: /Applications/Vagrant/embedded/gems/gems/bundler-1.6.6/lib/bundler/rubygems_integration.rb:256:in `block in replace_gem': puppet is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
    from /usr/local/var/rbenv/versions/2.0.0-p247/bin/puppet:22:in `<main>'
>
ERROR vagrant: RuntimeError: Command puppet module --modulepath /Users/User1/Documents/vagrant-windows/modules install --force puppetlabs/ntp exited with 1: /Applications/Vagrant/embedded/gems/gems/bundler-1.6.6/lib/bundler/rubygems_integration.rb:256:in `block in replace_gem': puppet is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
    from /usr/local/var/rbenv/versions/2.0.0-p247/bin/puppet:22:in `<main>'

ERROR vagrant: /Users/User1/.vagrant.d/gems/gems/vagrant-r10k-0.1.1/lib/vagrant-r10k/modulegetter.rb:113:in `block in call'
/Users/User1/.vagrant.d/gems/gems/vagrant-r10k-0.1.1/lib/vagrant-r10k/modulegetter.rb:112:in `each'
/Users/User1/.vagrant.d/gems/gems/vagrant-r10k-0.1.1/lib/vagrant-r10k/modulegetter.rb:112:in `call'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:34:in `call'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:34:in `call'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:34:in `call'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:34:in `call'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:34:in `call'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/builder.rb:116:in `call'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/runner.rb:66:in `block in run'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/util/busy.rb:19:in `busy'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/runner.rb:66:in `run'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/builtin/call.rb:53:in `call'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:34:in `call'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in `call'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:34:in `call'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/builder.rb:116:in `call'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/runner.rb:66:in `block in run'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/util/busy.rb:19:in `busy'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/runner.rb:66:in `run'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/machine.rb:196:in `action_raw'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/machine.rb:173:in `block in action'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/environment.rb:474:in `lock'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/machine.rb:161:in `call'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/machine.rb:161:in `action'
/Applications/Vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/batch_action.rb:82:in `block (2 levels) in run'
/Applications/Vagrant/embedded/gems/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `call'
/Applications/Vagrant/embedded/gems/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `block in create_with_logging_context'
 INFO interface: error: RuntimeError: Command puppet module --modulepath /Users/User1/Documents/vagrant-windows/modules install --force puppetlabs/ntp exited with 1: /Applications/Vagrant/embedded/gems/gems/bundler-1.6.6/lib/bundler/rubygems_integration.rb:256:in `block in replace_gem': puppet is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
    from /usr/local/var/rbenv/versions/2.0.0-p247/bin/puppet:22:in `<main>'

RuntimeError: Command puppet module --modulepath /Users/User1/Documents/vagrant-windows/modules install --force puppetlabs/ntp exited with 1: /Applications/Vagrant/embedded/gems/gems/bundler-1.6.6/lib/bundler/rubygems_integration.rb:256:in `block in replace_gem': puppet is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
    from /usr/local/var/rbenv/versions/2.0.0-p247/bin/puppet:22:in `<main>'

 INFO interface: Machine: error-exit ["VagrantPlugins::R10k::ErrorWrapper", "RuntimeError: Command puppet module --modulepath /Users/User1/Documents/vagrant-windows/modules install --force puppetlabs/ntp exited with 1: /Applications/Vagrant/embedded/gems/gems/bundler-1.6.6/lib/bundler/rubygems_integration.rb:256:in `block in replace_gem': puppet is not part of the bundle. Add it to Gemfile. (Gem::LoadError)\n\tfrom /usr/local/var/rbenv/versions/2.0.0-p247/bin/puppet:22:in `<main>'\n"]
[User1@profail]~/Documents/vagrant-windows% 

Can't power up a VM if Internet connection is down

Errors when power up a VM with vagrant-r10k plugin used and Internet connection is down:

==> default: vagrant-r10k: Beginning r10k deploy of puppet modules into /home/tresi02/git/projeqtorquebec/puppet/externalmodules using /home/tresi02/git/projeqtorquebec/puppet/Puppetfile
[R10K::TaskRunner - ERROR] Task #R10K::Task::Module::Sync:0x000000019db4e8 failed while running: Couldn't update git cache for https://github.com/saz/puppet-timezone.git: "fatal: unable to access 'https://github.com/saz/puppet-timezone.git/': Could not resolve host: github.com"
RuntimeError: Couldn't update git cache for https://github.com/saz/puppet-timezone.git: "fatal: unable to access 'https://github.com/saz/puppet-timezone.git/': Could not resolve host: github.com"

I don't know if it is a limitation of R10K (the version used by vagrant-r10k) or if it is something that we can fix in vagrant-r10k directly.

undefined method `original'

Ruby : 2.4.3
Vagrant : 2.0.2
Vagrant -r10k : 0.4.1

vagrant up

Called 'load_file' without the :safe option -- defaulting to safe mode.
You can avoid this warning in the future by setting the SafeYAML::OPTIONS[:default_mode] option (to :safe or :unsafe).
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Invalid syntax in Puppetfile at /home/paul/work/cosmos/vagrant/vagrant-mantis/Puppetfile
/home/paul/.vagrant.d/gems/2.4.3/gems/vagrant-r10k-0.4.1/lib/vagrant-r10k/action/validate.rb:37:in rescue in call': undefined method original' for #<NoMethodError: undefined method []' for nil:NilClass> (NoMethodError) from /home/paul/.vagrant.d/gems/2.4.3/gems/vagrant-r10k-0.4.1/lib/vagrant-r10k/action/validate.rb:33:in call'
from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in call' from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/builtin/config_validate.rb:25:in call'
from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in call' from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:95:in block in finalize_action'
from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in call' from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/builtin/handle_box.rb:56:in call'
from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in call' from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:95:in block in finalize_action'
from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in call' from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/builder.rb:116:in call'
from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in block in run' from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/util/busy.rb:19:in busy'
from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in run' from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/builtin/call.rb:53:in call'
from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in call' from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in call'
from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in call' from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/builder.rb:116:in call'
from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in block in run' from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/util/busy.rb:19:in busy'
from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in run' from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/machine.rb:227:in action_raw'
from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/machine.rb:202:in block in action' from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/environment.rb:592:in lock'
from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/machine.rb:188:in call' from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/machine.rb:188:in action'
from /opt/vagrant/embedded/gems/gems/vagrant-2.0.2/lib/vagrant/batch_action.rb:82:in `block (2 levels) in run'

I tried reinstalling Vagrant, and removing the .vagrant.d directory in my home and reinstalling the modules but nothing seems to help.

No validation of nil module_path

See #18 for an example.

If module_path isn't defined in r10k or puppet config, it ends up being nil, but this isn't caught in either validation or at runtime. The result is that, though the debug logs are clear:

 INFO interface: info: vagrant-r10k: Building the r10k module path with puppet provisioner module_path "". (if module_path is an array, first element is used)
 INFO interface: info: ==> default: vagrant-r10k: Building the r10k module path with puppet provisioner module_path "". (if module_path is an array, first element is used)

The run will fail with an unhelpful error:

/vagrant-r10k-0.2.0/lib/vagrant-r10k/modulegetter.rb:90:in `join': no implicit conversion of nil into String (TypeError)

and then a traceback.

Support puppet_server provisioner

This plugin only works with the 'puppet' provisioner, not a puppet server.

Is there a specific reason as to why puppet_server is not supported ?

Thanks

Error occurred: no implicit conversion of nil into String

Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
  config.vm.box = "puppetlabs/centos-7.0-64-puppet"
  config.vm.box_version = "= 1.0.2"

  config.r10k.puppet_dir = "puppet"
  config.r10k.puppetfile_path = "puppet/Puppetfile"
  config.r10k.module_path = "puppet/modules"

  if Vagrant.has_plugin?("vagrant.vbguest")
    config.vbguest.auto_update = false
  end
  config.vm.provision :puppet do |puppet|
    puppet.environment = "puppet"
    puppet.environment_path = "."
    puppet.module_path = ["puppet/site", "puppet/modules"]
  end
  config.vm.provider "virtualbox" do |v|
    v.customize ["modifyvm", :id, "--cpus", "2"]
    v.customize ["modifyvm", :id, "--memory", "512"]
  end
end

vagrant debug output:

$ vagrant up --debug
 INFO global: Vagrant version: 1.7.4
 INFO global: Ruby version: 2.0.0
 INFO global: RubyGems version: 2.0.14
 INFO global: VAGRANT_OLD_ENV_TERM_PROGRAM="iTerm.app"
 INFO global: VAGRANT_OLD_ENV_LESS_TERMCAP_ue="\e[0m"
 INFO global: VAGRANT_OLD_ENV_BUNDLE_JOBS="8"
 INFO global: VAGRANT_OLD_ENV_BOXEN_SETUP_VERSION="4f39d94"
 INFO global: VAGRANT_EXECUTABLE="/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/bin/vagrant"
 INFO global: VAGRANT_OLD_ENV_Apple_PubSub_Socket_Render="/private/tmp/com.apple.launchd.oPnXFU3LG8/Render"
 INFO global: VAGRANT_OLD_ENV_LESS_TERMCAP_so="\e[00;47;30m"
 INFO global: VAGRANT_OLD_ENV_MANPATH="/opt/boxen/homebrew/share/man:"
 INFO global: VAGRANT_OLD_ENV_BOXEN_GITHUB_LOGIN="cdenneen"
 INFO global: VAGRANT_OLD_ENV_ITERM_PROFILE="Default"
 INFO global: VAGRANT_OLD_ENV_XPC_SERVICE_NAME="0"
 INFO global: VAGRANT_OLD_ENV_BOXEN_LOG_DIR="/opt/boxen/log"
 INFO global: VAGRANT_OLD_ENV_BOXEN_HOMEBREW_BOTTLE_URL="/homebrew"
 INFO global: VAGRANT_OLD_ENV_XPC_FLAGS="0x0"
 INFO global: VAGRANT_OLD_ENV_GREP_COLOR="1;33"
 INFO global: VAGRANT_OLD_ENV_LDFLAGS="-L/opt/boxen/homebrew/lib"
 INFO global: VAGRANT_OLD_ENV_PWD="/Users/cdenneen/src/gitlab/module_testing"
 INFO global: VAGRANT_OLD_ENV_BOXEN_BIN_DIR="/opt/boxen/bin"
 INFO global: VAGRANT_OLD_ENV_BOXEN_SRC_DIR="/Users/cdenneen/src"
 INFO global: VAGRANT_OLD_ENV_CFLAGS="-I/opt/boxen/homebrew/include"
 INFO global: VAGRANT_OLD_ENV_RBENV_ROOT="/opt/boxen/rbenv"
 INFO global: VAGRANT_OLD_ENV_LOGNAME="cdenneen"
 INFO global: VAGRANT_OLD_ENV_LESS_TERMCAP_mb="\e[01;31m"
 INFO global: VAGRANT_OLD_ENV_BOXEN_ENV_DIR="/opt/boxen/env.d"
 INFO global: VAGRANT_OLD_ENV_BOXEN_SOCKET_DIR="/opt/boxen/data/project-sockets"
 INFO global: VAGRANT_OLD_ENV__="/usr/local/bin/vagrant"
 INFO global: VAGRANT_OLD_ENV_LESS_TERMCAP_me="\e[0m"
 INFO global: VAGRANT_OLD_ENV_BOXEN_HOME="/opt/boxen"
 INFO global: VAGRANT_OLD_ENV_HOME="/Users/cdenneen"
 INFO global: VAGRANT_OLD_ENV_USER="cdenneen"
 INFO global: VAGRANT_OLD_ENV_LESS_TERMCAP_us="\e[01;32m"
 INFO global: VAGRANT_OLD_ENV_LS_COLORS="di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:"
 INFO global: VAGRANT_OLD_ENV_GREP_COLORS="mt=37;45"
 INFO global: VAGRANT_OLD_ENV_BOXEN_CONFIG_DIR="/opt/boxen/config"
 INFO global: VAGRANT_OLD_ENV_PATH="bin:/opt/boxen/rbenv/shims:/opt/boxen/rbenv/bin:/opt/boxen/ruby-build/bin:node_modules/.bin:/opt/boxen/nodenv/shims:/opt/boxen/nodenv/bin:/opt/boxen/homebrew/bin:/opt/boxen/homebrew/sbin:/opt/boxen/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/cdenneen/.yadr/bin:/Users/cdenneen/.yadr/bin/yadr"
 INFO global: VAGRANT_OLD_ENV_SHELL="/bin/zsh"
 INFO global: VAGRANT_OLD_ENV___CF_USER_TEXT_ENCODING="0x1F7:0:0"
 INFO global: VAGRANT_OLD_ENV_BOXEN_DOWNLOAD_URL_BASE=""
 INFO global: VAGRANT_OLD_ENV_COLORFGBG="12;8"
 INFO global: VAGRANT_OLD_ENV_VISUAL="vim"
 INFO global: VAGRANT_OLD_ENV_BOXEN_DATA_DIR="/opt/boxen/data"
 INFO global: VAGRANT_OLD_ENV_NODENV_ROOT="/opt/boxen/nodenv"
 INFO global: VAGRANT_OLD_ENV_ENVPUPPET_BASEDIR="/Users/cdenneen/src/github/puppetlabs"
 INFO global: VAGRANT_OLD_ENV_TMPDIR="/var/folders/6n/gmsf88x13k98lwb4z45r1mjr0000gq/T/"
 INFO global: VAGRANT_OLD_ENV_TERM="xterm-256color"
 INFO global: VAGRANT_OLD_ENV_BROWSER="open"
 INFO global: VAGRANT_OLD_ENV_PAGER="less"
 INFO global: VAGRANT_OLD_ENV_LESS="-F -g -i -M -R -S -w -X -z-4"
 INFO global: VAGRANT_OLD_ENV_LSCOLORS="exfxcxdxbxGxDxabagacad"
 INFO global: VAGRANT_INSTALLER_ENV="1"
 INFO global: VAGRANT_OLD_ENV_LANG="en_US.UTF-8"
 INFO global: VAGRANT_OLD_ENV_SSH_AUTH_SOCK="/private/tmp/com.apple.launchd.4h3BVhggEm/Listeners"
 INFO global: VAGRANT_OLD_ENV_ITERM_SESSION_ID="w2t1p0"
 INFO global: VAGRANT_OLD_ENV_HOMEBREW_ROOT="/opt/boxen/homebrew"
 INFO global: VAGRANT_OLD_ENV_HOMEBREW_CACHE="/opt/boxen/cache/homebrew"
 INFO global: VAGRANT_OLD_ENV_OLDPWD="/Users/cdenneen/src/gitlab"
 INFO global: VAGRANT_OLD_ENV_EDITOR="vim"
 INFO global: VAGRANT_OLD_ENV_LESS_TERMCAP_md="\e[01;31m"
 INFO global: VAGRANT_INSTALLER_VERSION="2"
 INFO global: VAGRANT_INSTALLER_EMBEDDED_DIR="/opt/vagrant/embedded"
 INFO global: VAGRANT_OLD_ENV_SHLVL="1"
 INFO global: VAGRANT_OLD_ENV_LESS_TERMCAP_se="\e[0m"
 INFO global: VAGRANT_OLD_ENV_HOMEBREW_CASK_OPTS="--caskroom=/opt/homebrew-cask/Caskroom"
 INFO global: VAGRANT_INTERNAL_BUNDLERIZED="1"
 INFO global: VAGRANT_LOG="debug"
 INFO global: Plugins:
 INFO global:   - CFPropertyList = 2.2.8
 INFO global:   - bundler = 1.10.5
 INFO global:   - colored = 1.2
 INFO global:   - cri = 2.6.1
 INFO global:   - facter = 2.4.4
 INFO global:   - multipart-post = 2.0.0
 INFO global:   - faraday = 0.9.2
 INFO global:   - faraday_middleware = 0.9.2
 INFO global:   - multi_json = 1.11.2
 INFO global:   - faraday_middleware-multi_json = 0.0.6
 INFO global:   - json_pure = 1.8.3
 INFO global:   - hiera = 3.0.1
 INFO global:   - log4r = 1.1.10
 INFO global:   - mime-types = 1.25.1
 INFO global:   - puppet = 4.2.3
 INFO global:   - semantic_puppet = 0.1.1
 INFO global:   - r10k = 1.5.1
 INFO global:   - rest-client = 1.6.9
 INFO global:   - vagrant-bindfs = 0.4.3
 INFO global:   - vagrant-hostmanager = 1.6.1
 INFO global:   - vagrant-r10k = 0.4.0
 INFO global:   - vagrant-share = 1.1.4
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/box/plugin.rb
 INFO manager: Registered plugin: box command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/destroy/plugin.rb
 INFO manager: Registered plugin: destroy command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/global-status/plugin.rb
 INFO manager: Registered plugin: global-status command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/halt/plugin.rb
 INFO manager: Registered plugin: halt command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/help/plugin.rb
 INFO manager: Registered plugin: help command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/init/plugin.rb
 INFO manager: Registered plugin: init command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/list-commands/plugin.rb
 INFO manager: Registered plugin: list-commands command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/login/plugin.rb
 INFO manager: Registered plugin: vagrant-login
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/package/plugin.rb
 INFO manager: Registered plugin: package command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/plugin/plugin.rb
 INFO manager: Registered plugin: plugin command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/provision/plugin.rb
 INFO manager: Registered plugin: provision command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/push/plugin.rb
 INFO manager: Registered plugin: push command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/rdp/plugin.rb
 INFO manager: Registered plugin: rdp command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/reload/plugin.rb
 INFO manager: Registered plugin: reload command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/resume/plugin.rb
 INFO manager: Registered plugin: resume command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/ssh/plugin.rb
 INFO manager: Registered plugin: ssh command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/ssh_config/plugin.rb
 INFO manager: Registered plugin: ssh-config command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/status/plugin.rb
 INFO manager: Registered plugin: status command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/suspend/plugin.rb
 INFO manager: Registered plugin: suspend command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/up/plugin.rb
 INFO manager: Registered plugin: up command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/commands/version/plugin.rb
 INFO manager: Registered plugin: version command
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/communicators/ssh/plugin.rb
 INFO manager: Registered plugin: ssh communicator
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/communicators/winrm/plugin.rb
 INFO manager: Registered plugin: winrm communicator
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/arch/plugin.rb
 INFO manager: Registered plugin: Arch guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/atomic/plugin.rb
 INFO manager: Registered plugin: Atomic Host guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/coreos/plugin.rb
 INFO manager: Registered plugin: CoreOS guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/darwin/plugin.rb
 INFO manager: Registered plugin: Darwin guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/debian/plugin.rb
 INFO manager: Registered plugin: Debian guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/debian8/plugin.rb
 INFO manager: Registered plugin: Debian Jessie guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/esxi/plugin.rb
 INFO manager: Registered plugin: ESXi guest.
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/fedora/plugin.rb
 INFO manager: Registered plugin: Fedora guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/freebsd/plugin.rb
 INFO manager: Registered plugin: FreeBSD guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/funtoo/plugin.rb
 INFO manager: Registered plugin: Funtoo guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/gentoo/plugin.rb
 INFO manager: Registered plugin: Gentoo guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/linux/plugin.rb
 INFO manager: Registered plugin: Linux guest.
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/mint/plugin.rb
 INFO manager: Registered plugin: Mint guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/netbsd/plugin.rb
 INFO manager: Registered plugin: NetBSD guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/nixos/plugin.rb
 INFO manager: Registered plugin: NixOS guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/omnios/plugin.rb
 INFO manager: Registered plugin: OmniOS guest.
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/openbsd/plugin.rb
 INFO manager: Registered plugin: OpenBSD guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/photon/plugin.rb
 INFO manager: Registered plugin: VMware Photon guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/pld/plugin.rb
 INFO manager: Registered plugin: PLD Linux guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/redhat/plugin.rb
 INFO manager: Registered plugin: Red Hat Enterprise Linux guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/smartos/plugin.rb
 INFO manager: Registered plugin: SmartOS guest.
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/solaris/plugin.rb
 INFO manager: Registered plugin: Solaris guest.
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/solaris11/plugin.rb
 INFO manager: Registered plugin: Solaris 11 guest.
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/suse/plugin.rb
 INFO manager: Registered plugin: SUSE guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/tinycore/plugin.rb
 INFO manager: Registered plugin: TinyCore Linux guest.
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/ubuntu/plugin.rb
 INFO manager: Registered plugin: Ubuntu guest
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/guests/windows/plugin.rb
 INFO manager: Registered plugin: Windows guest.
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/hosts/arch/plugin.rb
 INFO manager: Registered plugin: Arch host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/hosts/bsd/plugin.rb
 INFO manager: Registered plugin: BSD host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/hosts/darwin/plugin.rb
 INFO manager: Registered plugin: Mac OS X host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/hosts/freebsd/plugin.rb
 INFO manager: Registered plugin: FreeBSD host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/hosts/gentoo/plugin.rb
 INFO manager: Registered plugin: Gentoo host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/hosts/linux/plugin.rb
 INFO manager: Registered plugin: Linux host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/hosts/null/plugin.rb
 INFO manager: Registered plugin: null host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/hosts/redhat/plugin.rb
 INFO manager: Registered plugin: Red Hat Enterprise Linux host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/hosts/slackware/plugin.rb
 INFO manager: Registered plugin: Slackware host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/hosts/suse/plugin.rb
 INFO manager: Registered plugin: SUSE host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/hosts/windows/plugin.rb
 INFO manager: Registered plugin: Windows host
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/kernel_v1/plugin.rb
 INFO manager: Registered plugin: kernel
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/kernel_v2/plugin.rb
 INFO manager: Registered plugin: kernel
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/providers/docker/plugin.rb
 INFO manager: Registered plugin: docker-provider
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/providers/hyperv/plugin.rb
 INFO manager: Registered plugin: Hyper-V provider
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/providers/virtualbox/plugin.rb
 INFO manager: Registered plugin: VirtualBox provider
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/provisioners/ansible/plugin.rb
 INFO manager: Registered plugin: ansible
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/provisioners/cfengine/plugin.rb
 INFO manager: Registered plugin: CFEngine Provisioner
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/provisioners/chef/plugin.rb
 INFO manager: Registered plugin: chef
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/provisioners/docker/plugin.rb
 INFO manager: Registered plugin: docker
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/provisioners/file/plugin.rb
 INFO manager: Registered plugin: file
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/provisioners/puppet/plugin.rb
 INFO manager: Registered plugin: puppet
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/provisioners/salt/plugin.rb
 INFO manager: Registered plugin: salt
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/provisioners/shell/plugin.rb
 INFO manager: Registered plugin: shell
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/pushes/atlas/plugin.rb
 INFO manager: Registered plugin: atlas
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/pushes/ftp/plugin.rb
 INFO manager: Registered plugin: ftp
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/pushes/heroku/plugin.rb
 INFO manager: Registered plugin: heroku
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/pushes/local-exec/plugin.rb
 INFO manager: Registered plugin: local-exec
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/pushes/noop/plugin.rb
 INFO manager: Registered plugin: noop
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/synced_folders/nfs/plugin.rb
 INFO manager: Registered plugin: NFS synced folders
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/synced_folders/rsync/plugin.rb
 INFO manager: Registered plugin: RSync synced folders
DEBUG global: Loading core plugin: /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/synced_folders/smb/plugin.rb
 INFO manager: Registered plugin: SMB synced folders
 INFO global: Loading plugins!
 INFO manager: Registered plugin: vagrant-share
 INFO manager: Registered plugin: HostManager
 INFO manager: Registered plugin: Bindfs
 INFO manager: Registered plugin: vagrant-r10k
 INFO vagrant: `vagrant` invoked: ["up", "--debug"]
DEBUG vagrant: Creating Vagrant environment
 INFO environment: Environment initialized (#<Vagrant::Environment:0x000001022354a8>)
 INFO environment:   - cwd: /Users/cdenneen/src/gitlab/module_testing
 INFO environment: Home path: /Users/cdenneen/.vagrant.d
 INFO environment: Local data path: /Users/cdenneen/src/gitlab/module_testing/.vagrant
DEBUG environment: Creating: /Users/cdenneen/src/gitlab/module_testing/.vagrant
 INFO environment: Running hook: environment_plugins_loaded
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 1 hooks defined.
 INFO runner: Running action: environment_plugins_loaded #<Vagrant::Action::Builder:0x00000101933b98>
 INFO environment: Running hook: environment_load
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 1 hooks defined.
 INFO runner: Running action: environment_load #<Vagrant::Action::Builder:0x00000101969838>
 INFO cli: CLI: [] "up" []
DEBUG cli: Invoking command class: VagrantPlugins::CommandUp::Command []
DEBUG command: 'Up' each target VM...
 INFO loader: Set :root = #<Pathname:/Users/cdenneen/src/gitlab/module_testing/Vagrantfile>
DEBUG loader: Populating proc cache for #<Pathname:/Users/cdenneen/src/gitlab/module_testing/Vagrantfile>
DEBUG loader: Load procs for pathname: /Users/cdenneen/src/gitlab/module_testing/Vagrantfile
 INFO loader: Loading configuration in order: [:home, :root]
DEBUG loader: Loading from: root (evaluating)
DEBUG config: vagrant-r10k-config: initialize
DEBUG provisioner: Provisioner defined:
DEBUG config: vagrant-r10k-config: initialize
DEBUG config: vagrant-r10k-config: initialize
DEBUG loader: Configuration loaded successfully, finalizing and returning
DEBUG push: finalizing
DEBUG command: Getting target VMs for command. Arguments:
DEBUG command:  -- names: ["default"]
DEBUG command:  -- options: {:provider=>nil}
DEBUG command: Finding machine that match name: default
 INFO loader: Set "2153179360_machine_default" = []
 INFO loader: Loading configuration in order: [:home, :root, "2153179360_machine_default"]
DEBUG loader: Loading from: root (cache)
DEBUG config: vagrant-r10k-config: initialize
DEBUG config: vagrant-r10k-config: initialize
DEBUG loader: Configuration loaded successfully, finalizing and returning
DEBUG push: finalizing
 INFO base: VBoxManage path: VBoxManage
 INFO subprocess: Starting process: ["/usr/local/bin/VBoxManage", "--version"]
DEBUG subprocess: Command not in installer, not touching env vars.
 INFO subprocess: Command not in installer, restoring original environment...
DEBUG subprocess: Selecting on IO
DEBUG subprocess: stdout: 4.3.28r100309
DEBUG subprocess: Waiting for process to exit. Remaining to timeout: 32000
DEBUG subprocess: Exit status: 0
DEBUG meta: Finding driver for VirtualBox version: 4.3.28
 INFO meta: Using VirtualBox driver: VagrantPlugins::ProviderVirtualBox::Driver::Version_4_3
 INFO base: VBoxManage path: VBoxManage
 INFO environment: Getting machine: default (virtualbox)
 INFO environment: Uncached load of machine.
 INFO base: VBoxManage path: VBoxManage
 INFO subprocess: Starting process: ["/usr/local/bin/VBoxManage", "--version"]
DEBUG subprocess: Command not in installer, not touching env vars.
 INFO subprocess: Command not in installer, restoring original environment...
DEBUG subprocess: Selecting on IO
DEBUG subprocess: stdout: 4.3.28r100309
DEBUG subprocess: Waiting for process to exit. Remaining to timeout: 32000
DEBUG subprocess: Exit status: 0
DEBUG meta: Finding driver for VirtualBox version: 4.3.28
 INFO meta: Using VirtualBox driver: VagrantPlugins::ProviderVirtualBox::Driver::Version_4_3
 INFO base: VBoxManage path: VBoxManage
 INFO loader: Set "2153179360_machine_default" = []
 INFO loader: Loading configuration in order: [:home, :root, "2153179360_machine_default"]
DEBUG loader: Loading from: root (cache)
DEBUG config: vagrant-r10k-config: initialize
DEBUG config: vagrant-r10k-config: initialize
DEBUG loader: Configuration loaded successfully, finalizing and returning
DEBUG push: finalizing
 INFO box_collection: Box found: puppetlabs/centos-7.0-64-puppet (virtualbox)
 INFO environment: Running hook: authenticate_box_url
 INFO host: Autodetecting host type for [#<Vagrant::Environment: /Users/cdenneen/src/gitlab/module_testing>]
DEBUG host: Trying: arch
DEBUG host: Trying: darwin
 INFO host: Detected: darwin!
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 2 hooks defined.
 INFO runner: Running action: authenticate_box_url #<Vagrant::Action::Builder:0x0000010223c370>
 INFO warden: Calling IN action: #<VagrantPlugins::LoginCommand::AddAuthentication:0x000001018f8520>
DEBUG client: No authentication token in environment or /Users/cdenneen/.vagrant.d/data/vagrant_login_token
 INFO warden: Calling OUT action: #<VagrantPlugins::LoginCommand::AddAuthentication:0x000001018f8520>
 INFO loader: Set :"2165733580_puppetlabs/centos-7.0-64-puppet_virtualbox" = #<Pathname:/Users/cdenneen/.vagrant.d/boxes/puppetlabs-VAGRANTSLASH-centos-7.0-64-puppet/1.0.2/virtualbox/Vagrantfile>
DEBUG loader: Populating proc cache for #<Pathname:/Users/cdenneen/.vagrant.d/boxes/puppetlabs-VAGRANTSLASH-centos-7.0-64-puppet/1.0.2/virtualbox/Vagrantfile>
DEBUG loader: Load procs for pathname: /Users/cdenneen/.vagrant.d/boxes/puppetlabs-VAGRANTSLASH-centos-7.0-64-puppet/1.0.2/virtualbox/Vagrantfile
 INFO loader: Loading configuration in order: [:"2165733580_puppetlabs/centos-7.0-64-puppet_virtualbox", :home, :root, "2153179360_machine_default"]
DEBUG loader: Loading from: 2165733580_puppetlabs/centos-7.0-64-puppet_virtualbox (evaluating)
DEBUG config: vagrant-r10k-config: initialize
DEBUG config: vagrant-r10k-config: initialize
DEBUG config: vagrant-r10k-config: initialize
DEBUG loader: Loading from: root (cache)
DEBUG config: vagrant-r10k-config: initialize
DEBUG loader: Configuration loaded successfully, finalizing and returning
DEBUG push: finalizing
 INFO machine: Initializing machine: default
 INFO machine:   - Provider: VagrantPlugins::ProviderVirtualBox::Provider
 INFO machine:   - Box: #<Vagrant::Box:0x00000100c124f0>
 INFO machine:   - Data dir: /Users/cdenneen/src/gitlab/module_testing/.vagrant/machines/default/virtualbox
DEBUG virtualbox: Instantiating the driver for machine ID: nil
 INFO base: VBoxManage path: VBoxManage
 INFO subprocess: Starting process: ["/usr/local/bin/VBoxManage", "--version"]
DEBUG subprocess: Command not in installer, not touching env vars.
 INFO subprocess: Command not in installer, restoring original environment...
DEBUG subprocess: Selecting on IO
DEBUG subprocess: stdout: 4.3.28r100309
DEBUG subprocess: Waiting for process to exit. Remaining to timeout: 32000
DEBUG subprocess: Exit status: 0
DEBUG meta: Finding driver for VirtualBox version: 4.3.28
 INFO meta: Using VirtualBox driver: VagrantPlugins::ProviderVirtualBox::Driver::Version_4_3
 INFO base: VBoxManage path: VBoxManage
 INFO machine: New machine ID: nil
DEBUG virtualbox: Instantiating the driver for machine ID: nil
 INFO base: VBoxManage path: VBoxManage
 INFO subprocess: Starting process: ["/usr/local/bin/VBoxManage", "--version"]
DEBUG subprocess: Command not in installer, not touching env vars.
 INFO subprocess: Command not in installer, restoring original environment...
DEBUG subprocess: Selecting on IO
DEBUG subprocess: stdout: 4.3.28r100309
DEBUG subprocess: Waiting for process to exit. Remaining to timeout: 32000
DEBUG subprocess: Exit status: 0
DEBUG meta: Finding driver for VirtualBox version: 4.3.28
 INFO meta: Using VirtualBox driver: VagrantPlugins::ProviderVirtualBox::Driver::Version_4_3
 INFO base: VBoxManage path: VBoxManage
 INFO command: With machine: default (#<VagrantPlugins::ProviderVirtualBox::Provider:0x00000102393660 @logger=#<Log4r::Logger:0x00000102393610 @fullname="vagrant::provider::virtualbox", @outputters=[], @additive=true, @name="virtualbox", @path="vagrant::provider", @parent=#<Log4r::Logger:0x00000101888a18 @fullname="vagrant", @outputters=[#<Log4r::StderrOutputter:0x000001018d9918 @mon_owner=nil, @mon_count=0, @mon_mutex=#<Mutex:0x000001018d9878>, @name="stderr", @level=0, @formatter=#<Log4r::DefaultFormatter:0x000001018e1410 @depth=7>, @out=#<IO:<STDERR>>>], @additive=true, @name="vagrant", @path="", @parent=#<Log4r::RootLogger:0x00000101888900 @level=0, @outputters=[]>, @level=1, @trace=false>, @level=1, @trace=false>, @machine=#<Vagrant::Machine: default (VagrantPlugins::ProviderVirtualBox::Provider)>, @driver=#<VagrantPlugins::ProviderVirtualBox::Driver::Meta:0x000001033276f8 @logger=#<Log4r::Logger:0x00000100aa61c0 @fullname="vagrant::provider::virtualbox::meta", @outputters=[], @additive=true, @name="meta", @path="vagrant::provider::virtualbox", @parent=#<Log4r::Logger:0x00000102393610 @fullname="vagrant::provider::virtualbox", @outputters=[], @additive=true, @name="virtualbox", @path="vagrant::provider", @parent=#<Log4r::Logger:0x00000101888a18 @fullname="vagrant", @outputters=[#<Log4r::StderrOutputter:0x000001018d9918 @mon_owner=nil, @mon_count=0, @mon_mutex=#<Mutex:0x000001018d9878>, @name="stderr", @level=0, @formatter=#<Log4r::DefaultFormatter:0x000001018e1410 @depth=7>, @out=#<IO:<STDERR>>>], @additive=true, @name="vagrant", @path="", @parent=#<Log4r::RootLogger:0x00000101888900 @level=0, @outputters=[]>, @level=1, @trace=false>, @level=1, @trace=false>, @level=1, @trace=false>, @interrupted=false, @vboxmanage_path="VBoxManage", @uuid=nil, @version="4.3.28", @driver=#<VagrantPlugins::ProviderVirtualBox::Driver::Version_4_3:0x0000010210dc10 @logger=#<Log4r::Logger:0x00000100a2d2c0 @fullname="vagrant::provider::virtualbox_4_3", @outputters=[], @additive=true, @name="virtualbox_4_3", @path="vagrant::provider", @parent=#<Log4r::Logger:0x00000101888a18 @fullname="vagrant", @outputters=[#<Log4r::StderrOutputter:0x000001018d9918 @mon_owner=nil, @mon_count=0, @mon_mutex=#<Mutex:0x000001018d9878>, @name="stderr", @level=0, @formatter=#<Log4r::DefaultFormatter:0x000001018e1410 @depth=7>, @out=#<IO:<STDERR>>>], @additive=true, @name="vagrant", @path="", @parent=#<Log4r::RootLogger:0x00000101888900 @level=0, @outputters=[]>, @level=1, @trace=false>, @level=1, @trace=false>, @interrupted=false, @vboxmanage_path="VBoxManage", @uuid=nil>>, @cap_logger=#<Log4r::Logger:0x00000100bb2348 @fullname="vagrant::capability_host::vagrantplugins::providervirtualbox::provider", @outputters=[], @additive=true, @name="provider", @path="vagrant::capability_host::vagrantplugins::providervirtualbox", @parent=#<Log4r::Logger:0x00000101888a18 @fullname="vagrant", @outputters=[#<Log4r::StderrOutputter:0x000001018d9918 @mon_owner=nil, @mon_count=0, @mon_mutex=#<Mutex:0x000001018d9878>, @name="stderr", @level=0, @formatter=#<Log4r::DefaultFormatter:0x000001018e1410 @depth=7>, @out=#<IO:<STDERR>>>], @additive=true, @name="vagrant", @path="", @parent=#<Log4r::RootLogger:0x00000101888900 @level=0, @outputters=[]>, @level=1, @trace=false>, @level=1, @trace=false>, @cap_host_chain=[[:virtualbox, #<#<Class:0x00000100bb34f0>:0x00000101a8b220>]], @cap_args=[#<Vagrant::Machine: default (VagrantPlugins::ProviderVirtualBox::Provider)>], @cap_caps={:docker=>#<Vagrant::Registry:0x00000100bb3130 @items={:public_address=>#<Proc:0x0000010194b7c0@/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/providers/docker/plugin.rb:54>, :proxy_machine=>#<Proc:0x0000010194b658@/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/providers/docker/plugin.rb:59>}, @results_cache={}>, :hyperv=>#<Vagrant::Registry:0x00000100bb2ff0 @items={:public_address=>#<Proc:0x00000101960418@/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/providers/hyperv/plugin.rb:25>}, @results_cache={}>, :virtualbox=>#<Vagrant::Registry:0x00000100bb2cd0 @items={:forwarded_ports=>#<Proc:0x0000010313df90@/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/providers/virtualbox/plugin.rb:27>, :nic_mac_addresses=>#<Proc:0x0000010313dec8@/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/providers/virtualbox/plugin.rb:32>, :public_address=>#<Proc:0x0000010210e980@/opt/vagrant/embedded/gems/gems/vagrant-share-1.1.4/lib/vagrant-share.rb:39>}, @results_cache={}>}>)
 INFO interface: info: Bringing machine 'default' up with 'virtualbox' provider...
Bringing machine 'default' up with 'virtualbox' provider...
 INFO batch_action: Enabling parallelization by default.
 INFO batch_action: Disabling parallelization because provider doesn't support it: virtualbox
 INFO batch_action: Batch action will parallelize: false
 INFO batch_action: Starting action: #<Vagrant::Machine:0x00000101ad4470> up {:destroy_on_error=>true, :parallel=>true, :provision_ignore_sentinel=>false, :provision_types=>nil}
 INFO machine: Calling action: up on provider VirtualBox (new VM)
DEBUG environment: Attempting to acquire process-lock: machine-action-d49b24863273590e6cccf91f6e39b87f
DEBUG environment: Attempting to acquire process-lock: dotlock
 INFO environment: Acquired process lock: dotlock
 INFO environment: Released process lock: dotlock
 INFO environment: Acquired process lock: machine-action-d49b24863273590e6cccf91f6e39b87f
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 4 hooks defined.
 INFO runner: Running action: machine_action_up #<Vagrant::Action::Builder:0x00000100c286d8>
 INFO warden: Calling IN action: #<VagrantPlugins::ProviderVirtualBox::Action::CheckVirtualbox:0x00000102353830>
 INFO base: VBoxManage path: VBoxManage
 INFO subprocess: Starting process: ["/usr/local/bin/VBoxManage", "--version"]
DEBUG subprocess: Command not in installer, not touching env vars.
 INFO subprocess: Command not in installer, restoring original environment...
DEBUG subprocess: Selecting on IO
DEBUG subprocess: stdout: 4.3.28r100309
DEBUG subprocess: Waiting for process to exit. Remaining to timeout: 32000
DEBUG subprocess: Exit status: 0
DEBUG meta: Finding driver for VirtualBox version: 4.3.28
 INFO meta: Using VirtualBox driver: VagrantPlugins::ProviderVirtualBox::Driver::Version_4_3
 INFO base: VBoxManage path: VBoxManage
 INFO subprocess: Starting process: ["/usr/local/bin/VBoxManage", "list", "hostonlyifs"]
DEBUG subprocess: Command not in installer, not touching env vars.
 INFO subprocess: Command not in installer, restoring original environment...
DEBUG subprocess: Selecting on IO
DEBUG subprocess: stdout: Name:            vboxnet1
GUID:            786f6276-656e-4174-8000-0a0027000001
DHCP:            Disabled
IPAddress:       172.16.32.1
NetworkMask:     255.255.255.0
IPV6Address:
IPV6NetworkMaskPrefixLength: 0
HardwareAddress: 0a:00:27:00:00:01
MediumType:      Ethernet
Status:          Up
VBoxNetworkName: HostInterfaceNetworking-vboxnet1

Name:            vboxnet0
GUID:            786f6276-656e-4074-8000-0a0027000000
DHCP:            Disabled
IPAddress:       192.168.10.1
NetworkMask:     255.255.255.0
IPV6Address:
IPV6NetworkMaskPrefixLength: 0
HardwareAddress: 0a:00:27:00:00:00
MediumType:      Ethernet
Status:          Up
VBoxNetworkName: HostInterfaceNetworking-vboxnet0

DEBUG subprocess: Waiting for process to exit. Remaining to timeout: 32000
DEBUG subprocess: Exit status: 0
 INFO warden: Calling IN action: #<Vagrant::Action::Builtin::Call:0x00000102353808>
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 4 hooks defined.
 INFO runner: Running action: machine_action_up #<Vagrant::Action::Builder:0x000001032f5c20>
 INFO warden: Calling IN action: #<VagrantPlugins::ProviderVirtualBox::Action::Created:0x000001032dc4f0>
 INFO warden: Calling OUT action: #<VagrantPlugins::ProviderVirtualBox::Action::Created:0x000001032dc4f0>
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 4 hooks defined.
 INFO runner: Running action: machine_action_up #<Vagrant::Action::Warden:0x0000010217ce58>
 INFO warden: Calling IN action: #<Proc:0x00000100a1eb80@/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:94 (lambda)>
 INFO warden: Calling IN action: #<Vagrant::Action::Builtin::HandleBox:0x0000010217fd88>
 INFO handle_box: Machine already has box. HandleBox will not run.
 INFO warden: Calling IN action: #<Proc:0x000001031c61b0@/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:94 (lambda)>
 INFO warden: Calling IN action: #<Vagrant::Action::Builtin::ConfigValidate:0x00000102353768>
DEBUG config: vagrant-r10k-config: validate
DEBUG config: vagrant-r10k-config: END validate
 INFO warden: Calling IN action: #<VagrantPlugins::R10k::Action::Validate:0x00000102353740>
DEBUG validate: vagrant::r10k::validate called
ERROR warden: Error occurred: no implicit conversion of nil into String
 INFO warden: Beginning recovery process...
 INFO warden: Calling recover: #<Vagrant::Action::Builtin::Call:0x00000102353808>
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
 INFO warden: Recovery complete.
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
ERROR warden: Error occurred: no implicit conversion of nil into String
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
ERROR warden: Error occurred: no implicit conversion of nil into String
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
 INFO warden: Beginning recovery process...
 INFO warden: Recovery complete.
 INFO environment: Released process lock: machine-action-d49b24863273590e6cccf91f6e39b87f
 INFO environment: Running hook: environment_unload
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 1 hooks defined.
 INFO runner: Running action: environment_unload #<Vagrant::Action::Builder:0x0000010280a748>
/Users/cdenneen/.vagrant.d/gems/gems/vagrant-r10k-0.4.0/lib/vagrant-r10k/helpers.rb:107:in `join': no implicit conversion of nil into String (TypeError)
    from /Users/cdenneen/.vagrant.d/gems/gems/vagrant-r10k-0.4.0/lib/vagrant-r10k/helpers.rb:107:in `r10k_config'
    from /Users/cdenneen/.vagrant.d/gems/gems/vagrant-r10k-0.4.0/lib/vagrant-r10k/action/validate.rb:23:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/handle_box.rb:56:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builder.rb:116:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `block in run'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/util/busy.rb:19:in `busy'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `run'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/call.rb:53:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builder.rb:116:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `block in run'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/util/busy.rb:19:in `busy'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `run'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:214:in `action_raw'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:191:in `block in action'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:516:in `lock'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:178:in `call'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:178:in `action'
    from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/batch_action.rb:82:in `block (2 levels) in run'

upgrade r10k

We're using r10k 1.2.1; 1.5.1 is out. We should upgrade. There may have been some changes that affect us.

Can r10k run after specific provision script?

I've got a bootstrapping script which builds a puppetfile based on module dependencies, however I can't seem to find a way to get r10k to run after this provisioning script. It always wants to run immediately. Is there a method to get it to run after a specific provisioner?

No validation of nil module_path

When trying to vagrant up on a windows 7 host machine, and centos 6.6 guest VM, using vagrant-r10k, we get the following output:

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: vagrant-r10k: Building the r10k module path with puppet provisioner module_path "". (if module_path is an array, first element is used)
==> default: vagrant-r10k: Building the r10k module path with puppet provisioner module_path "". (if module_path is an array, first element is used)
C:/Users/Jeff/.vagrant.d/gems/gems/vagrant-r10k-0.2.0/lib/vagrant-r10k/modulegetter.rb:90:in `join': no implicit conversion of nil into String (TypeError)
        from C:/Users/Jeff/.vagrant.d/gems/gems/vagrant-r10k-0.2.0/lib/vagrant-r10k/modulegetter.rb:90:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action warden.rb:34:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/handle_box.rb:56:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builder.rb:116:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `block in run'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/util/busy.rb:19:in `busy'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `run'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/call.rb:53:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
        from C:/Users/Jeff/.vagrant.d/gems/gems/vagrant-triggers-0.5.1/lib/vagrant-triggers/action/trigger.rb:17:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
        from C:/Users/Jeff/.vagrant.d/gems/gems/vagrant-triggers-0.5.1/lib/vagrant-triggers/action/trigger.rb:17:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
        from C:/Users/Jeff/.vagrant.d/gems/gems/vagrant-triggers-0.5.1/lib/vagrant-triggers/action/trigger.rb:17:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builder.rb:116:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `block in run'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/util/busy.rb:19:in `busy'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `run'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:214:in `action_raw'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:191:in `block in action'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:516:in `lock'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:178:in `call'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:178:in `action'
        from c:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant batch_action.rb:82:in `block (2 levels) in run'

The following are the pertinent files from our drupal-demonstration repository:

  • Vagrantfile: run without being versioned into github -
# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure(2) do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  ## Variables (ruby syntax)
  required_plugins = %w(vagrant-r10k vagrant-vbguest)
  plugin_installed = false

  ## Install Vagrant Plugins
  required_plugins.each do |plugin|
    unless Vagrant.has_plugin? plugin
      system "vagrant plugin install #{plugin}"
      plugin_installed = true
    end
  end

  ## Restart Vagrant: if new plugin installed
  if plugin_installed == true
    exec "vagrant #{ARGV.join(' ')}"
  end

  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://atlas.hashicorp.com/search.
  config.vm.box = "puppetlabs/centos-6.6-64-puppet"
  config.vm.box_version = "1.0.1"

  ## Run r10k
  config.r10k.puppet_dir = 'puppet'
  config.r10k.puppetfile_path = 'puppet/Puppetfile'

  # Define fully qualified domain name
  config.vm.hostname = "drupal-demonstration.com"

  # Custom Manifest: general configuration
  #
  #  Note: future parser allow array iteration in the puppet manifest
  config.vm.provision "puppet" do |puppet|
    puppet.manifests_path = "puppet/manifests"
    puppet.manifest_file  = "default.pp"
    puppet.options        = ["--parser", "future"]
  end

  # Custom Manifest: ssl configuration
  config.vm.provision "puppet" do |puppet|
    puppet.manifests_path = "puppet/manifests"
    puppet.manifest_file  = "ssl.pp"
  end

  # Disable automatic box update checking. If you disable this, then
  # boxes will only be checked for updates when the user runs
  # `vagrant box outdated`. This is not recommended.
  # config.vm.box_check_update = false

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
  config.vm.network "forwarded_port", guest: 80, host: 6060
  config.vm.network "forwarded_port", guest: 443, host: 6161

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  # config.vm.network "private_network", ip: "192.168.33.10"

  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
  # config.vm.network "public_network"

  # Share an additional folder to the guest VM. The first argument is
  # the path on the host to the actual folder. The second argument is
  # the path on the guest to mount the folder. And the optional third
  # argument is a set of non-required options.
  # config.vm.synced_folder "../data", "/vagrant_data"

  # Provider-specific configuration so you can fine-tune various
  # backing providers for Vagrant. These expose provider-specific options.
  # Example for VirtualBox:
  #
  # config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
  #   vb.memory = "1024"
  # end
  #
  # View the documentation for the provider you are using for more
  # information on available options.

  # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
  # such as FTP and Heroku are also available. See the documentation at
  # https://docs.vagrantup.com/v2/push/atlas.html for more information.
  # config.push.define "atlas" do |push|
  #   push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
  # end

  # Enable provisioning with a shell script. Additional provisioners such as
  # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
  # documentation for more information about their specific syntax and use.
  # config.vm.provision "shell", inline: <<-SHELL
  #   sudo apt-get update
  #   sudo apt-get install -y apache2
  # SHELL
end

`find_spec_for_exe': can't find gem puppet (>= 0.a) (Gem::GemNotFoundException)

I have installed the vagrant-r10k plugin, together with the puppet gem as suggested:

$> vagrant --version 
Vagrant 2.0.4
$> vagrant plugin list  
oscar (0.5.3)
puppet (5.5.1)
terminal-table (1.8.0)
vagrant-cachier (1.2.1)
vagrant-hosts (2.8.0)
vagrant-r10k (0.4.1)
vagrant-triggers (0.5.3)
vagrant-vbguest (0.15.1)

The project I'm using (relying on RVM and Gemset) has the following structure:

.
├── Gemfile
├── Gemfile.lock
├── Makefile
├── README.md
├── VERSION
├── Vagrantfile
├── puppet
│   ├── Puppetfile
│   ├── manifests
│   │   └── default.pp
│   └── modules
└── vagrant

The puppet/Puppetfile has the following content:

forge "https://forgeapi.puppetlabs.com"

# Officials from Puppetlabs / Puppet
mod 'puppetlabs/apache',              :latest
mod 'puppetlabs/git',                 :latest
mod "puppetlabs/vcsrepo",             :latest

Finally, the configuration for vagrant-r10k in the root Vagrantfile is as follows:

  # Puppet R10K configuration (from vagrant-r10k plugin)
  config.r10k.puppet_dir      = 'puppet'
  config.r10k.puppetfile_path = "puppet/Puppetfile"
  config.r10k.module_path     = 'puppet/modules'

Now if I invoke vagrant {up,provision}, I get the following error:

==> default: vagrant-r10k: Beginning r10k deploy of puppet modules into /path/to/project/puppet/modules using /path/to/project/puppet/Puppetfile
INFO	 -> Loading modules from Puppetfile into queue
INFO	 -> Deploying vcsrepo into /path/to/project/puppet/modules
ERROR	 -> Task #<R10K::Task::Module::Sync:0x0000000100f3a4e8> failed while running: Command exited with non-zero exit code:
Command: puppet module --modulepath /path/to/project/puppet/modules --color false install --version=2.3.0 --force puppetlabs/vcsrepo
Stderr:
/opt/vagrant/embedded/lib/ruby/2.4.0/rubygems.rb:271:in `find_spec_for_exe': can't find gem puppet (>= 0.a) (Gem::GemNotFoundException)
	from /opt/vagrant/embedded/lib/ruby/2.4.0/rubygems.rb:299:in `activate_bin_path'
	from $HOME/.rvm/gems/ruby-2.3.4@BSP/bin/puppet:23:in `<main>'
	from $HOME/.rvm/gems/ruby-2.3.4@BSP/bin/ruby_executable_hooks:15:in `eval'
	from$HOME/.rvm/gems/ruby-2.3.4@BSP/bin/ruby_executable_hooks:15:in `<main>'
Exit code: 1
[...]

of course repeated for each module in the Puppetfile.
It looks like the gem path to the vagrant plugin is ignored... Any hint?

docs - vagrant plugin install puppet

In a comment on #2, @mmarod was nice enough to remind me that vagrant plugin install puppet works to install Puppet in Vagrant's environment, and thereby handle Puppetfiles that include Forge modules.

Add this to the docs.

r10k deploy error on Windows

Each time i try to "vagrant up", and for each module:

Tried "gem pristine wdm --version 0.1.1" as requested...
Tried with "vagrant plugin install puppet", same error
Also tried to install wdw gem via "gem install wdm --platform=ruby"

INFO -> Deploying concat into E:/Workspace/bath/vagrant-puppet/puppet/vendor
ERROR -> Task #R10K::Task::Module::Sync:0x5f1f870 failed while running: Command exited with non-zero exit code:
Command: puppet module --modulepath E:/Workspace/bath/vagrant-puppet/puppet/vendor --color false install --version=1.2.5 --force puppetlabs/concat
Stderr:
Ignoring wdm-0.1.1 because its extensions are not built. Try: gem pristine wdm --version 0.1.1
cannot load such file -- ffi_c
Exit code: 1

Integration/functional tests

Look into whether there's any established work to do integration/functional tests of vagrant plugins. If so, start doing that, and also start running tests against multiple Vagrant versions.

Problems on OS X

On OS X, using a standard Vagrant install and no ruby craziness:

username@mbp ‹ master ●● › : scriptname
[0] % vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
/Users/username/.vagrant.d/gems/gems/vagrant-r10k-0.1.1/lib/vagrant-r10k/modulegetter.rb:87:in `join': no implicit conversion of nil into String (TypeError)
        from /Users/username/.vagrant.d/gems/gems/vagrant-r10k-0.1.1/lib/vagrant-r10k/modulegetter.rb:87:in `call'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/warden.rb:34:in `call'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/warden.rb:34:in `call'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/warden.rb:34:in `call'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/builtin/handle_box.rb:56:in `call'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/warden.rb:34:in `call'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/warden.rb:34:in `call'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/warden.rb:34:in `call'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/builder.rb:116:in `call'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/runner.rb:66:in `block in run'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/util/busy.rb:19:in `busy'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/runner.rb:66:in `run'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/builtin/call.rb:53:in `call'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/warden.rb:34:in `call'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in `call'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/warden.rb:34:in `call'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/builder.rb:116:in `call'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/runner.rb:66:in `block in run'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/util/busy.rb:19:in `busy'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/action/runner.rb:66:in `run'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/machine.rb:212:in `action_raw'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/machine.rb:189:in `block in action'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/environment.rb:516:in `lock'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/machine.rb:176:in `call'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/machine.rb:176:in `action'
        from /opt/vagrant/embedded/gems/gems/vagrant-1.7.1/lib/vagrant/batch_action.rb:82:in `block (2 levels) in run'

undefined method `activate_bin_path'

When I start vagrant on OSX I get the following error :

[2017-04-12 11:14:29 - ERROR] Task #R10K::Task::Module::Sync:0x000001039cd340 failed while running: Command exited with non-zero exit code:
Command: puppet module --modulepath /Users/phonig/work/vagrant/vagrant-puppet-example/puppet/modules/ --color false install --force puppetlabs/stdlib
Stderr:
/usr/local/bin/puppet:22:in <main>': undefined method activate_bin_path' for Gem:Module (NoMethodError)
Exit code: 1

When I run Puppet on the command line, it downloads the module without error.

I've attached the vagrant up --debug output.
vagrant-up.txt

Separate config validation from provisioning

I've recently gotten reports ( #7, #8 ) of r10k doing the module provisioning 2-3 times and this being a problem. For starters, investigate whether we can reliably separate config validation from provisioning, or whether there was a reason we're doing both all the time. The current behavior is that the r10k deploy actually runs twice; once during config validation and again during provisioning. This is pretty clearly because we're running the same code during both hooks - see lines 20-23 specifically line 22.

vmware_workstation acceptance tests

I've gotten access to VMWare Workstation itself, and gotten a license for the plugin specifically for testing vagrant-r10k. However, I haven't been able to get VMW Workstation to run on my desktop (Arch Linux with 4.1.2-2 kernel). I have it running on my laptop, but it doesn't work with Vagrant; even with the latest plugin (vagrant-vmware-workstation (3.2.11) and Vagrant 1.6.5). The closest I've been able to get is waiting for the machine to boot and then "The DHCP leases file for the vmnet device 'vmnet8' could not be found. [...]". This appears to be the same as Vagrant issue 6101 that says to reinstall Workstation.

So, bottom line, I don't have any working VMWare Workstation acceptance tests yet, and it seems that vagrant-spec as a whole is pretty unpolished. If more people start using Workstation, or opening issues specific to it, I'll revisit this. Until then, let's just do acceptance for Virtualbox.

WIP for this is in the issues/12final_vmware branch.

Modules from svn copied twice

If I add a module in the Puppetfile which is located in a svn repository the module is checked out twice.
First in the defined module_path and second in dhe puppet_dir.

My r10k config in the Vagrantfile contains this:
config.r10k.puppet_dir = "."
config.r10k.puppetfile_path = "Puppetfile"
config.r10k.module_path = "r10k_modules/"

problem library ruby 3

WSL2
UNBUNTU 22.04

Stderr:
Error: Could not initialize global default settings: The SortedSet class has been extracted from the set library.You must use the sorted_set gem or other alternatives.
Exit code: 1

Ability to run arbitrary ruby code block before r10k

This idea came up in #32 (comment)

In some cases, it might be useful to let vagrant-r10k execute an arbitrary block of ruby code before running r10k. Because of how I've hacked the plugin in to run before the provisioners, there's no straightforward way that I can figure out to do this other than passing it in as a configuration value to vagrant-r10k (if that's possible).

Multiple deploys with vmware_workstation provider

Hi

Firstly, thanks for the plugin!

I recently switched to the vmware_workstation provider for vagrant and I am having an issue with the plugin. The r10k deploys multiple times for up and destroy commands. It also runs for the ssh command. I haven't yet tested resume or suspend.

There is some output below and I posted a gist with the debug flag set during an up command.

This is probably a niche issue but if you can spot anything useful from the output please let me know.

$ vagrant up master
Bringing machine 'master' up with 'vmware_workstation' provider...
==> master: vagrant-r10k: Beginning r10k deploy of puppet modules into ~/code/puppet-dev/modules using ~/code/puppet-dev/puppet/Puppetfile
==> master: vagrant-r10k: Deploy finished
==> master: Verifying vmnet devices are healthy...
==> master: vagrant-r10k: Beginning r10k deploy of puppet modules into ~/code/puppet-dev/modules using ~/code/puppet-dev/puppet/Puppetfile
==> master: vagrant-r10k: Deploy finished
==> master: vagrant-r10k: Beginning r10k deploy of puppet modules into ~/code/puppet-dev/modules using ~/code/puppet-dev/puppet/Puppetfile
==> master: vagrant-r10k: Deploy finished
==> master: Preparing network adapters...
==> master: Starting the VMware VM...
==> master: Waiting for machine to boot. This may take a few minutes...
$ vagrant destroy master
==> master: vagrant-r10k: Beginning r10k deploy of puppet modules into ~/code/puppet-dev/modules using ~/code/puppet-dev/puppet/Puppetfile
==> master: vagrant-r10k: Deploy finished
    master: Are you sure you want to destroy the 'master' VM? [y/N] y
==> master: vagrant-r10k: Beginning r10k deploy of puppet modules into ~/code/puppet-dev/modules using ~/code/puppet-dev/puppet/Puppetfile
==> master: vagrant-r10k: Deploy finished
==> master: Stopping the VMware VM...
==> master: Deleting the VM...
==> master: Running cleanup tasks for 'shell' provisioner...
==> master: Running cleanup tasks for 'puppet' provisioner...
==> master: Running triggers after destroy...
==> master: Updating /etc/hosts file on active guest machines...
==> master: Updating /etc/hosts file on host machine (password may be required)...
$ vagrant ssh master
==> master: vagrant-r10k: Beginning r10k deploy of puppet modules into /home/scott/code/puppet-dev/modules using /home/scott/code/puppet-dev/puppet/Puppetfile
==> master: vagrant-r10k: Deploy finished
[vagrant@master ~]$ 

[R10K::TaskRunner - ERROR] on OSX (yosemite) host

I am running an osx (yosemite) host, with a potential Ubuntu 14.04 guest VM. However, I am unable to vagrant up a git repository:

$ sudo vagrant up
Password:
Bringing machine 'default' up with 'virtualbox' provider...
==> default: vagrant-r10k: Building the r10k module path with puppet provisioner module_path "puppet/modules". (if module_path is an array, first element is used)
==> default: Checking if box 'ubuntu/trusty64' is up to date...
==> default: A newer version of the box 'ubuntu/trusty64' is available! You currently
==> default: have version '20150430.0.0'. The latest is version '20150902.0.1'. Run
==> default: `vagrant box update` to update.
==> default: vagrant-r10k: Building the r10k module path with puppet provisioner module_path "puppet/modules". (if module_path is an array, first element is used)
==> default: vagrant-r10k: Building the r10k module path with puppet provisioner module_path "puppet/modules". (if module_path is an array, first element is used)
==> default: vagrant-r10k: Beginning r10k deploy of puppet modules into /Users/jeff/github/machine-learning/puppet/modules using /Users/jeff/github/machine-learning/puppet/Puppetfile
[R10K::TaskRunner - ERROR] Task #<R10K::Task::Module::Sync:0x00000102a38650> failed while running: Couldn't update git cache for [email protected]:BashtonLtd/puppet-timezone.git: "fatal: Could not read from remote repository."
[R10K::TaskRunner - ERROR] Task #<R10K::Task::Module::Sync:0x00000102a386c8> failed while running: Couldn't update git cache for [email protected]:vaijab/puppet-uwsgi.git: "fatal: Could not read from remote repository."
[R10K::TaskRunner - ERROR] Task #<R10K::Task::Module::Sync:0x00000102a38718> failed while running: Couldn't update git cache for [email protected]:jfryman/puppet-nginx.git: "fatal: Could not read from remote repository."
[R10K::TaskRunner - ERROR] Task #<R10K::Task::Module::Sync:0x00000102a38808> failed while running: Couldn't update git cache for [email protected]:counsyl/puppet-python.git: "fatal: Could not read from remote repository."
[R10K::TaskRunner - ERROR] Task #<R10K::Task::Module::Sync:0x00000102a388a8> failed while running: Couldn't update git cache for [email protected]:counsyl/puppet-sys.git: "fatal: Could not read from remote repository."
[R10K::TaskRunner - ERROR] Task #<R10K::Task::Module::Sync:0x00000102a392d0> failed while running: Couldn't update git cache for [email protected]:puppetlabs/puppetlabs-mysql.git: "fatal: Could not read from remote repository."
[R10K::TaskRunner - ERROR] Task #<R10K::Task::Module::Sync:0x00000102a39348> failed while running: Couldn't update git cache for [email protected]:puppetlabs/puppetlabs-vcsrepo.git: "fatal: Could not read from remote repository."
[R10K::TaskRunner - ERROR] Task #<R10K::Task::Module::Sync:0x00000102a393e8> failed while running: Couldn't update git cache for [email protected]:puppetlabs/puppetlabs-git.git: "fatal: Could not read from remote repository."
[R10K::TaskRunner - ERROR] Task #<R10K::Task::Module::Sync:0x00000102a394b0> failed while running: Couldn't update git cache for [email protected]:puppet-community/puppet-nodejs.git: "fatal: Could not read from remote repository."
[R10K::TaskRunner - ERROR] Task #<R10K::Task::Module::Sync:0x00000102a39550> failed while running: Couldn't update git cache for [email protected]:puppetlabs/puppetlabs-apt.git: "fatal: Could not read from remote repository."
[R10K::TaskRunner - ERROR] Task #<R10K::Task::Module::Sync:0x00000102a395c8> failed while running: Couldn't update git cache for [email protected]:puppetlabs/puppetlabs-stdlib.git: "fatal: Could not read from remote repository."
RuntimeError: Couldn't update git cache for [email protected]:BashtonLtd/puppet-timezone.git: "fatal: Could not read from remote repository."

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.