Vagrant up - The Following settings shouldn't exist: vm (rethinkdb-vagrant)

Jason More picture Jason More · May 6, 2014 · Viewed 19.4k times · Source

Trying to setup rethinkdb using https://github.com/RyanAmos/rethinkdb-vagrant

C:\rethinkdb-vagrant>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
There are errors in the configuration of this machine. Please fix
the following errors and try again:

VirtualBox Provider:
* The following settings shouldn't exist: vm

VagrantFile

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    # Ubuntu 12.04, 64 bit
  config.vm.box     = 'precise64'
  config.vm.box_url = 'http://files.vagrantup.com/precise64.box'

  # Providers
  config.vm.provider :virtualbox do |p|
    p.vm.customize ['modifyvm', :id, '--memory', '512', '--ioapic', 'on']
  end

  # SSH
  config.ssh.username = "vagrant"

  # Port Forwarding
  config.vm.network :forwarded_port, guest: 8080, host: 8080
  config.vm.network :forwarded_port, guest: 28015, host: 28015
  config.vm.network :forwarded_port, guest: 29015, host: 29015

  # Attempt to 'guess' the default network
  config.vm.network :public_network, :bridge => 'en0: Wi-Fi (AirPort)'

  # Provisioning
  config.vm.provision :shell do |sh|
    sh.inline = <<-EOF
      export DEBIAN_FRONTEND=noninteractive;
      apt-get update --assume-yes;
      apt-get install --assume-yes python-software-properties;
      add-apt-repository --yes ppa:rethinkdb/ppa 2>&1;
      apt-get update --assume-yes;
      apt-get install --assume-yes rethinkdb;

      sed -e 's/somebody/root/g' -e 's/somegroup/root/g' -e 's/# bind=127.0.0.1/bind=all/g' /etc/rethinkdb/default.conf.sample > /etc/rethinkdb/instances.d/default.conf

      rethinkdb create -d /var/lib/rethinkdb/instances.d/default 2>&1;

      service rethinkdb start;
    EOF
  end
end

Answer

Matt Wrock picture Matt Wrock · May 10, 2014

The issue is at this section:

# Providers
config.vm.provider :virtualbox do |p|
  p.vm.customize ['modifyvm', :id, '--memory', '512', '--ioapic', 'on']
end

where p.vm.customize should just be p.customize since as the outer loop shows, vm is parent to provider and customize hangs directly off of provider.

So the correct block would be:

# Providers
config.vm.provider :virtualbox do |p|
  p.customize ['modifyvm', :id, '--memory', '512', '--ioapic', 'on']
end