OOM ONAP offline installer
Installation Guide
(Community Edition)
1. Introduction for CE1 delivery
2. Environment
3. Preparation (before installation)
4. Installation
4.1 Deploy infrastructure
4.2 ONAP deployment
Version Control
Version | Date | Modified by | Comment |
0.1 | 13.10.2018 | Michal Ptacek | First draft |
Contributors
Name | |
Michal Ptá?ek | m.ptacek@partner.samsung.com |
Samuli Silvius | s.silvius@partner.samsung.com |
Timo Puha | t.puha@partner.samsung.com |
Petr Ospalý | p.ospaly@partner.samsung.com |
Pawel Mentel | p.mentel@samsung.com |
Witold Kopeld | w.kopel@samsung.com |
Anchor | ||||
---|---|---|---|---|
|
This installation guide is covering instruction on how to deploy ONAP using Samsung offline installer. Precondition is successfully build SI (Self-Installer) package, which is addressed in previous guide. All artifacts needed for this deployment were collected from online OOM ONAP Beijing deployment from Beijing branch. Release was verified on RHEL7.4 deployments (rhel cloud image). If different rhel74 images are used, there might be some problems related to package clashes. Image was downloaded from RedHat official site.
{+}https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.4/x86_64/product-software+
Red Hat Enterprise Linux 7.4 KVM Guest Image
Last modified: 2018-03-23
SHA-256 Checksum: b9fd65e22e8d3eb82eecf78b36471109fa42ee46fc12fd2ba2fa02e663fd21ef
Note |
---|
Later on it might be possible to use different than cloud rhel74 image, currently support of additional platform is not planned. |
Current limitations are:
- Tested on rhel74 cloud image (on openstack VMs only)
- Verified by vFWCL demo (In OpenStack environment only, inside same tenant where ONAP is deployed).
2. Environment
Note |
---|
Install_server is in some context also referenced as infrastructure node, also it's node hosting rancher server container. |
HW footprint:
- install_server: (nexus, nginx,dns,rancher_server)
- Red Hat Enterprise Linux 7.4 KVM Guest Image
- 16G+ RAM
- 200G+ disk space (minimum 160GB)
- 10G+ swap
- 8+ vCPU
- install_server: (nexus, nginx,dns,rancher_server)
- kubernetes_node(s): (rancher_agent, ONAP OOM node)
- Red Hat Enterprise Linux 7.4 KVM Guest Image
- 64G+ RAM
- 120G+ disk space
- 10G+ swap
- 16+ vCPU
- kubernetes_node(s): (rancher_agent, ONAP OOM node)
3. Preparation (before installation)
- (Step1) Ensure passwordless root login - From install_server to kubernetes_nodes
As we’re using cloud rhel7.4 image, root access is by default disabled. It’s possible to login into all VM’s just by using cloud-user and using known key inserted during spawning by cloud-init.
Installation scripts requires to be executed under root user (non-root user with sudoers right is not sufficient, will be done later as a hardening topic) and it requires passwordless login to other k8s nodes.
In general cases to achieve passwordless connection, one can just create own key using ssh-keygen and distribute public key created for example in /root/.ssh/id_rsa.pub to /root/.ssh/authorized_keys file on all k8s nodes.
On OpenStack created instances cloud related text prohibiting root login should be removed as well (described in step below).
If VMs were spawned in Openstack, this procedure could be used to allow ssh under root user (with private key):
Code Block |
---|
[root@rc3l-install-server ~]# ssh rc3-install-compute2
The authenticity of host 'r2-install-compute2 (10.6.6.13)' can't be established.
ECDSA key fingerprint is SHA256:645LdswQyZtoxHBv3+6hvC62liAdwEkbr8w6sN392YI
ECDSA key fingerprint is MD5:32:a6:70:26:0a:ae:56:c1:e3:2a:b6:fa:b7:40:5a:d6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rc3-install-compute2,10.6.6.13' (ECDSA) to the list of known hosts.
Please login as the user "cloud-user" rather than the user "root".
|
One need to login into those servers as cloud-user (using correct openstack key)
Code Block |
---|
[root@rc3l-install-server ~]# ssh -i ~/correct_key cloud-user@rc3-install-compute2 |
Switch to root user:
Code Block |
---|
[cloud-user@rc3-install-compute2 ~]$ sudo su -
|
And adapt it by removing highlighted text (cloud related text prohibiting root login):
Code Block |
---|
[root@rc3-install-compute2 ~]# vi /root/.ssh/authorized_keys
# The following ssh key was injected by Nova
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"cloud-user\" rather than the user \"root\".';echo;sleep 10" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPwF2bYm2QuqZpjuAcZDJTcFdUkKv4Hbd/3qqbxf6g5ZgfQarCi+mYnKe9G9Px3CgFLPdgkBBnMSYaAzMjdIYOEdPKFTMQ9lIF0+i5KsrXvszWraGKwHjAflECfpTAWkPq2UJUvwkV/g7NS5lJN3fKa9LaqlXdtdQyeSBZAUJ6QeCE5vFUplk3X6QFbMXOHbZh2ziqu8mMtP+cWjHNBB47zHQ3RmNl81Rjv+QemD5zpdbK/h6AahDncOY3cfN88/HPWrENiSSxLC020sgZNYgERqfw+1YhHrclhf3jrSwCpZikjl7rqKroua2LBI/yeWEta3amTVvUnR2Y7gM8kHyh Generated-by-Nova
|
Note |
---|
In some environments RootLogin might be prohibited completely, this might be enabled by setting-up PermitRootLogin yes in /etc/ssh/sshd_config and service sshd reload. |
After having done this to all kubernetes nodes, one should check access as root to
verify that password-less root login works, it should be able to access all k8s nodes
w/o any password prompt.
e.g.:
Code Block |
---|
root@oom-beijing-rc3-install:~# ssh oom-beijing-RC3-node1
root@oom-beijing-rc3-install:~# ssh oom-beijing-RC3-node2
|
- (Step 2) Create installation directory on install_server (e.g. /root/installer) and move self-contained archive (installation script) into it.
Be sure there is enough space (more than 160G)
Code Block |
---|
mkdir /root/installer |
Note: this is the place, where archive will be extracted. Original file can be removed after deployment.
- (Step 3) Create new file local_repo.conf in installation directory, with following information:
Code Block |
---|
LOCAL_IP=<install_server_ip>
NODES_IPS='<node_ip1> <node_ip2> … <node_ipn>'
|
E.g.
LOCAL_IP=10.8.8.7
NODES_IPS='10.8.8.10 10.8.8.11'
This will ensure that infrastructure deployment together with setting-up kubernetes will be done non-interactively.
We should be ready to proceed with installation part.
4. Installation
4.1 Deploy infrastructure
In this part infrastructure will be deployed. More specifically local nexus, dns, rancher & docker will be deployed on install server. Kubernetes nodes will get rancher agent running and form kubernetes cluster.
(Step1) To execute a script simply run (from installation directory):
Code Block cd /root/installer /root/installer/selfinstall_onap_beijing_RC3.sh
- (Step2) Answer questions asked by the script (if needed)
Note: questions will be asked only when script won't be able to find config file (local_repo.conf) in the current folder, otherwise script will use existing config file.
And Wait until script finish execution.
- (Step3) Verify that k8s cluster is ready and operational
One can verify, that infrastructure deployment was successful in following way:
following should display healthy etcd-0 component
Code Block kubectl get cs
following should display 2 kubernetes nodes in "Ready" state.
Code Block kubectl get nodes
4.2 ONAP deployment
Before ONAP is deployed ./oom/kubernetes/onap/values.yaml in OOM should be configured accordingly to cover correct VIM (Openstack) credentials.
Also number of deployed ONAP components might be modified in there.If ONAP is going to be also tested by reproducing vFWCL Demo ./oom/kubernetes/robot/values.yaml should be configured before ONAP is deployed in OOM.
Configuration of onap & robot values.yaml described in "Appendix 4" paragraph.
- (Step1) Trigger the deployment of ONAP
To execute ONAP installation run (from installation directory):
Code Block |
---|
./deploy_onap.sh |
This script will finish quite quickly and it will just launch ONAP deployment.
- (Step2) Check the progress of the deployment
Note |
---|
The only not running pod using sign-off Beijing images (2.0.0 branch) is: Progress of the real deployment can be followed by monitoring number of "not running pods" and it usually takes around ~1 hr. |
Check-box:
E.g. following command can be used to track progress of deployment
Code Block |
---|
$ while true; do date;kubectl get pods -n onap -o=wide| grep -v 'Runn|NAME' | wc -l;sleep 30;done |
- (Step3) Verify it's functionality
All ONAP health-checks should pass, launch robot health checks, from inside oom/kubernetes/robot folder.
Code Block |
---|
root@oom-beijing-rc3-master:oom/kubernetes/robot# ./ete-k8s.sh onap health
Starting Xvfb on display :88 with res 1280x1024x24
Executing robot tests at log level TRACE
==============================================================================
OpenECOMP ETE
==============================================================================
OpenECOMP ETE.Robot
==============================================================================
OpenECOMP ETE.Robot.Testsuites
==============================================================================
OpenECOMP ETE.Robot.Testsuites.Health-Check :: Testing ecomp components are...
==============================================================================
Basic A&AI Health Check | PASS |
------------------------------------------------------------------------------
Basic AAF Health Check | PASS |
------------------------------------------------------------------------------
Basic AAF SMS Health Check | PASS |
------------------------------------------------------------------------------
Basic APPC Health Check | PASS |
------------------------------------------------------------------------------
Basic CLI Health Check | PASS |
------------------------------------------------------------------------------
Basic CLAMP Health Check | PASS |
------------------------------------------------------------------------------
Basic DCAE Health Check | PASS |
------------------------------------------------------------------------------
Basic DMAAP Message Router Health Check | PASS |
------------------------------------------------------------------------------
Basic External API NBI Health Check | PASS |
------------------------------------------------------------------------------
Basic Log Elasticsearch Health Check | PASS |
------------------------------------------------------------------------------
Basic Log Kibana Health Check | PASS |
------------------------------------------------------------------------------
Basic Log Logstash Health Check | PASS |
------------------------------------------------------------------------------
Basic Microservice Bus Health Check | PASS |
------------------------------------------------------------------------------
Basic Multicloud API Health Check | PASS |
------------------------------------------------------------------------------
Basic Multicloud-ocata API Health Check | PASS |
------------------------------------------------------------------------------
Basic Multicloud-titanium_cloud API Health Check | PASS |
------------------------------------------------------------------------------
Basic Multicloud-vio API Health Check | PASS |
------------------------------------------------------------------------------
Basic OOF-Homing Health Check | PASS |
------------------------------------------------------------------------------
Basic OOF-SNIRO Health Check | PASS |
------------------------------------------------------------------------------
Basic Policy Health Check | PASS |
------------------------------------------------------------------------------
Basic Portal Health Check | PASS |
------------------------------------------------------------------------------
Basic SDC Health Check | PASS |
------------------------------------------------------------------------------
Basic SDNC Health Check | PASS |
------------------------------------------------------------------------------
Basic SO Health Check | PASS |
------------------------------------------------------------------------------
Basic UseCaseUI API Health Check | PASS |
------------------------------------------------------------------------------
Basic VFC catalog API Health Check | PASS |
------------------------------------------------------------------------------
Basic VFC emsdriver API Health Check | PASS |
------------------------------------------------------------------------------
Basic VFC gvnfmdriver API Health Check | PASS |
------------------------------------------------------------------------------
Basic VFC huaweivnfmdriver API Health Check | PASS |
------------------------------------------------------------------------------
Basic VFC jujuvnfmdriver API Health Check | PASS |
------------------------------------------------------------------------------
Basic VFC multivimproxy API Health Check | PASS |
------------------------------------------------------------------------------
Basic VFC nokiavnfmdriver API Health Check | PASS |
------------------------------------------------------------------------------
Basic VFC nokiav2driver API Health Check | PASS |
------------------------------------------------------------------------------
Basic VFC nslcm API Health Check | PASS |
------------------------------------------------------------------------------
Basic VFC resmgr API Health Check | PASS |
------------------------------------------------------------------------------
Basic VFC vnflcm API Health Check | PASS |
------------------------------------------------------------------------------
Basic VFC vnfmgr API Health Check | PASS |
------------------------------------------------------------------------------
Basic VFC vnfres API Health Check | PASS |
------------------------------------------------------------------------------
Basic VFC workflow API Health Check | PASS |
------------------------------------------------------------------------------
Basic VFC ztesdncdriver API Health Check | PASS |
------------------------------------------------------------------------------
Basic VFC ztevnfmdriver API Health Check | PASS |
------------------------------------------------------------------------------
Basic VID Health Check | PASS |
------------------------------------------------------------------------------
Basic VNFSDK Health Check | PASS |
------------------------------------------------------------------------------
OpenECOMP ETE.Robot.Testsuites.Health-Check :: Testing ecomp compo... | PASS |
43 critical tests, 43 passed, 0 failed
43 tests total, 43 passed, 0 failed
==============================================================================
OpenECOMP ETE.Robot.Testsuites | PASS |
43 critical tests, 43 passed, 0 failed
43 tests total, 43 passed, 0 failed
==============================================================================
OpenECOMP ETE.Robot | PASS |
43 critical tests, 43 passed, 0 failed
43 tests total, 43 passed, 0 failed
==============================================================================
OpenECOMP ETE | PASS |
43 critical tests, 43 passed, 0 failed
43 tests total, 43 passed, 0 failed
==============================================================================
Output: /share/logs/ETE_0001_health/output.xml
Log: /share/logs/ETE_0001_health/log.html
Report: /share/logs/ETE_0001_health/report.html |