The standard (original) build environment for VOLTHA required the installation of many support tools or a custom Vagrant
VM with those same support tools installed on that VM.
This build guide walks through a VOLTHA build on a system that only support Docker. If after building VOLTHA, it is desired to run VOLTHA you will need a version of Docker that supports Swarm Mode or docker-compose
. It is recommended that you use the latest stable version of docker
.
17.06.0-ce
or later recommended, the latest stable version preferred.git clone http://gerrit.opencord.org/voltha
cd voltha # if you are not alread in the voltha directory VOLTHA_BUILD=docker make build
The build can take a little while, so feel free to get a cup of coffee, go for a short walk, or otherwise rest your mind. A build on a clean Ubuntu VM takes about 30 minutes. The actual time for a build depends on available network bandwidth and CPU speed.
VOLTHA runs as a Docker Swarm Stack. Thus, to run VOLTHA you should have initialized your Docker Swarm using
docker swarm init
After the swarm has been initialized VOLTHA can be started with
VOLTHA_BUILD=docker make start
Eventually all the VOLTHA service will be started. You can view the service list using
docker service ls
which should generate an output similar to
ID NAME MODE REPLICAS IMAGE PORTS db4sd6qr4ovd voltha_cli replicated 1/1 voltha-cli:latest *:5022->22/tcp f4am7jkrfkid voltha_consul global 1/1 consul:0.9.2 *:8300->8300/tcp,*:8400->8400/tcp,*:8500->8500/tcp,*:8600->8600/udp b0y0op65zijd voltha_fluentd replicated 1/1 voltha-fluentd:latest *:30011->24224/tcp qqqba5wdug8i voltha_fluentdactv replicated 1/1 voltha-fluentd:latest *:30010->24224/tcp aaba0xdriixw voltha_fluentdstby replicated 1/1 voltha-fluentd:latest *:30009->24224/tcp watbhno8ylf6 voltha_freeradius replicated 0/0 marcelmaatkamp/freeradius:latest *:1812->1812/udp,*:1813->1813/tcp,*:18120->18120/tcp q58ptpueojha voltha_kafka global 1/1 wurstmeister/kafka:latest *:9092->9092/tcp pqp9o1z0ojpz voltha_netconf global 1/1 voltha-netconf:latest *:830->1830/tcp sthhtxdv6trv voltha_ofagent replicated 1/1 voltha-ofagent:latest uk8c7f3cutpn voltha_onos replicated 1/1 voltha-onos:latest *:6653->6653/tcp,*:8101->8101/tcp,*:8181->8181/tcp jauyicnmzy2m voltha_onos_cluster_manager replicated 1/1 voltha-unum:latest *:5411->5411/tcp vnsladm0ar0b voltha_tools replicated 1/1 voltha-tools:latest *:4022->22/tcp on4hpyuwiyw2 voltha_vcore replicated 1/1 voltha-voltha:latest *:8880->8880/tcp,*:18880->18880/tcp,*:50556->50556/tcp u9g9vaip2nhf voltha_voltha replicated 1/1 voltha-envoy:latest *:8001->8001/tcp,*:8443->8443/tcp,*:8882->8882/tcp,*:50555->50555/tcp hyuak4pr8pt3 voltha_zk1 replicated 1/1 wurstmeister/zookeeper:latest hdshxxj1sxoj voltha_zk2 replicated 1/1 wurstmeister/zookeeper:latest y70234pasn6g voltha_zk3 replicated 1/1 wurstmeister/zookeeper:latest
After all the services are started you can access the VOLTHA CLI using ssh
ssh -p 5022 voltha@localhost
NOTE: The default password used when ssh
-ing into the VOLTHA CLI is admin
.
VOLTHA can be stopped with
VOLTHA_BUILD=docker make stop
The VOLTHA docker images are published on dockerhub.com
as the voltha
repository: https://hub.docker.com/u/voltha/
.
To run VOLTHA using this containers (and therefore not requiring a build) the following command can be used
REPOSITORY=voltha/ VOLTHA_BUILD=docker make start
NOTE: the slash (/
) at the end of the REPOSITORY
specification is required.
Running VOLTHA in this way should produce the following docker service ls
output
ID NAME MODE REPLICAS IMAGE PORTS 86iemjy8q1e1 voltha_cli replicated 1/1 voltha/voltha-cli:latest *:5022->22/tcp sm0zuqcq41go voltha_consul global 1/1 consul:0.9.2 *:8300->8300/tcp,*:8400->8400/tcp,*:8500->8500/tcp,*:8600->8600/udp vx5ir7dsciq3 voltha_fluentd replicated 1/1 voltha/voltha-fluentd:latest *:30014->24224/tcp x1ptzxq37cjw voltha_fluentdactv replicated 1/1 voltha/voltha-fluentd:latest *:30012->24224/tcp wfu6ebh3id6a voltha_fluentdstby replicated 1/1 voltha/voltha-fluentd:latest *:30013->24224/tcp h4r0z661t2u9 voltha_freeradius replicated 0/0 marcelmaatkamp/freeradius:latest *:1812->1812/udp,*:1813->1813/tcp,*:18120->18120/tcp hzhqj0rvjsh8 voltha_kafka global 1/1 wurstmeister/kafka:latest *:9092->9092/tcp vzewlgoxb3j6 voltha_netconf global 1/1 voltha/voltha-netconf:latest *:830->1830/tcp v1uj00lyzgj8 voltha_ofagent replicated 1/1 voltha/voltha-ofagent:latest bafqv7fvb1qb voltha_onos replicated 1/1 voltha/voltha-onos:latest *:6653->6653/tcp,*:8101->8101/tcp,*:8181->8181/tcp umams0s8jq6h voltha_onos_cluster_manager replicated 1/1 voltha/voltha-unum:latest *:5411->5411/tcp tnn5ce8x4k89 voltha_tools replicated 1/1 voltha/voltha-tools:latest *:4022->22/tcp h4c94dvhx0ig voltha_vcore replicated 1/1 voltha/voltha-voltha:latest *:8880->8880/tcp,*:18880->18880/tcp,*:50556->50556/tcp 9l5ubtie7lt4 voltha_voltha replicated 1/1 voltha/voltha-envoy:latest *:8001->8001/tcp,*:8443->8443/tcp,*:8882->8882/tcp,*:50555->50555/tcp k43f3a1wa0hv voltha_zk1 replicated 1/1 wurstmeister/zookeeper:latest kl5lpi0mt35e voltha_zk2 replicated 1/1 wurstmeister/zookeeper:latest t9eh5whkivfe voltha_zk3 replicated 1/1 wurstmeister/zookeeper:latest
Notice the image names in this output are prefixed with voltha/
The default CLI container build as part of VOLTHA only provides password authentication. The following describes how you can build and use a custom CLI container that uses custom SSH keys.
The following command can be used to create a valid SSH key:
ssh-keygen -t rsa -N '' -f ./voltha_rsa
This should generate two files: voltha_rsa
and voltha_rsa.pub
.
NOTE: If a different file name is for the key files then the environment variable PUB_KEY_FILE
will have to be specified when the make custom_cli
is executed, as described below. Additionally, when ssh
-ing to VOLTHA, the modified file should be used.
There is a make target provided to build the custom CLI container.
VOLTHA_BUILD=docker make custom_cli
The custom CLI container will, by default, be names voltha-cli-custom
. If you would like to customize the name of the custom docker CLI, this can be done by setting the environment varible CUSTOM_CLI_LABEL
when executing the make
command, as shown as an example below.
CUSTOM_CLI_LABEL=-my-custom-cli VOLTHA_BUILD=docker make custom_cli
NOTE: This make target will work with both the Docker and non-Docker builds.
Because the default start
make target for VOLTHA uses the default CLI container, the CUSTOM_CLI_LABEL
must be specified when executing the start
make taget in order to use the custom CLI container.
CUSTOM_CLI_LABEL=-custom VOLTHA_BUILD=docker make start
Now that the CLI is active with SSH keys, the following command can be used to SSH without a password to VOLTHA
ssh -i voltha_rsa -p 5022 voltha@localhost