A full description of how to bring up a CORD POD on a single physical host, using the CORD developer environment, is described here. That's probably what you want.
This page describes a simple alternative method for setting up a single-node POD that does not require a separate build host running Vagrant. It's mainly for developers looking to set up a custom POD and run tests on it.
You need a target server meeting the requirements below:
The single-node-pod.sh script in the scripts
directory of this repository can be used to build and test a single-node CORD POD. It should be run on the target server in a user account with password-less sudo capability. The most basic way to run the script is as follows:
$ wget https://raw.githubusercontent.com/opencord/platform-install/master/scripts/single-node-pod.sh $ bash single-node-pod.sh
The script will load the necessary software onto the target server, download the master
branch of this repository, and run an Ansible playbook to set up OpenStack, ONOS, and XOS.
Note that this process will take at least an hour! Also some individual steps in the playbook can take 30 minutes or more. Be patient!
Run bash single-node-pod.sh -h
for a list of options:
~$ bash single-node-pod.sh -h Usage: single-node-pod.sh install OpenStack and prep XOS and ONOS VMs [default] single-node-pod.sh -b <branch> checkout <branch> of the xos git repo single-node-pod.sh -c cleanup from previous test single-node-pod.sh -d don't run diagnostic collector single-node-pod.sh -h display this help message single-node-pod.sh -i <inv_file> specify an inventory file (default is inventory/single-localhost) single-node-pod.sh -p <git_url> use <git_url> to obtain the platform-install git repo single-node-pod.sh -r <git_url> use <git_url> to obtain the xos git repo single-node-pod.sh -s <branch> checkout <branch> of the platform-install git repo single-node-pod.sh -t do install, bring up cord-pod configuration, run E2E test
A few useful options are:
The -s
option can be used to install different versions of the CORD POD. For example, to install the latest CORD v1.0 release candidate:
~$ bash single-node-pod.sh -s cord-1.0
The -t
option runs a couple of tests on the POD after it has been built:
test-vsg:
Adds a CORD subscriber to XOS, brings up a vSG for the subscriber, creates a simulated device in the subscriber's home (using an LXC container), and runs a ping
from the device through the vSG to the Internet. This test demonstrates that the vSG is working.test-exampleservice:
Assumes that test-vsg
has already been run to set up a vSG. Onboards the exampleservice
described in the Tutorial on Assembling and On-Boarding Services and creates an exampleservice
tenant in XOS. This causes the exampleservice
synchronizer to spin up a VM, install Apache in the VM, and configure Apache with a "hello world" welcome message. This test demonstrates a customer-facing service being added to the POD.The -c
option deletes all state left over from a previous install. For example, the nightly Jenkins E2E test runs the script as follows:
~$ bash single-node-pod.sh -c -t
This invocation cleans up the previous build, brings up the POD, and runs the tests described above.