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 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 |
Disk | 120 GB ~ 512GB (Depending on the overall ELIOT Topology) |
Networks | 1 |
Recommended Hardware Requirements
ELIOT Portal Front End | |
---|---|
HW Aspect | Requirements |
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 ~ 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. |
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.
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:
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.