ELIOT Release 2 - ELIOT Operation & Management Features Installation Document (Optional)

Introduction

The main scope of ELIOT  Operation & Management Features is to provide an ecosystem for the end user to operate and manage the ELIOT Topology which can include like checking the health status of ELIOT Edge Nodes, health status of services running on various Edge Nodes, Deploying Application in the ELIOT Cluster (Application deployment in a Kubernetes Cluster) etc.  The features are still evolving and ideas / proposals are always welcome.

The features are to be designed to covers both the blueprints  IoT Gateway and SD-WAN / WAN Edge and uCPE Blueprints.

Common features are added in ELIOT Release 2.0, currently following features are included :-

  • ELIOT Portal
  • ELIOT CLI (Command Line Interface) (Applicable for IoT Gateway Blueprint)

In Release 2.0 both the features have given some basic operations ; enhancements are planned for future releases.

ELIOT Portal :-

ELIOT UI currently provides a GUI in which we can query the various Kubernetes Nodes, Pods and Services are there in the ELIOT Cluster. There are other options which are under development for future releases.

ELIOT CLI :-

ELIOT CLI (Command Line Interface) provide command line interface to setup the ELIOT Cluster. It In the current release following options are available

  • Setup of ELIOT Cluster; setting up of ELIOT Manager and ELIOT Edge Node
  • Reset of ELIOT Cluster - This will reset the ELIOT Cluster - Kubernetes Node Details, Pods , Services.
  • Cleanup of ELIOT Cluster. (This will reset the ELIOT Cluster and uninstall the software in each nodes of the ELIOT Cluster)

Currently this feature is only applicable for IoT Gateway Blueprint and Ubuntu OS Environment.

How to use this document

The document includes details of prerequisites /pre-installation, installation and uninstalls steps.

The prerequisites and pre-installation software and hardware should be ready before executing the installation steps.

Deployment Architecture

For Release 2.0 the Deployment Architecture consists of two nodes  ELIOT Manager and a single ELIOT Edge Node.

ELIOT Manager acts as the Controller Node managing the ELIOT Edge Node(s) and the containerized applications running on the various ELIOT Edge Nodes.

ELIOT CLI has to be installed in the ELIOT Manager Node.

ELIOT Portal has two modules ELIOT UI Front End and ELIOT UI Back End. It is recommended to install the ELIOT UI Front End and Back End in separate Virtual Machines or Bare Metal which are able to ping each other and able to do ssh. ELIOT UI Backend module has to be installed on the ELIOT Manager only.

To deploy the common features one extra node (Bare metal or Virtual Machine) is required for ELIOT UI Front End Module, it is recommended. If one extra node is not available than it can be installed in any cloud Virtual Machine, in which the ELIOT Manager is present.

Pre-Installation Requirements

Hardware Requirements

The hardware requirements mentioned here are the extra nodes which are required apart from ELIOT Cluster required for installing the ELIOT Operation and Maintenance Features.

Hardware requirements  ELIOT Cluster nodes  are mentioned in the respective blueprint Installation Documents. ELIOT Release 2 - IoT Gateway Installation Guide

ELIOT Portal (Front End)

The Hardware requirements is same as the number of nodes required for ELIOT Cluster.

ELIOT Manager - One VM - 8 vCPU - 32 GB RAM (can be hosted in any cloud provider) with Ubuntu OS having internet and network connectivity with ELIOT Edge Node.

ELIOT Edge Node - Ubuntu OS 16.04  installed with networking capability and internet capability.

Detail of Hardware requirements can be referred

Minimum Hardware Requirements

ELIOT Portal Front End
Hardware AspectRequirements
# of Node(s)A virtualized machine hosted in any Cloud Provider having internet connectivity.
CPUMinimum 1 socket x86_AMD64 or ARM64 with Virtualization support.
RAM

4 GB


Disk120 GB ~ 512GB (Depending on the overall ELIOT Topology)
Networks1

Recommended Hardware Requirements

ELIOT Portal Front End
HW AspectRequirements
No. of NodesA virtualized machine hosted in any Cloud Provider having internet connectivity.
CPUMinimum 1 socket x86_AMD64 or ARM64 with Virtualization support.
RAM

8 GB ~ 32 GB

For Deployment in Development environment 4 GB is sufficient.


