From 0d497bd3ac571c55d578faf21a5370e6cbf3edc9 Mon Sep 17 00:00:00 2001 From: WuKong Date: Tue, 18 Jul 2017 17:55:10 +0200 Subject: review moonv4 Change-Id: Iaadd2d24871ebca3e8ba741ae21d2c0dc2d6879a Signed-off-by: WuKong --- moonv4/README.md | 154 +++++++++++-------------------------------------------- 1 file changed, 31 insertions(+), 123 deletions(-) (limited to 'moonv4/README.md') diff --git a/moonv4/README.md b/moonv4/README.md index e47f763c..ba334a7d 100644 --- a/moonv4/README.md +++ b/moonv4/README.md @@ -30,67 +30,59 @@ sudo gpasswd -a ${USER} docker sudo service docker restart ``` -### Get the code +## Launch MySql, RabbitMQ, Keystone containers +TODO: put all the containers to `dockerhub` +### moon_mysql:v4.1 + +### moon_rabbitmq:v4.1 +### moon_keystone:v4.1 ```bash -git clone https://opnfv.org/moon -cd moon/moonv4 -export MOON_HOME=$(pwd) -sudo ln -s $(pwd)/conf /etc/moon +docker container run -dti --net moon --hostname keystone --name keystone -e DB_HOST=db -e DB_PASSWORD_ROOT=p4sswOrd1 -p 35357:35357 -p 5000:5000 asteroide/keystone_mitaka:latest ``` -## Create an OpenStack environment -see the templates/docker/keystone/README.md -Or execute directly `bin/start.sh` +## Install Orchestrator +### Get the code -## Launch all other containers of Moon -### Build python packages for all components -TODO: containerize moon_orchestrator ```bash -cd ${MOON_HOME}/moon_orchestrator -sudo pip3 install pip --upgrade -cd ${MOON_HOME}/bin -source build_all.sh +git clone https://git.opnfv.org/moon +cd moon/moonv4 +export MOON_HOME=$(pwd) +sudo ln -s $(pwd)/conf /etc/moon ``` -## Moon_Orchestrator ### Start Orchestrator To start the Moon platform, you have to run the Orchestrator. +TODO: put all Python packages to PIP + ```bash cd ${MOON_HOME}/moon_orchestrator -sudo apt-get install python3-venv (or apt-get install -y python3 python-virtualenv on Ubuntu 14.04) -pyvenv tests/venv (or virtualenv tests/venv on Ubuntu 14.04) +sudo apt install python3-venv +pyvenv tests/venv . tests/venv/bin/activate -sudo pip3 install -r requirements.txt --upgrade -sudo pip3 install dist/moon_db-0.1.0.tar.gz --upgrade -sudo pip3 install dist/moon_utilities-0.1.0.tar.gz --upgrade -sudo pip3 install . --upgrade -# Check the proxy settings and edit dist_dir variable in $(MOON_HOME)/moon_orchestrator/etc/moon.conf -# Adapt the path used in the cd command in $(MOON_HOME)/bin/start.sh -source ../bin/start.sh +pip3 install -r requirements.txt --upgrade +pip3 install dist/moon_db-0.1.0.tar.gz --upgrade +pip3 install dist/moon_utilities-0.1.0.tar.gz --upgrade +pip3 install . --upgrade +moon_db_manager upgrade ``` -### Tests -```bash -sudo pip3 install pytest -cd ${MOON_HOME}/moon_interface/tests/apitests -pytest -``` +### `/etc/moon/moon.conf` +- edit `dist_dir` variable +- check each `container` variable -## Configure DB -### Relaunch Keystone docker -If error of `get_keystone_projects()`, then relaunch the Keystone docker, and wait 40 seconds!!! +Launch `Moon Orchestrator` ```bash -docker rm -f keystone -docker run -dti --net moon --name keystone --hostname=keystone -e DB_HOST=db -e DB_PASSWORD_ROOT=p4sswOrd1 -p 35357:35357 -p 5000:5000 keystone:mitaka +moon_orchestrator ``` -### Add default data in DB -Pre-fill the DB with a RBAC policy +### Tests +In the Python venv ```bash +pip3 install pytest cd ${MOON_HOME}/moon_interface/tests/apitests -python3 populate_default_values.py scenario/ rbac.py +pytest ``` ## Log @@ -102,87 +94,3 @@ docker logs keystone docker logs moon_router docker logs moon_interface ``` - -### Get some statistics -```bash -docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.PIDs}}" -``` - -### Get the API in PDF -```bash -cd ${MOON_HOME}/moon_interface/tools -sudo pip3 install requests -sudo apt-get install pandoc -/usr/bin/python3 api2rst.py -sudo apt-get install texlive-latex-extra -pandoc api.rst -o api.pdf -evince api.pdf -``` - - -## How to hack the Moon platform -### Force the build of components - -If you want to rebuild one or more component, you have to modify the configuration file `moon.conf`. - -For example, if you want to rebuild the moon_interface, got to the `[interface]` section and delete the -value of the container key like this: - -``` -[interface] -host=172.18.0.11 -port=38001 -# Name of the container to download (if empty build from scratch) -# example: container=moon/moon_interface:latest -container= -``` - -You can configure the interface, the router and both the security_function and security_policy. -You can also force the version of the component like this: `container=moon/moon_interface:4.0.0` - -### Update the moon_interface - -Go to the directory `${MOON_HOME}/moon_interface` and update the code accordingly to your needs, -then update the python package. - -```bash -cd ${MOON_HOME}/moon_interface -python setup.py sdist -cp dist/moon_interface_* ../moon_orchestrator/dist -# kill moon_orchestrator if needed and restart it -``` - -### Update the moon_secrouter - -Go to the directory `${MOON_HOME}/moon_secrouter` and update the code accordingly to your needs, -then update the python package. - -```bash -cd ${MOON_HOME}/moon_secrouter -python setup.py sdist -cp dist/moon_secrouter* ../moon_orchestrator/dist -# kill moon_orchestrator if needed and restart it -``` - -## Problems that may arise - -If the moon_orchestrator doesn't want to start -(with, for example, the following error: `docker.errors.APIError: 409 Client Error: Conflict`), -check if the router and interface containers still exist and kill and delete them: - -```bash -docker kill moon_interface -docker kill moon_router -docker rm moon_interface -docker rm moon_router -``` - -If the moon_orchestrator complains that it cannot request the RabbitMQ server, -check if the messenger server is up and running: - -```bash -docker ps -# you must see the messenger running here -# if not, restart it -docker run -dti --net=moon --hostname messenger --name messenger --link messenger:messenger -e RABBITMQ_DEFAULT_USER=moon -e RABBITMQ_DEFAULT_PASS=password -e RABBITMQ_NODENAME=rabbit@messenger -e RABBITMQ_DEFAULT_VHOST=moon -p 5671:5671 -p 5672:5672 rabbitmq:3-management -``` -- cgit 1.2.3-korg