Install Virtualbox, Vagrant and Ansible

Drupal VM

From the official Github page: "Drupal VM is A VM for local Drupal development, built with Vagrant + Ansible."

Install NFS-kernel-server and git
If you haven't already, install nfs-kernel-server and Git:

sudo apt-get install nfs-kernel-server git

Install VirtualBox 5.1
Drupal VM requires VirtualBox 5.1, and by default Ubuntu 16.04 comes with 5.0. So follow How to Install Latest VirtualBox 5.1 on Ubuntu 16.04/Debian 8.

You might also need to install the VirtualBox Extension Pack. Just click on the "Extension Pack All Platforms" link, and it should install itself into Virtualbox: https://www.virtualbox.org/wiki/Download_Old_Builds_5_1

Install Ansible 2.2.1
By default Ansible 2.0.0 will be installed by running sudo apt-get install ansible. To install the latest version of Ansible (2.2.1), you can add the Ansible PPA and install Ansible by following this guide, which also works on Ubuntu 16.04: Install Ansible on Ubuntu 14.04.

Install Vagrant
Download the latest version of Vagrant: Go to https://www.vagrantup.com/downloads.html and find the latest version for Ubuntu (Debian 64-bit) - currently vagrant_1.9.1_x86_64.deb:

wget https://releases.hashicorp.com/vagrant/1.9.1/vagrant_1.9.1_x86_64.deb

Install Vagrant:

sudo dpkg -i vagrant_1.9.1_x86_64.deb

After that, install the Vagrant-vbguest plugin:

vagrant plugin install vagrant-vbguest

Download Drupal VM with Git

git clone https://github.com/geerlingguy/drupal-vm;
cd drupal-vm;

Start up Vagrant and SSH into it - if you get a message about "VT-x is disabled in the BIOS", enable Virtualization in your BIOS, possibly under "Security" and try again:

vagrant up --debug;
vagrant ssh;

Visit your new Drupal VM at http://192.168.88.88. Add the list of IPs ("192.168.88.88 drupalvm.dev") to your /etc/hosts file and visit your new Drupal 8 site at: http://drupalvm.dev/

Install Drupal with Drush
Drupal is installed as part of vagrant up command in Drupal VM. Here is how you can install your own Drupal 8 instance.
It also disables Update module because it slows Drupal down, downloads the Admin toolbar module, and generates some test content:

cd /var/www/drupalvm/drupal;
mv web web-OLD;
drush dl --verbose --drupal-project-rename=web;
cd web/;
drush site-install --db-url=mysql://root:root@localhost/d8_test --account-pass=admin --yes --verbose;
drush st;
drush pmu update -y;
drush dl admin_toolbar --pm-force && drush en admin_toolbar_tools -y;
drush dl devel --pm-force && en devel devel_generate -y && drush generate-content 20;