Disk120 GB ~ 512GB (Depending on the overall ELIOT Topology)
Networks2 to 4 Network Interfaces with public IP.

Software Prerequisites

The software prerequisites mentioned here are the once which are required for the ELIOT Operation & Maintenance features to work successfully.

ELIOT CLI

  • Virtual Machines (ELIOT Manager + ELIOT Edge Node) preinstalled with Ubuntu 16.04.
  • SSH Server running on both the Nodes (ELIOT Manager and ELIOT Edge Node)
  • sshpass installed in ELIOT Manager
  • SCP installed in ELIOT Manager and ELIOT Edge Node
  • GO Lang Version greater 1.12 installed in ELIOT Manager. [https://tecadmin.net/install-go-on-ubuntu/]
  • Git should be installed in ELIOT Manager and ELIOT Edge Node.

ELIOT UI

  • Virtual Machine installed with Ubuntu 16.04.

Database Prerequisites

Schema scripts

N/A

Other Installation Requirements

Jump Host Requirements

N/A

Network Requirements

  • Internet Connectivity in both ELIOT Manager and ELIOT Edge Node
  • ELIOT Manager and ELIOT Node should be able to ping each other. Same network
  • ELIOT Portal Front End Virtual Machine or Bare Metal should be able to ping to the ELIOT Manager Node where ELIOT Portal Back End is Installed.

Bare Metal Node Requirements

N/A

Execution Requirements (Bare Metal Only)

N/A

Installation High-Level Overview

The installation guide provide steps to install ELIOT CLI and ELIOT Portal Feature.

ELIOT CLI Package is installed on the ELIOT Manager Node

ELIOT Portal has two modules ELIOT Portal Front-End and ELIOT Portal Back-End. ELIOT Portal Front End is recommended to be installed on a separate Virtual Machine and ELIOT Portal Back End has to be installed on ELIOT Manager Node. Currently this document

Bare Metal Deployment Guide

Install Bare Metal Jump Host

Currently ELIOT Deployment have been done in Virtual Machines only but the installation steps and scripts will hold good for execution in Bare Metal also if the hardware and software prerequisites are met.

Creating a Node Inventory File

N/A

Creating the Settings Files

N/A

Running

N/A

Virtual Deployment Guide

For Virtual Deployment two Ubuntu VM's are required one for ELIOT Manager and ELIOT Edge Node both the node should have internet connectivity , network interface and network connectivity between the two VM's

Standard Deployment Overview

ELIOT CLI Installation:

Setup the ELIOT CLI and build the ELIOT CLI binary.

root@akraino-slave-001:# git clone "https://gerrit.akraino.org/r/eliot"
root@akraino-slave-001:# cd eliot/blueprints/eliot/common/elcli/
root@akraino-slave-001:# cp -r elcli $GO_HOME/src
root@akraino-slave-001:# go install [this command will build the elcli binary package]

ELIOT CLI Pre-Configuration

Edit the nodelist file with ELIOT Edge Node details. Replace the below contents with the actual value with '|' separated.

<eliotedgenodeusername>|<eliotedgenodeip>|<eliotedgenodepassword>

eliotedgenodeusername :- ELIOT Edge Node User Name. Example : akraino-slave-002
eliotedgenodeip :-  ELIOT Edge Node IP. Example : 159.123.1.50
eliotedgenodepassword :- ELIOT Edge Node Password used in setup.sh script to login to ELIOT Edge node from ELIOT Manager to execute scripts in ELIOT Edge node.

The ELIOT Edge Node should be reachable from ELIOT Manager and ssh should work from ELIOT Manager to ELIOT Edge node as a prerequisite.

root@akraino-slave-001:#cd eliot/blueprints/iotgateway/scripts
root@akraino-slave-001:~/eliot/blueprints/iotgateway/scripts#vim nodelist

Once the above configurations are done, we can execute the ELIOT CLI Commands for installing , reset and clean up of ELIOT Cluster.

ELIOT CLI Commands Details:

Setup ELIOT Cluster

root@akraino-slave-001:#cd go/src/elcli
root@akraino-slave-001:#elcli init

Reset ELIOT Cluster

root@akraino-slave-001:#cd go/src/elcli
root@akraino-slave-001:#elcli reset

Cleanup ELIOT Cluster

root@akraino-slave-001:#cd go/src/elcli
root@akraino-slave-001:#elcli cleanup

ELIOT Portal Setup:

ELIOT Cluster should be setup first before Installing ELIOT Portal Setup

ELIOT Portal Front-End:

Packages To Be Installed :-

  • Node Packet Manager ( npm )      -     6.10.2 / any latest version

  • Node.js                                                       -     12.9.0 / any latest version

  • Angular8                                                   -     8.2.2 / any latest version

Install nvm - Node Version Manager

Node Version Manager helps to manage the version of node and also used to switch between the versions with ease.

root@akraino-slave-001:$ curl https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash

Close and reopen the terminal.

root@akraino-slave-001:$ source ~/.profile
root@akraino-slave-001:$ nvm --version

Please check the installation of nvm  then proceed

Command : nvm --version command should output the version of node version manager

Install nodejs server

Nodejs will play the role of server to run our ELIOT Portal UI

Below command will install latest version of npm (Node Packet manager) and nodejs

root@akraino-slave-001:# nvm install v12.9.0

$ nvm install node

If the above command is issued instead of the mentioned command, it will install the latest versions of npm and node server

Please check the installation of node and npm using 

root@akraino-slave-001:# npm --version
root@akraino-slave-001:# node --version

npm --version command should display the version of npm

node --verison should display version of node

Install Angular 8:

Angular 8 is a open source framework used to create responsive dynamic single page web applications.  It internally uses typescript.  

Below command will install Angular 8 which is an open source software distribution by google

root@akraino-slave-001:# npm install -g @angular/cli@latest

Setup ELIOT Portal by downloading the node modules as dependencies:

ELIOT portal UI code of angular8 requires some dependency packages of node modules. By executing the following commands, dependency node modules will get downloaded automatically

root@akraino-slave-001:# git clone "https://gerrit.akraino.org/r/eliot"
root@akraino-slave-001:# cd eliot/common/eliot-ui/frontend-src
root@akraino-slave-001:# npm install
root@akraino-slave-001:# npm start

Default, it will start the UI on 4200 port

https://localhost:4200

ELIOT Portal Backend Setup:

The ELIOT Portal Back-End module has to be executed on the ELIOT Manager Node. The backend server will receive REST API requests from ELIOT Frontend and response back the results of the ELIOT Cluster.

The ELIOT Portal Backend module has to be installed only after the ELIOT Cluster has been setup or at least the ELIOT Manager with running Kubernetes Cluster.  In the ELIOT Manager node kubernetes config file should be present in $HOME/.kube folder with admin access.

Software Prerequisites:

1. Java Version 1.8 [ https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html]

Note: Other software prerequisites are similar to the one mentioned required for ELIOT Manager node.

Steps to Run ELIOT UI Backend Server:

Start ELIOT Backend
root@akraino-slave-001:# git clone "https://gerrit.akraino.org/r/eliot" [If this step is already executed can be ignored]
root@akraino-slave-001:# cd eliot/blueprint/common/eliot-ui/be/src/eliotk8sclient/
root@akraino-slave-001:# mvn clean install
root@akraino-slave-001:# cd target
root@akraino-slave-001:# jar -jar eliotk8sclient-0.0.1.jar. [The command will start ELIOT Portal Backend which is a Spring Boot Application.]

Snapshot Deployment Overview

N/A

Special Requirements for Virtual Deployments

N/A

Install Jump Host

N/A

Verifying the Setup - VM's

N/A

Upstream Deployment Guide

Upstream Deployment Key Features

N/A

Special Requirements for Upstream Deployments

N/A

Scenarios and Deploy Settings for Upstream Deployments

N/A

Including Upstream Patches with Deployment

N/A

Running

N/A

Interacting with Containerized Overcloud

N/A

Verifying the Setup

Developer  Guide and Troubleshooting

Uninstall Guide

Troubleshooting

N/A

Error Message Guide

N/A

Maintenance

Blueprint Package Maintenance

Software maintenance

N/A

Hardware maintenance

N/A

Blueprint Deployment Maintenance

N/A

Frequently Asked Questions

N/A

License

Any software developed by the "Akraino ELIOT" Project is licensed under the
Apache License, Version 2.0 (the "License");
you may not use the content of this software bundle except in compliance with the License.
You may obtain a copy of the License at <https://www.apache.org/licenses/LICENSE-2.0>

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

References


Definitions, acronyms and abbreviations