Question

I am new to vagrant tool.

I am using Ubuntu 13.04

my project directory is "/var/www/project".

I have set up Vagrantfile through following command.

vagrant init test_box http://cloud-images.ubuntu.com/vagrant/saucy/current/saucy-server-cloudimg-amd64-vagrant-disk1.box

The Vagrantfile is created successfully.

Below is the content of the file

# -*- 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|
  # All Vagrant configuration is done here. The most common configuration
  # options are documented and commented below. For a complete reference,
  # please see the online documentation at vagrantup.com.

  # Every Vagrant virtual environment requires a box to build off of.
  config.vm.box = "test_box"

  # 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 = "http://cloud-images.ubuntu.com/vagrant/saucy/current/saucy-server-cloudimg-amd64-vagrant-disk1.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"

  # If true, then any SSH connections made will enable agent forwarding.
  # Default value: false
  # config.ssh.forward_agent = true

  # 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|
  #   # Don't boot with headless mode
     vb.gui = true
  #
  #   # Use VBoxManage to customize the VM. For example to change memory:
     vb.customize ["modifyvm", :id, "--memory", "1024"]
   end
  #
  # View the documentation for the provider you're using for more
  # information on available options.

  # Enable provisioning with Puppet stand alone.  Puppet manifests
  # are contained in a directory path relative to this Vagrantfile.
  # You will need to create the manifests directory and a manifest in
  # the file test_box.pp in the manifests_path directory.
  #
  # An example Puppet manifest to provision the message of the day:
  #
  # # group { "puppet":
  # #   ensure => "present",
  # # }
  # #
  # # File { owner => 0, group => 0, mode => 0644 }
  # #
  # # file { '/etc/motd':
  # #   content => "Welcome to your Vagrant-built virtual machine!
  # #               Managed by Puppet.\n"
  # # }
  #
  # config.vm.provision "puppet" do |puppet|
  #   puppet.manifests_path = "manifests"
  #   puppet.manifest_file  = "site.pp"
  # end

  # Enable provisioning with chef solo, specifying a cookbooks path, roles
  # path, and data_bags path (all relative to this Vagrantfile), and adding
  # some recipes and/or roles.
  #
  # config.vm.provision "chef_solo" do |chef|
  #   chef.cookbooks_path = "../my-recipes/cookbooks"
  #   chef.roles_path = "../my-recipes/roles"
  #   chef.data_bags_path = "../my-recipes/data_bags"
  #   chef.add_recipe "mysql"
  #   chef.add_role "web"
  #
  #   # You may also specify custom JSON attributes:
  #   chef.json = { :mysql_password => "foo" }
  # end

  # Enable provisioning with chef server, specifying the chef server URL,
  # and the path to the validation key (relative to this Vagrantfile).
  #
  # The Opscode Platform uses HTTPS. Substitute your organization for
  # ORGNAME in the URL and validation key.
  #
  # If you have your own Chef Server, use the appropriate URL, which may be
  # HTTP instead of HTTPS depending on your configuration. Also change the
  # validation key to validation.pem.
  #
  # config.vm.provision "chef_client" do |chef|
  #   chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME"
  #   chef.validation_key_path = "ORGNAME-validator.pem"
  # end
  #
  # If you're using the Opscode platform, your validator client is
  # ORGNAME-validator, replacing ORGNAME with your organization name.
  #
  # If you have your own Chef Server, the default validation client name is
  # chef-validator, unless you changed the configuration.
  #
  #   chef.validation_client_name = "ORGNAME-validator"
end

When I run command vagrant up, it opens the virtual box with blank screen and the log of commands I am getting on terminal is as below.

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...

Version of vagrant is : Vagrant 1.5.1

Version of virtual box is : 4.3.10r93012

Kindly guide me in this process regarding where the things are going wrong ?

If any pre configuration is required then please tell me.

Thanks in advance.

Was it helpful?

Solution

Hi @Ghanshyam Dobariya,

Following steps worked for me

Step 1 Add following virtualbox apt to /etc/apt/sources.list

deb http://download.virtualbox.org/virtualbox/debian precise contrib 

Step 2 Download and register the key

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

sudo apt-get update               

Step 3 Download appropriate VirtualBox setup from https://www.virtualbox.org/wiki/Linux_Downloads (I did for Debian 7 wheezy x64) and install using following command.

dpkg -i virtualbox-4.3_4.3.10-93012~Debian~wheezy_amd64.deb 

#Fix dependence issues (if exists)
apt-get -f install

Step 4 Install required packages

sudo apt-get install dkms
sudo apt-get install dpkg-dev virtualbox-dkms

#install linux headers for your distro
sudo apt-get install linux-headers-$(uname -r)

#reconfigure virtualbox-dkms 
sudo dpkg-reconfigure virtualbox-dkms

Step 5 download precise32.box image from following url

http://hashicorp-files.vagrantup.com/precise32.box

Step 6 add vagrant box

$vagrant box add precise32 ~/Downloads/precise32.box   

ON success you should get similar output as below

==> box: Adding box 'precise32' (v0) for provider: 
    box: Downloading: file:///home/ravi/Downloads/precise32.box
==> box: Successfully added box 'precise32' (v0) for 'virtualbox'!

Step 7 Create root directory for your project and navigate to it

mkdir test_project
cd test_project

Next, run the initialization command:

vagrant init

This will create a Vagrantfile in this folder which will be the central file for your project configuration. But before we can deploy the guest machine using the box we just added, edit the Vagrantfile:

Find the following line:

config.vm.box = "base"

And replace it with:

config.vm.box = "precise32"

This will tell it to use this new box. Save the file and exit. Now you can deploy the guest machine with the following command:

vagrant up

This will bring up a VPS running Ubuntu 12.04 LTS. To make use of it, you can easily SSH into it:

$vagrant ssh
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic-pae i686)
 * Documentation:  https://help.ubuntu.com/
Welcome to your Vagrant-built virtual machine.
Last login: Fri Sep 14 06:22:31 2012 from 10.0.2.2
vagrant@precise32:~$ _

for more info, read

OTHER TIPS

If running a 64-bit vm, you might need to look at your local machines BIOS settings to enable any VM features. I'm running windows 7 locally and ubuntu/trusty64 on a Lenovo laptop. I had to enable Virtualization settings in my BIOS and then the Connection Timeout went away.

Image [Ubuntu precise 32 VirtualBox] - http://files.vagrantup.com/precise32.box is working fine,

There might be some problem with Official Ubuntu 13.04 daily Cloud Image i386 (No Guest Additions) and Official Ubuntu 13.04 daily Cloud Image amd64 (No Guest Additions) Because boxes for those are still not working in my pc.

Site is : http://www.vagrantbox.es/

Try opening port 22 on the firewall.

Using the Oracle VM VirtualBox Manager, start your VM directly or

add this to your Vagrantfile

config.vm.provider :virtualbox do |vb|
  vb.gui = true
end

and run "vagrant up"

login using default vagrant credentials

user: vagrant
pass: vagrant

add firewall rule

sudo ufw allow 22

I got the same problem of connection timeout, and it was resolved by turning on the virtualization from my system bios. Hope it helps someone getting the same problem.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top