...
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_
...
- 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/hosts-aio
- Here user can use the private IP af a node
eliot/blueprints/iotgateway/playbooks/var.
...
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
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
...
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)
Vendor: vendor(any general name)
2.
- Login to
...
- MECM Portal https://ip:
...
2 1.1. Add sandbox env to deploy application before publish1 click on Systems ->App LCM ->New Registration
Click System ->Host Management ->Add Host
Name: Applcm(any general name)
Name: general name IP: applcm"public ip"
System: k8s Port: Lcmip: sandbox ip(for testing purpose can provide edge ip, if no sandbox env)
mecHost: sandbox ip(for testing purpose can provide edge ip, if no sandbox env)
30204
1.2. click on Systems ->App Store ->New Registration
App Store Name: appstore(any general name)
Port: 31252 Protocol: https IP: Appstore public ip
Architecture: X86 Status: Normal Port: 30099
Port Range: leave as it is Address: Bangalore Appstore Repo: {HarborIP:443}(192.168.1.1:443)
UploadConfig File: upload sandboxenvkubeconfig file Repo Name: appstore(any general name)
2.2 Click on Workspace -> Create Project -> Application Integration -> Start - 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. -Click System ->Host Management ->Add Host
Name: general name
System: k8s After config upload, click next and click start deployment - After Deployment is success, click on Release Recourses
Note: Lcmip: sandbox ip(for testing purpose can provide edge ip, if no sandbox env)
mecHost: sandbox ip(for testing purpose can provide edge ip, if no sandbox env)
Port: 31252- 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
- gitee.com/edgegallery/applications repo provides, A lot of applications with their logo, deployment yaml & user guides
2.4. Now click on Application Release
Protocol: https
Architecture: X86
Status: Normal
Upload Port Range: leave as it is
file for Application Description 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
...
Coordinates: 116.39,39.90.90
Architecture: x86
Capabilities: select none
MEPM: select applcm node from dropdown
3.2. Download /root/.kube/config file from edge node
Architecture: x86 Capabilities: select noneAnd click on Upload config file to upload.
4. Demonstration of application Development & Deployment
MEPM: select applcm node from dropdown4.1 Application Development
3.2. Download /root/.kube/config file from edge node link - https://www.youtube.com/watch?v=AjQNG5d3p84&t=23s
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 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
...