Table of Contents
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 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 in such a way that mostly it to covers both the blueprints IoT Gateway and SD-WAN / WAN Edge and uCPE Blueprints.
In Common features are added in ELIOT Release 2.0, currently following features are included :-
- ELIOT UIPortal
- ELIOT CLI (Command Line Interface) (Only applicable Applicable for IoT Gateway Blueprint)
In Release 2.0 both the features have given some basic operations ; enhancements are planned for future releases.
ELIOT UI 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)
Note |
---|
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.For Installation, there are two mode Auto
Deployment
...
Deployment Architecture
For Release 12.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
Note |
---|
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 / 18.04 04 installed with networking capability and internet capability.
Detail of Hardware requirements can be referred
Minimum Hardware Requirements
ELIOT ManagerPortal Front End | |
---|---|
HW Hardware Aspect | Requirements |
# of Node(s) | A virtualized machine hosted in any Cloud Provider having internet connectivity. |
CPU | Minimum 1 socket x86_AMD64 or ARM64 with Virtualization support. |
RAM | 4 GB, it depends on the number of ELIOT Edge nodes which will be managed by ELIOT Manager. For Deployment in Development environment 8 GB is sufficient. |
Disk | 120 GB ~ 512GB (Depending on the overall ELIOT Topology) |
Networks | 1 |
1 GB, it depends on the number of ELIOT Edge nodes which will be managed by ELIOT Manager.
For Deployment in Development environment 4 GB is sufficient.
Recommended Hardware Requirements
ELIOT ManagerPortal Front End | |||
---|---|---|---|
HW Aspect | Requirementscc | ||
No. of Nodes | A virtualized machine hosted in any Cloud Provider having internet connectivity. | ||
CPU | Minimum 1 socket x86_AMD64 or ARM64 with Virtualization support. | ||
RAM | 8 GB ~ 64 GB it depends on the number of ELIOT Edge nodes which will be managed by ELIOT Manager.32 GB For Deployment in Development environment 4 GB is sufficient. | ||
Disk | 120 GB ~ 512GB (Depending on the overall ELIOT Topology) | ||
Networks | 2 to 4 Network Interfaces with public IP. | ELIOT Edge Node(s) | HW Aspect |
#of Node(s) | 1 Eliot Edge Node | ||
CPU | Minimum 1 socket x86_AMD64 or ARM64 with Virtualization support. | RAM | |
Disk | 20 GB ~ 256GB (Depending on the overall ELIOT Topology) | ||
Networks | 2 Network Interfaces . |
Software Prerequisites
Software Prerequisites
Note |
---|
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) Virtual Machines preinstalled with Ubuntu 16.04.
- SSH Server running on both the Nodes (root user created in the ELIOT Manager and ELIOT Edge NodeSSH Server running in both the Nodes.)
- sshpass installed in ELIOT Manager
- scp 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 and ELIOT Edge Node (Note : This is required when we are setting up the ELIOT using KubeEdge.)git should be installed in ELIOT Manager and ELIOT Edge Node.
ELIOT UI
- Virtual Machine installed with Ubuntu 16.04.
Database Prerequisites
Schema scripts
...
- 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
...
Installation High-Level Overview
In ELIOT Release 1.0 for deployment 2 Ubuntu 16.04 Virtual Machines are used.
The steps includes to setup the following two environments :
...
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
...
Standard Deployment Overview
ELIOT CLI Installation:
Setup the ELIOT CLI and build the ELIOT CLI binary.
No Format |
---|
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.
Code Block |
---|
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
Code Block |
---|
root@akraino-slave-001:#cd go/src/elcli
root@akraino-slave-001:#elcli init |
Reset ELIOT Cluster
Code Block |
---|
root@akraino-slave-001:#cd go/src/elcli
root@akraino-slave-001:#elcli reset |
Cleanup ELIOT Cluster
Code Block |
---|
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:
Pre-requisites - Open source softwares required: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.
...
Note |
---|
Please check the installation of nvm using 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
...
Note |
---|
$ 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 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.
...
No Format |
---|
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
No Format |
---|
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 |
...
Note |
---|
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.
...
Code Block | ||||
---|---|---|---|---|
| ||||
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/releases/v1.1.0/eliotuiblueprint/common/eliot-ui/be/src/eliotk8sclient/ root@akraino-slave-001:# tarmvn -xvzf eliotui-be-$version-$OS-$ARCH.tar.gzclean install root@akraino-slave-001:# cd target root@akraino-slave-001:# jar -jar eliotk8sclient-0.0.1.jar. [The command will start the ELIOT Portal Backend which is a Spring Boot Application.] |
ELIOT Deployment using Kubernetes
Clone the ELIOT git repo in ELIOT Manager node. It will create eliot folder, for executing the script go to $HOME/eliot/scripts folder.
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.
- eliotedgenodeip – ELIOT Edge Node IP
- 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.
No Format |
---|
root@akraino-slave-001:#git clone "https://gerrit.akraino.org/r/eliot"
root@akraino-slave-001:#cd eliot/scripts
root@akraino-slave-001:~/eliot/scripts#vim nodelist
|
Snapshot Deployment Overview
There are two images created for Manager and Node machines. These are .qcow2 files. After deploying the VMs using these images, your setup for ELIOT is ready in minutes. Following is the link to the document to use these images:
Snapshot Deployment Overview
N/A https://docs.google.com/document/d/1TwtDRvxJ_0IFzc5KvO7aaOh3If-jhpCSrccjttQA4LE/edit?usp=sharing
Special Requirements for Virtual Deployments
...
Interacting with Containerized Overcloud
N/A
Verifying the Setup
Verifying ELIOT Kubernetes Deployment
...
The setup script also deploys NGINX server on the ELIOT Edge Node and verifies whether its deployed successful or not.
Developer Guide and Troubleshooting
Uninstall Guide
Following two files can be used to revert the changes made by ELIOT deployment through kubernetes.
...
Troubleshooting
N/A
Error Message Guide
...