diff --git a/.gitignore b/.gitignore
index 7cd83d2..51aa756 100755
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,9 @@
 #IDE
 .idea/
 
+# vagrant
+.vagrant/
+
 # C extensions
 *.so
 
diff --git a/Vagrantfile b/Vagrantfile
new file mode 100644
index 0000000..8df0f0e
--- /dev/null
+++ b/Vagrantfile
@@ -0,0 +1,110 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+#
+# This Vagrant file create a son-emu VM.
+#
+
+# 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.
+
+  # there is a bug in the /etc/hosts of 16.04: https://bugs.launchpad.net/ubuntu/+source/livecd-rootfs/+bug/1561250
+  #config.vm.box = "ubuntu/xenial64"
+
+  # so we use 14.04 for now
+  config.vm.box = "ubuntu/trusty64"
+  
+
+  # 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: 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 ".", "/vagrant", disabled: true
+  config.vm.synced_folder ".", "/home/vagrant/son-emu"
+  
+
+  # 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|
+    vb.name = "son-emu"
+  #   # 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 git ansible aptitude
+     sudo echo "localhost ansible_connection=local" >> /etc/ansible/hosts
+     # install containernet
+     git clone https://github.com/mpeuster/containernet.git
+     echo "Installing containernet (will take some time ~30 minutes) ..."
+     cd /home/vagrant/containernet/ansible
+     sudo ansible-playbook install.yml
+
+     # install son-emu
+     echo "Installing son-emu (will take some time) ..."
+     cd /home/vagrant/son-emu/ansible
+     sudo ansible-playbook install.yml
+
+     # execute son-emu tests at the end to validate installation
+     echo "Running son-emu unit tests to validate installation"
+     cd /home/vagrant/son-emu
+     sudo py.test -v
+  SHELL
+
+  # TODO the native ansible provisioner does not work so we directly call the shell commands
+  # install containernet using its ansible script
+  #config.vm.provision "ansible_local" do |ansible|
+  #  ansible.provisioning_path = "/home/vagrant/containernet/ansible"
+  #  ansible.playbook = "install.yml"
+  #  ansible.sudo = true
+  #  ansible.verbose = "v"
+  #  ansible.limit = "all"
+  #end
+end
