commit | a3e405600f84549b7ff6e82371ce422fa1ecec65 | [log] [tgz] |
---|---|---|
author | Zack Williams <zdw@cs.arizona.edu> | Tue Jul 05 12:05:39 2016 -0700 |
committer | Zack Williams <zdw@cs.arizona.edu> | Tue Jul 05 17:50:52 2016 -0700 |
tree | 615c95a566eeef7c0d399721d5eac2a64f25c0a3 | |
parent | d89d9a22619e4085220794c4d94416a6d5e89f4b [diff] |
rebuild xos-base image in xos-vm-install role playbook run, which happens async to juju setup (whitespace fix) async testclient install change single-node-pod.sh to use platform-install repo reformat and minor fixes to README.md pull xosproject/cord-app-build inside async xos-vm-install role whitespace fixes v2 fix path for container build don't start testclient container before databr has been plumbed fix context allow xos-vm-install to run longer as it's rebuilding base daemonize lxc-start for testcliet, avoiding a hang Change-Id: Icb5da9b69e942aaa79c8256ca5775219f63643d1
This repository contains Ansible playbooks for installing and configuring an OpenStack Kilo cluster for use with XOS. This is how we build clusters for OpenCloud, and is the method of installing a CORD development POD as well.
All of the OpenStack controller services are installed in VMs on a single "head node" and connected by an isolated private network. Juju is used to install and configure the OpenStack services.
The CORD POD install procedure uses the "head node" of the cluster as the control machine for the install. As mentioned above, install Ansible on the head node and check out this repository.
The playbooks assume that a bridge called mgmtbr on the head node is connected to the management network. Note that also there must be a DHCP server on the management network that:
If you need to set up dnsmasq
to do this, take a look at this example configuration. Then follow these steps:
bootstrap.sh
script to install Ansible and set up keys for login via localhost
$ ansible -i cord-hosts head -m ping $ ansible -i cord-hosts compute -m ping
ansible-playbook -i cord-hosts cord-setup.yml
juju status --format=tabular
. It should take about 30 minutes to install and configure all the OpenStack services.admin-openrc.sh
credentials in the home directory to interact with OpenStack. You can SSH to any VM using ssh ubuntu@<vm-name>
This will bring up various OpenStack services, including Neutron with the VTN plugin. It will also create two VMs called xos and onos-cord and prep them. Configuring and running XOS and ONOS in these VMs is beyond the scope of this README.
NOTE: The install process only brings up a single nova-compute node. To bring up more nodes as compute nodes, perform these steps on the head node:
$ juju add-machine ssh:<user>@<compute-host> $ juju add-unit nova-compute --to <juju-machine-id>
Refer to the Juju documentation for more information.
Setting up a single-node CORD environment is simple.
wget https://raw.githubusercontent.com/opencord/platform-install/master/scripts/single-node-pod.sh
bash single-node-pod.sh [-t] [-e]
-t
option will start XOS, bring up a vSG, install a test client, and run a simple E2E test.-e
option will add the ExampleService to XOS (and test it if -t
is also specified).As mentioned above, be patient! With a fast Internet connection, the entire process will take at least one hour to complete.
The install will bring up various OpenStack services, including Neutron with the VTN plugin. It will also create two VMs called xos and onos-cord and prep them. It creates a single nova-compute node running inside a VM.
It should be possible to use this method on any server running Ubuntu 14.04, as long as it has sufficient CPU cores and disk space. A server with at least 12 cores and 48GB RAM is recommended.
Once the prerequisites are satisfied, here are the basic steps for installing a new OpenCloud cluster named 'foo':
$ ansible-playbook -i foo-hosts foo-setup.yaml
$ juju add-machine ssh:ubuntu@compute-node
$ ansible-playbook -i foo-hosts foo-compute.yaml