/
OAM: Deployment Guideline

OAM: Deployment Guideline

1. Introduction

Detail the approach of steps for OAM deployment.

1.1 Description

With respect to Operation and Maintenance (OAM) the SMO implements the O1-interface consumers.
According to the O-RAN OAM Architecture and the O-RAN OAM Interface Specification, the SMO implements a NETCONF Client for configuration and a HTTP/REST/VES server for receiving all kind of events in VES format.

The O-RAN-SC OAM deployment contains an OpenDaylight based NETCONF client and an ONAP VES Collector. Kafka is used as massage router for communication between the components. The Keycloak implementation offers and Identity service, while treafik acts as reverse proxy to terminate all incoming https traffic.

1.2 System topology

 

image-20241023-111326.png

2. Minimum Requirements

Detail the hardware and software requirements necessary for the installation.

  • 4x Cores

  • 16 GB RAM

  • 100 GB Storage

  • Ubuntu 24.04.1 LTS Operating System

  • Docker version 27.2.0, build 3ab4256

  • Docker Compose version v2.29.2

  • git version 2.43.0

  • Python 3.12.3

  • pip3 install jproperties

  • apt install python3.12-venv

3. Installation

step-by-step instructions for deployment

3.1 Step 1:

The reverse proxy implementation requires fully qualified domain names to route the traffic to the different SMO/OAM components.

Avoiding the setup of a DNS which may interfere with other DNS the following lines should be added in your /etc/hosts file.

  • <your-system>: is the hostname of the system, where the browser is started

  • <deployment-system-ipv4>: is the IP address of the system where the solution will be deployed

In addition, 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.dd' and replace it.

For development purposes <your-system> and <deployment-system> may reference the same system.

# replace xxx.yyy.zzz.www by your routable IP address grep -arl --include=*\.env 'aaa.bbb.ccc.dd' * | while read -r file; do sed -i 's/aaa.bbb.ccc.dd/xxx.yyy.zzz.www/g' "$file" done

Expected Result:

$ cat /etc/hosts [...] # SMO OAM development system <deployment-system-ipv4> smo.o-ran-sc.org <deployment-system-ipv4> gateway.smo.o-ran-sc.org <deployment-system-ipv4> identity.smo.o-ran-sc.org <deployment-system-ipv4> messages.smo.o-ran-sc.org <deployment-system-ipv4> kafka-bridge.smo.o-ran-sc.org <deployment-system-ipv4> odlux.oam.smo.o-ran-sc.org <deployment-system-ipv4> flows.oam.smo.o-ran-sc.org <deployment-system-ipv4> tests.oam.smo.o-ran-sc.org <deployment-system-ipv4> controller.dcn.smo.o-ran-sc.org <deployment-system-ipv4> ves-collector.dcn.smo.o-ran-sc.org 

3.2 Step 2:

Create an python environment.

python3 -m venv .oam source .oam/bin/activate pip3 install jproperties pip3 install jinja2 pip3 install requests # your system IP is required in .env files, please see explanations below python3 ./adopt_to_environment.py -i <deployment-system-ipv4>

Please remember and ensure that you always run python scripts in this environment using the command

source .oam/bin/activate

3.3 Step 3:

Docker compose commands are used to bring up the solution. For configurations python scripts are available.

source .oam/bin/activate docker compose -f smo/common/docker-compose.yaml up -d --wait python smo/common/identity/config.py # user configuration docker compose -f smo/oam/docker-compose.yaml up -d docker compose -f smo/apps/docker-compose.yaml up -d # you can test the OAM functions using the simulaters of from O-RAN-SC Sim project docker compose -f network/docker-compose.yaml up -d docker compose -f network/docker-compose.yaml restart ntsim-ng-o-du-1122 python network/config.py ```

Expected Result: 

$ python3 network/config.py Set O-DU-1122 True Set O-RU-11222 True Set O-RU-11224 True Set O-RU-11223 True Set O-RU-11221 True

You can check our deployment using the docker ps command:

$ docker ps -a --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" NAMES IMAGE STATUS ntsim-ng-o-du-1122 nexus3.o-ran-sc.org:10004/o-ran-sc/nts-ng-o-ran-du:1.8.1 Up 55 seconds ntsim-ng-o-ru-11222 nexus3.o-ran-sc.org:10004/o-ran-sc/nts-ng-o-ran-ru-fh:1.8.1 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.8.1 Up About a minute ntsim-ng-o-ru-11224 nexus3.o-ran-sc.org:10004/o-ran-sc/nts-ng-o-ran-ru-fh:1.8.1 Up About a minute ntsim-ng-o-ru-11221 nexus3.o-ran-sc.org:10004/o-ran-sc/nts-ng-o-ran-ru-fh:1.8.1 Up About a minute flows nodered/node-red:latest-configured Up 2 minutes (healthy) wireshark lscr.io/linuxserver/wireshark Up 2 minutes tests jenkins/jenkins:lts Up 2 minutes ves-collector nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.10.1-configured Up 2 minutes (healthy) controller nexus3.onap.org:10001/onap/sdnc-image:2.6.1 Up 2 minutes (healthy) odlux nexus3.onap.org:10001/onap/sdnc-web-image:2.6.1 Up 2 minutes kafka-bridge http://quay.io/strimzi/kafka-bridge:0.25.0 Up 24 minutes (healthy) messages nexus3.onap.org:10001/onap/dmaap/dmaap-mr:1.1.18 Up 24 minutes identity bitnami/keycloak:18.0.2 Up 24 minutes kafka nexus3.onap.org:10001/onap/dmaap/kafka111:1.0.4 Up 24 minutes topology nexus3.o-ran-sc.org:10002/o-ran-sc/smo-nts-ng-topology-server:1.5.2 Up 24 minutes (healthy) identitydb bitnami/postgresql:13 Up 24 minutes persistence mariadb:11.1.2 Up 24 minutes (healthy) zookeeper nexus3.onap.org:10001/onap/dmaap/zookeeper:6.0.3 Up 24 minutes gateway traefik:v2.9.6 Up 24 minutes (healthy)4. Post-Installation Verification

4. Post-Installation Verification

Outline how to verify that the installation was successful.

4.1 Step 1: Login

Please see the available users and there default password in file

smo/common/identity/authentication.json

Open the ODLUX UI for login:

https://odlux.oam.smo.o-ran-sc.org

 

image-20241023-112910.png

Please click on “ONAP-IDENTITY”.

image-20241023-113123.png
First time login with default users and passwords as specified in smo/common/identity/authentication.json

When the user logs in the first time the default password must be changed.

image-20241023-113331.png

Expected Result:

  • successful login

image-20241023-113509.png
See login name in the upper right corner.

4.2 Step 2:

Please move to “Connect” to see the connection status to the simulated O-RAN.

Expected Result:

 

image-20241022-184725.png

5. Troubleshooting

Provide common issues and their solutions.

In case of trouble please look into log files:

### Log files and karaf console #### ODL karaf.logs docker exec -it controller tail -f /opt/opendaylight/data/log/karaf.log #### ves-collector logs docker logs -f ves-collector

6. Additional Resources

List of additional documentation, links, or resources that may be helpful.

 

Related content