Error loading default Vagrantfile with new box

Discussion in 'Parallels Provider for Vagrant' started by Parallels User, Feb 15, 2015.

  1. I've downloaded a Ubuntu 14.04 box and have also created a box myself. However, when issuing vagrant up I get the error below. Has anybody seen this and has anybody got any idea how to work around it? Or, am I doing something fundamentally wrong? I'm running the latest plugin (1.3.8), have tried with Ruby 2.0.0p481 and 2.2.0. Am running the latest updated version of Parallels 10 and the latest version of Vagrant (1.7.2).

    Help appreciated, thanks! I'm a first-timer, so please excuse if I'm being an idiot but I've not been able to find anything to resolve elsewhere.

    $ vagrant init analytics ~/VM/Boxes/ubuntu-14_04.box (I have tried $ vagrant init analytics parallels/ubuntu-14.04 too)
    $ vagrant up
    There was an error loading a Vagrantfile. The file being loaded
    and the error message are shown below. This is usually caused by
    a syntax error.

    Path: <provider config: parallels>
    Message: undefined method `-' for #<Object:0x00000101251668>


    My Vagrantfile looks like (pretty much identical between my own box and the Parallel's box:

    # -*- 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.

    # Every Vagrant development environment requires a box. You can search for
    # boxes at https://atlas.hashicorp.com/search.
    config.vm.box = "analytics"

    # The url from where the 'config.vm.box' box will be fetched if it
    # doesn't already exist on the user's system.
    config.vm.box_url = "/Users/steven/VM/Boxes/ubuntu-14_04.box"

    # 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: 8080

    # 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
     
  2. You did it wrong. You don't have to put a local name if you are using public box (e.q. named with a slash like "<account>/<box>").
    Try to do this and confirm that it completes without error:
    Code:
    vagrant init parallels/ubuntu-14.04
    vagrant up
    But in case if you are using your custom box, then the command you've provided is correct: "vagrant init <local_box_name> <box_url_or_path>"
    So, seems like you have an error while working with your own custom box. It might be caused by a syntax error in another Vagrantfile, which is bundled with a box. Please, find it and show the content:
    Code:
    cat ~/.vagrant.d/boxes/analytics/0/parallels/Vagrantfile
     
  3. Sorted, done. Thanks Mikhail. It was indeed the incorrect vagrant init command I was using. All going now.
     

Share This Page