Bring up a single-node POD using the Vagrant box

Change-Id: I95debd4d28bbc9703c50245d548a45cb51fb1956
diff --git a/INSTALL_SINGLE_NODE.md b/INSTALL_SINGLE_NODE.md
new file mode 100644
index 0000000..0b6ce26
--- /dev/null
+++ b/INSTALL_SINGLE_NODE.md
@@ -0,0 +1,106 @@
+# Installing a CORD POD on a Single Physical Host
+[*This description is for bringing up a CORD POD on virtual machines on a single physical host. The purpose of this solution is to enable those interested in understanding how CORD works to examine and interact with a running CORD environment.*]
+
+This tutorial walks you through the steps to bring up a CORD "POD" on a single server using multiple virtual machines.
+
+## What you need (Prerequisites)
+You will need a build machine (can be your developer laptop) and a target server.
+
+Build host:
+* Mac OS X, Linux, or Windows with a 64-bit OS
+* [`git`](https://git-scm.com/) (2.5.4 or later)
+* [`Vagrant`](https://www.vagrantup.com/) (1.8.1 or later)
+* Access to the Internet
+* SSH access to the target server
+
+Target server:
+* Fresh install of Ubuntu 14.04 LTS with latest updates
+* Minimum 12 CPU cores, 48GB RAM, 1TB disk
+* Access to the Internet
+* Account used to SSH from build host has password-less *sudo* capability
+
+### Running on CloudLab (optional)
+If you do not have a target server available, you can borrow one on
+[CloudLab](https://www.cloudlab.us).  Sign up for an account using your organization's
+email address and choose "Join Existing Project"; for "Project Name" enter `cord-testdrive`.
+
+[*Note: CloudLab is supporting CORD as a courtesy.  It is expected that you will
+not use CloudLab resources for purposes other than evaluating CORD.  If, after a
+week or two, you wish to continue using CloudLab to experiment with or develop CORD,
+then you must apply for your own separate CloudLab project.*]
+
+Once your account is approved, start an experiment using the `OnePC-Ubuntu14.04.4` profile
+on either the Wisconsin or Clemson cluster.  This will provide you with a target server
+meeting the above requirements temporarily.
+
+Refer to the [CloudLab documentation](https://docs.cloudlab.us) for more information.
+
+## Bring up the developer environment
+On the build host, clone the
+[`platform-install`](https://gerrit.opencord.org/platform-install) repository
+anonymously and switch into its top directory:
+
+```
+git clone https://gerrit.opencord.org/platform-install
+cd platform-install
+```
+
+Bring up the development Vagrant box.  This will take a few minutes, depending on your
+connection speed:
+
+```
+vagrant up
+```
+
+Login to the Vagrant box:
+
+```
+vagrant ssh
+```
+
+Switch to the `platform-install` directory.
+
+```
+cd /platform-install
+```
+
+## Prepare the configuration file
+
+Edit the configuration file `config/default.yml`.  Add the IP address of your target
+server as well as the username / password for accessing the server.  
+
+If your target server is a CloudLab machine, uncomment the following two lines in the
+configuration file:
+
+```
+#extraVars:
+#  - 'on_cloudlab=True'
+```
+
+## Deploy the single-node CORD POD on the target server
+
+Deploy the CORD software to the the target server and configure it to form a running POD.
+
+```
+./gradlew deploySingle
+```
+> *What this does:*
+>
+> This command uses an Ansible playbook (cord-single-playbook.yml) to install
+> OpenStack services, ONOS, and XOS in VMs on the target server.  It also brings up
+> a compute node as a VM.
+>
+> (You *could* also run the above Ansible playbook directly, but Gradle is the
+> top-level build tool of CORD and so we use it here for consistency.)
+
+Note that this step usually takes *at least an hour* to complete.  Be patient!
+
+Once the above step completes, you can log into XOS as follows:
+
+* URL: `http://<target-server>/`
+* Username: `padmin@vicci.org`
+* Password: `letmein`
+
+[*STILL TO DO*]:
+* Port forwarding for XOS login as described above
+* Add pointer to where to go next.  At this point the services are all in place, but the vSG has not been created yet.
diff --git a/config/default.yml b/config/default.yml
index 0be591e..68fe747 100644
--- a/config/default.yml
+++ b/config/default.yml
@@ -1,47 +1,15 @@
-# Deployment configuration for VirtualBox based head node.
-#
-# This deployment configuration can be utilized with the head node created
-# via `vargrant up headnode` from the gerrit.opencord.org/maas repository.
+# Deployment configuration for a single-node physical hardware POD
 ---
 seedServer:
-  ip: '10.100.198.201'
 
-  # User name and password used by Ansible to connect to the host for remote
-  # provisioning
-  user: 'vagrant'
-  password: 'vagrant'
+  # Put the IP of your target server here
+  ip: '1.2.3.4'
 
-  # Specifies tasks within the head node provisioning not to execute, including:
-  #
-  # switch_support -   don't download the switch ONL images as there are no
-  #                    switches in this configuration
-  # interface_config - don't update the network configuration of the headnode
-  #                    as it is configured by vagrant to the proper settings
-  skipTags:
-    - 'switch_support'
-    - 'interface_config'
+  # User name and password used by Ansible to connect to the target server for remote
+  # provisioning.   You can also run ssh-agent to allow for password-less SSH login.
+  user: 'myuser'
+  password: 'cord_test'
 
-  management_ip: '10.1.0.1/24'
-  management_iface: 'eth2'
-  external_iface: 'eth0'
-  management_network: '10.1.0.0/24'
-
-  # Specifies the extra settings required for this configuration
-  #
-  # virtualbox_support - install support for managing virtual box based
-  #                      compute nodes
-  virtualbox_support: 1
-  power_helper_user: 'cord'
-
-docker:
-  imageVersion: candidate
-
-otherServers:
-  # Specifies the configuration for dynamically added compute nodes
-  location: 'http://gerrit.opencord.org/maas'
-  rolesPath: 'roles'
-  role: 'compute-node'
-  fabric:
-    network: '10.1.1.1/24'
-    range_low: '10.1.1.2'
-    range_high: '10.1.1.253'
+  # Uncomment if the target server is a CloudLab machine
+  #extraVars:
+  #  - 'on_cloudlab=True'
diff --git a/config/onlab_develop_pod.yml b/config/onlab_develop_pod.yml
deleted file mode 100644
index f095e6c..0000000
--- a/config/onlab_develop_pod.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-# Deployment configuration for a phyical hardware POD
----
-seedServer:
-  ip: '10.90.0.2'
-  # User name and password used by Ansible to connect to the host for remote
-  # provisioning
-  user: 'admin'
-  password: 'onos_test'
-  # Network address information for the head node:
-  #
-  # fabric_ip     - the IP address and mask bits to be used to configure the network
-  #                 interface connected to the leaf - spine fabric
-  #
-  # management_ip - the IP address and mask bits to be used to configure the network
-  #                 interface connecting the head node to the POD internal
-  #                 management network. The head node will deliver DHCP addresses to
-  #                 the other compute nodes over this interface
-  #
-  # external_ip   - the IP address and mask bits to be used to configure the network
-  #                 interface connecting the head node (and the POD) to the
-  #                 Internet. All traffic in the POD to external hosts will be
-  #                 NAT-ed through this interface
-  fabric_ip: '10.6.1.1/24'
-  management_ip: '10.6.0.1/24'
-  external_ip: '47.135.132.21/24'
-  management_iface: 'em2'
-  external_iface: 'em1'
-  skipTags:
-    - 'interface_config'
-
-docker:
-  imageVersion: candidate
-
-otherNodes:
-  # Experimental
-  #
-  # Specifies the subnet and address range that will be used to allocate IP addresses
-  # to the compute nodes as they are deployed into the POD.
-  fabric:
-    network: 10.6.1.1/24
-    range_low: 10.6.1.2
-    range_high: 10.6.1.253