X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=solution%2FREADME.md;h=036b803495245f0b1b8043fb43317840574037b8;hb=HEAD;hp=74ccb9f54fd3fed5b9a84f630614c351c2b027fa;hpb=1f3641173d73f1d90f1ca7d9d0ade833e237f2d0;p=oam.git diff --git a/solution/README.md b/solution/README.md index 74ccb9f..036b803 100644 --- a/solution/README.md +++ b/solution/README.md @@ -35,6 +35,14 @@ with the following components. ## Prerequisites +### Resources + +The solution was tested on a VM with + +- 4x Core +- 16 GBit RAM +- 50 Gbit Storage + ### Operating (HOST) System ``` @@ -88,6 +96,10 @@ export PYTHONWARNINGS="ignore:Unverified HTTPS request" ### ETC Host (DNS function) +Please change in the different .env files the environment variable 'HOST_IP' +to the IP address of the system where you deploy the solution - search for +'aaa.bbb.ccc.ddd' and replace it. + Please modify the /etc/hosts of your system. * \: is the hostname of the system, where the browser is started @@ -103,50 +115,16 @@ $ cat /etc/hosts # SMO OAM development system smo.o-ran-sc.org - gateway.smo.o-ran-sc.org + gateway.smo.o-ran-sc.org identity.smo.o-ran-sc.org messages.smo.o-ran-sc.org - ves-collector.oam.smo.o-ran-sc.org + kafka-bridge.smo.o-ran-sc.org odlux.oam.smo.o-ran-sc.org - controller.oam.smo.o-ran-sc.org - -``` - -## Expected Folder Structure - -The following figure show the expected folder structure for the different -docker-compose file and its configurations. - -``` -├── network -│ ├── .env -│ ├── config.py -│ ├── docker-compose.yml -│ │ -│ ├── ntsim-ng-o-du -│ └── ntsim-ng-o-ru -└── smo - ├── apps - │ ├── .env - │ ├── docker-compose.yml - │ └── flows - ├── common - │ ├── .env - │ ├── docker-compose.yml - │ │ - │ ├── docker - │ ├── gateway - │ ├── identity - │ ├── messages - │ ├── kafka - │ └── zookeeper - └── oam - ├── .env - ├── docker-compose.yml - │ - ├── odlux - ├── controller - └── ves-collector + flows.oam.smo.o-ran-sc.org + tests.oam.smo.o-ran-sc.org + controller.dcn.smo.o-ran-sc.org + ves-collector.dcn.smo.o-ran-sc.org + ``` ## Usage @@ -159,18 +137,16 @@ The following commands should be invoked. More detailed can be found in the next chapters. ``` -docker compose -f smo/common/docker-compose.yml up -d -# wait until the cpu load is low again +docker compose -f smo/common/docker-compose.yaml up -d python smo/common/identity/config.py -docker compose -f smo/oam/docker-compose.yml up -d -docker compose -f smo/apps/docker-compose.yml up -d +docker compose -f smo/oam/docker-compose.yaml up -d +docker compose -f smo/apps/docker-compose.yaml up -d # wait until the cpu load is low again -docker compose -f network/docker-compose.yml up -d -# wait about 2min -docker restart ntsim-ng-o-du-1122 +docker compose -f network/docker-compose.yaml up -d +docker compose -f network/docker-compose.yaml restart ntsim-ng-o-du-1122 ntsim-ng-o-du-1123 python network/config.py ``` @@ -187,10 +163,10 @@ nano network/.env Please note that it is necessary to configure first the identity service, before starting further docker images. -The several docker-compose yml files must be started in the right order as listed below: +The several docker-compose yaml files must be started in the right order as listed below: ``` -docker compose -f smo/common/docker-compose.yml up -d +docker compose -f smo/common/docker-compose.yaml up -d python smo/common/identity/config.py ``` @@ -199,7 +175,7 @@ A system user (%USER) is also created with administration rights. ``` -docker compose -f smo/oam/docker-compose.yml up -d +docker compose -f smo/oam/docker-compose.yaml up -d ``` Looking into the ONAP SDN-R logs will give you the startup procedure. @@ -211,20 +187,20 @@ docker logs -f controller If you see the login page (https://odlux.oam.smo.o-ran-sc.org) you are good to go and can start the (simulated) network. ``` -docker compose -f network/docker-compose.yml up -d +docker compose -f network/docker-compose.yaml up -d ``` Usually the first ves:event gets lost. Please restart the O-DU docker container(s) to send a second ves:pnfRegistration. ``` -docker compose -f network/docker-compose.yml restart ntsim-ng-o-du-1122 +docker compose -f network/docker-compose.yaml restart ntsim-ng-o-du-1122 python network/config.py ``` The python script configures the simulated O-DU and O-RU according to O-RAN hybrid architecture. -O-DU - NETCONF Call HOME and NETCONF notifications -O-RU - ves:pnfRegistration and ves:fault, ves:heartbeat +O-RU - NETCONF Call HOME and NETCONF notifications +O-DU - ves:pnfRegistration and ves:fault, ves:heartbeat ![ves:pnfRegistration in ODLUX](docs/nstim-ng-connected-after-ves-pnf-registration-in-odlux.png "ves:pnfRegistration in ODLUX") @@ -259,13 +235,21 @@ docker logs -f ves-collector #### Access to SDN-R ODLUX -##### Login into SDN-R - https://odlux.oam.smo.o-ran-sc.org - User: admin // see .env file + User: admin - Password: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U + Password: // see .env file + +In case of trouble, please update the commands with your customized '.env' file. + +#### Access to Node Red Flows + + https://flows.oam.smo.o-ran-sc.org + + User: admin + + Password: // see .env file In case of trouble, please update the commands with your customized '.env' file. @@ -274,10 +258,10 @@ In case of trouble, please update the commands with your customized '.env' file. To stop all container please respect the following order ``` -docker compose -f network/docker-compose.yml down -docker compose -f smo/apps/docker-compose.yml down -docker compose -f smo/oam/docker-compose.yml down -docker compose -f smo/common/docker-compose.yml down +docker compose -f network/docker-compose.yaml down +docker compose -f smo/apps/docker-compose.yaml down +docker compose -f smo/oam/docker-compose.yaml down +docker compose -f smo/common/docker-compose.yaml down ``` ### Cleanup @@ -298,3 +282,81 @@ The commands ... docker ps -a docker-compose ps docker rm -f $(docker ps -aq) + +## Commands in action + +``` +$ docker ps -a --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" +NAMES IMAGE STATUS +$ docker compose -f smo/common/docker-compose.yaml up -d +[+] Running 9/9 + ✔ Network smo Created 0.1s + ✔ Network dmz Created 0.1s + ✔ Container zookeeper Started 1.6s + ✔ Container persistence Started 1.5s + ✔ Container identitydb Started 1.2s + ✔ Container gateway Healthy 12.1s + ✔ Container kafka Started 2.2s + ✔ Container identity Started 13.4s + ✔ Container messages Started 13.4s +$ python3 smo/common/identity/config.py +Got token! +User leia.organa created! +User r2.d2 created! +User luke.skywalker created! +User jargo.fett created! +User role jargo.fett supervision created! +User role leia.organa administration created! +User role luke.skywalker provision created! +User role r2.d2 administration created! +$ docker compose -f smo/oam/docker-compose.yaml up -d +[+] Running 4/4 + ✔ Network oam Created 0.1s + ✔ Container controller Healthy 83.4s + ✔ Container ves-collector Started 1.2s + ✔ Container odlux Started 84.0s +$ docker compose -f smo/apps/docker-compose.yaml up -d +WARN[0000] Found orphan containers ([odlux controller ves-collector]) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up. +[+] Running 1/1 + ✔ Container flows Started 0.9s +$ docker compose -f network/docker-compose.yaml up -d +WARN[0000] Found orphan containers ([flows odlux controller ves-collector]) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up. +[+] Running 6/6 + ✔ Container ntsim-ng-o-du-1123 Started 2.6s + ✔ Container ntsim-ng-o-ru-11223 Started 2.2s + ✔ Container ntsim-ng-o-ru-11221 Started 1.9s + ✔ Container ntsim-ng-o-ru-11224 Started 1.9s + ✔ Container ntsim-ng-o-du-1122 Started 2.4s + ✔ Container ntsim-ng-o-ru-11222 Started 2.3s +$ docker compose -f network/docker-compose.yaml restart ntsim-ng-o-du-1122 ntsim-ng-o-du-1123 +[+] Running 2/2 + ✔ Container ntsim-ng-o-du-1122 Started 2.8s + ✔ Container ntsim-ng-o-du-1123 Started 2.9s +$ python3 network/config.py +Set O-RU-11221 True +Set O-RU-11224 True +Set O-RU-11222 True +Set O-DU-1123 True +Set O-DU-1122 True +Set O-RU-11223 True +$ docker ps -a --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" +NAMES IMAGE STATUS +ntsim-ng-o-ru-11221 nexus3.o-ran-sc.org:10004/o-ran-sc/nts-ng-o-ran-ru-fh:1.6.2 Up 4 minutes +ntsim-ng-o-ru-11224 nexus3.o-ran-sc.org:10004/o-ran-sc/nts-ng-o-ran-ru-fh:1.6.2 Up 4 minutes +ntsim-ng-o-ru-11222 nexus3.o-ran-sc.org:10004/o-ran-sc/nts-ng-o-ran-ru-fh:1.6.2 Up 4 minutes +ntsim-ng-o-du-1123 o-ran-sc/nts-ng-o-ran-du-rel-18:1.6.2 Up 54 seconds +ntsim-ng-o-du-1122 nexus3.o-ran-sc.org:10004/o-ran-sc/nts-ng-o-ran-du:1.6.2 Up About a minute +ntsim-ng-o-ru-11223 nexus3.o-ran-sc.org:10004/o-ran-sc/nts-ng-o-ran-ru-fh:1.6.2 Up 4 minutes +flows nodered/node-red:latest-configured Up 4 minutes (healthy) +odlux nexus3.onap.org:10001/onap/sdnc-web-image:2.4.2 Up 7 minutes +controller nexus3.onap.org:10001/onap/sdnc-image:2.4.2 Up 8 minutes (healthy) +ves-collector nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.10.1-configured Up 8 minutes (healthy) +messages nexus3.onap.org:10001/onap/dmaap/dmaap-mr:1.1.18 Up 11 minutes +identity bitnami/keycloak:18.0.2 Up 11 minutes +kafka nexus3.onap.org:10001/onap/dmaap/kafka111:1.0.4 Up 11 minutes +zookeeper nexus3.onap.org:10001/onap/dmaap/zookeeper:6.0.3 Up 11 minutes +identitydb bitnami/postgresql:13 Up 11 minutes +persistence docker.elastic.co/elasticsearch/elasticsearch-oss:7.9.3 Up 11 minutes +gateway traefik:v2.9 Up 11 minutes (healthy) +$ +```