Introduction
...
1. Generate public key :
- ssh-keygen -t rsa
2. Setup password-less login
...
-
- If you get authentication issue you can change the permission
# Open file: vi /etc/ssh/sshd_config
- PermitRootLogin yes
- PasswordAuthentication yes
# Restart ssh service:
- sudo systemctl restart ssh.service
...
For EdgeGallery AIO mode:
Login from ocd to center and ocd to edge in a single node.
- sshpass -p <password> ssh-copy-id -p <ssh-port> -o StrictHostKeyChecking=no root@<node_
...
3. cp -p /etc/passwd /etc/passwd.bkp
cp -p /etc/group /etc/group.bkp
id ubuntu
groupmod -g 600 ubuntu
id ubuntu
4. Review and Change Parameters
For EdgeGallery AIO Mode:
eliot/blueprints/iotgateway/playbooks/hosts-aio
- Here user can use the private IP as a master IP
...
- ip>
For EdgeGallery Muno mode:
Login from ocd to center in a controller node
- sshpass -p <password> ssh-copy-id -p <ssh-port> -o StrictHostKeyChecking=no root@<controller-node_ip>
- sshpass -p <password> ssh-copy-id -p <ssh-port> -o StrictHostKeyChecking=no root@<edge-node_ip>
Login from ocd to edge in a edge node
- sshpass -p <password> ssh-copy-id -p <ssh-port> -o StrictHostKeyChecking=no root@<controller-node_ip>
- sshpass -p <password> ssh-copy-id -p <ssh-port> -o StrictHostKeyChecking=no root@<edge-node_ip>
3. These command are require in both AIO and MUNO(Controller and Edge Node ) mode.
cp -p /etc/passwd /etc/passwd.bkp
cp -p /etc/group /etc/group.bkp
id ubuntu
groupmod -g 600 ubuntu
id ubuntu
4. Review and Change Parameters
For EdgeGallery AIO Mode:
eliot/blueprints/iotgateway/playbooks/var.yml
...
hosts-aio
- Here user can use the private IP af a node
eliot/blueprints/iotgateway/playbooks/var.yml
- NETWORK_INTERFACE: regex for network interface on the VM. (user can be check ineterrface name by ifconfig and provide inerface name accordingly for example like eth.* )
- MASTER_IP: Here user can use the private IP as of a MASTER_IPnode
- PORTAL_IP: If portal need to be access over internet then uncomment the PORTAL_IP and use public IP as a PORTAL_IP otherwise portal will be accessible only on private IP default.
...
- NETWORK_INTERFACE: regex for network interface on the VM. (user can be check ineterrface name by ifconfig and provide inerface name accordingly for example like eth.* )
- MASTER_IP: Here user can use the private IP as a MASTER_IP 0f a controller node
- PORTAL_IP: If portal need to be access over internet then uncomment the PORTAL_IP and use public IP as a PORTAL_IP otherwise portal will be accessible only on private IP default.
CONTROLLER_MASTER_IP: IP of the Controller master which is used for Edge to connect Uncomment the PORTAL_IP and use private IP of a the Controller node
eliot/blueprints/iotgateway/playbooks/muno-config/edge/hosts-muno-edge
...
- NETWORK_INTERFACE: regex for network interface on the VM. (user can be check ineterrface name by ifconfig and provide inerface name accordingly for example like eth.* )
- MASTER_IP: Here user can use the private IP as a MASTER_IP PORTAL_IP: If portal need to be access over internet then uncomment the PORTAL_IP and use public IP as a PORTAL_IP otherwise portal will be accessible only on private IP default.of a edge node
- OCD_IP: Here user can use the private IP of a Controller NodeNode which is used for Edge to connect
eliot/blueprints/iotgateway/playbooks/password-var.yml
...
- Here user can put the public IP in center, edge, ocdhost node.
Installing Mode : ELIOT using Ansible-Playbooks
...
Once the execution is completed in console will see prompt "ELIOTEdge Environment Installed , Components Install ELIOT Master and EDGE Nodes Successfully"
...
Components and Services running ELIOT IotGateway/ Edge Node
Deploy Application in ELIOT
- Login to MECM Portal https://ip:30093
1.1 click on Systems ->App LCM ->New Registration
Name: Applcm(any general name)
IP: applcm"public ip"
Port: 30204
1.2. click on Systems ->App Store ->New Registration
App Store Name: appstore(any general name)
IP: Appstore public ip
Port: 30099
Appstore Repo: {HarborIP:443}(192.168.1.1:443)
Repo Name: appstore(any general name)
Repo Username: admin(harbor user name)
...
Repo Password: Harbor12345(harbor password) 1.1 click on Systems ->App LCM ->New Registration
Vendor Name: vendor(any general name)
2. Login to Developer Portal https://ip:30092
2.1. Add sandbox env to deploy application before publishApplcm(any general name)
Click System ->Host Management ->Add Host
IP: applcm"public ip"
Name: general name Port: System: k8s30204
Lcmip: sandbox ip(for testing purpose can provide edge ip, if no sandbox env) 1.2. click on Systems ->App Store ->New Registration
mecHost: sandbox ip(for testing purpose can provide edge ip, if no sandbox env) App Store Name: appstore(any general name)
Port: 31252 IP: Appstore public ip
Protocol: https Architecture Port: X86 30099
Status: Normal Port Range: leave as it is Appstore Repo: {HarborIP:443}(192.168.1.1:443)
Address: Bangalore UploadConfig File: upload sandboxenvkubeconfig file
2.2 Click on Workspace -> Create Project -> Application Integration -> Start
Repo Name: appstore(any general name)
- Provide App Name, Version, Provider, Workload Type, Architecture, Industry, Type. Repo Username: admin(harbor user name)
- Upload Icon, provide Description. And click on confirm.
2.3. Now click on Deployment Test.
Repo Password: Harbor12345(harbor password)
- Upload Docker images directly from portal by clicking on Upload App Image Vendor: vendor(any general name)
2. Login to Developer Portal https://ip:30092
Or, directly push Docker images to Harbor repo (takes lesser time, preferred) 2.1. Add sandbox env to deploy application before publish
- Click next, upload deployment yaml file now. - After config upload, click next and click start deployment Click System ->Host Management ->Add Host
Name: general name
- After Deployment is success, click on Release Recourses System: k8s
Note: Lcmip: sandbox ip(for testing purpose can provide edge ip, if no sandbox env)
- While Deployment test if any error happens, open ATP portal (https://ip:30094) in another tab of browser, sing in, come back to developer portal and re run deployment test mecHost: sandbox ip(for testing purpose can provide edge ip, if no sandbox env)
Port: 31252
Protocol: https
- gitee.com/edgegallery/applications repo provides, A lot of applications with their logo, deployment yaml & user guides 2.4. Now click on Application Release Architecture: X86
Status: Normal
Upload file for Application Description Port Range: leave as it is
Address: Bangalore
Click save config, click Next Step, click Start Test, scroll down to find & click Start Test button, click Next Step, click publish to publish application to appstore. UploadConfig File: upload sandboxenvkubeconfig file
3. Login to MECM Portal https://ip:30093
...
Location: select from drop downdown
Address: yanta
Coordinates: 116.39,39.90
Architecture: x86
Capabilities: select none
Address: yanta MEPM: select applcm node from dropdown
Coordinates: 116.39,39.90 3.2. Download /root/.kube/config file from edge node
Architecture: x86 And click on Upload config file to upload.
4. Demonstration of application Development & Deployment
Capabilities: select none4.1 Application Development
MEPM: select applcm node from dropdownlink - https://www.youtube.com/watch?v=AjQNG5d3p84&t=23s
3.2. Download /root/.kube/config file from edge node 4.2 Application Deployment
And click on Upload config file to upload.
link - https://www.youtube.com/watch?v=PbxKpslVnmc&t=31s
Developer Guide and Troubleshooting
...
S. No | Software | Type | Version | License | Remarks |
1. | Docker | CRI | 18.09 | Apache 2.0 license | No code modifications done |
2. | Kubernetes | Orchestration | v1.18.7 | Apache 2.0 license | No code modifications done |
3. | Edge Gallery | Open Source MEC Platform | 1.1.1 | Apache 2.0 license | Open Source MEC Platform |
4. | Grafana | Monitoring | 7.1.1 | Apache 2.0 license |
EDGE / IotGateway Node
S. No | Software | Type | Version | License Information | Remarks |
1. | Docker | CRI | 18.09 | Apache 2.0 license | No code modifications done |
2. | K8s | Orchestration | 1.18.7 | Apache 2.0 license | No code modifications done |
3. | Edge Gallery | Open Source MEC Platform | 1.1.1 | Apache 2.0 license | No code modifications done |
4. | cAdvisor | Container Metrics | v0.36.0 | Apache 2.0 license | No code modifications done |
5. | RabbitMQ | Message Broker | 3.7 | Mozilla Public License | No code modifications done. RabbitMQ image is deployed as is. |
6. | Prometheus | Metrics Collector | 9.3.1 | Apache 2.0 license | Code part of Edge Gallery |
7. | OPC-UA | IoT Protocol | Geneva | Apache 2.0 license | Upstream |
11 | EdgeX | Services | Edinburgh | Apache 2.0 license | Upstream |
References
Demonstration of application Development & Deployment
Application Development
link - https://www.youtube.com/watch?v=AjQNG5d3p84&t=23s
...
Definitions, acronyms and abbreviations
...