qbee.io is an embedded edge device management tool that can help you to provision, operate and work with large fleets of remote devices. In this blog article we will reveal a few tips & tricks that will help you to get the most out of the tool.
During the setup phase it is often necessary to access the remote edge devices for debugging. This can be easily done through the built-in remote ssh access functionality in the web application. But sometimes this is not enough. Sometimes you asked yourself “How can I read or write a file on a Linux device behind a firewall”? Maybe you want to access a log file on the remote device or you are doing machine learning on camera data and need to have a look at a specific image that was not classified. For all these cases qbee can help you with the qbee-connect tool and the integrated VPN to find the best possible solution. Simply install and start the qbee-connect app on your Windows, Linux or macOS desktop and connect to the qbee.io system.
Accessing a remote file system
This allows for multiple options with different advantages and focus areas. These are all ssh based:
- do a web based remote ssh login through the web application or start a terminal session with qbee-connect. This is simple, secure and quick, especially through the browser
- use secure remote two-way file access through
scpas described in this guide. This has the advantage that files can easily be uploaded or downloaded according to need.
- remote two-way file and folder synchronisation with
rsyncas described here. This has the advantage that whole folders are synchronised and the file transfer is done with compression. If this operation is repeated only the differences are transmitted. This is very efficient to maintain a true copy of a device folder on a local machine.
- remote file browsing capabilities with
sshfsas described here. This allows you to mount and browse the remote edge device file system locally including the possibility to directly open files. This is very convenient if only log files are investigated or certain settings need to be checked.
Basically this is a (not complete) list of useful tools:
- WinSCP : Windows (
- FileZilla : ALL (
- Cyberduck : MAC (
- SSHFS-Win : Windows (
- SSHFS-FUSE : MAC (
- Grsync : ALL (
- Acrosync : ALL (
Enabling ssh login without password
Sometimes it is convenient to be able to login through ssh without having to type the password all the time. This can be easily achieved with qbee.io. Just use the ssh key distribution mechanism to register your public key. Here is the explanation how to do this.
Running scripts remotely (once or multiple times)
The configuration management part of qbee follows a state based philosophy. That means that configuration should be defined and then the qbee agent on the device tries to converge that state. In case of success (the usual case) a confirmation is given. If something fails an error is reported. This makes it slightly more complicated to run commands once. The solution how to do this anyhow is described here.
Running scripts with different parameters (for different groups in the fleet)
The built-in templating engine makes it possible to roll out scripts to the embedded Linux edge devices and make them run with parameters that can be accessed through the UI. This way the same script can be used with different options for different groups. This is extremely flexible and useful. Please find a detailed use case description here.
One-off file distribution
As a state based tool the qbee agent monitors files. The file in the qbee file manager is the reference. If that file changes it will be distributed again to all embedded Linux edge devices in scope and overwritten there. This is very useful but does not work when you want to change the device on the device. Any change of the file on the device will change the checksum and that causes a new file distribution to happen. Here it is described how to do a one-off file distribution. A typical example is a standard configuration that a user on the machine might want to change individually.
Working with system services
It is possible to stop, restart, enable or disable service on a large number of devices at the same time. This how-to explains how to do this in a very flexible way.
Build, distribute and run binaries using Github or similar
qbee is capable of integrating into build systems. It has a REST API that allows to upload new packages and it offers multiple ways of distributing and deploying those on the edge devices no matter if you have a tarball, a debian package, a binary or similar. In this use case we show how this can be done by using github and the github runner infrastructure. A go software is managed through a git repository on github. Any new commit will trigger a runner that will build the go binary for the correct platform. Then this is securely uploaded to qbee through the API and distributed through the file distribution. As a last step the application is started. The same can be done with basically any process that can produce binaries but it is also possible to do this with python or node-red flows to put them under repository control.
All functions and features of qbee can also be accessed through our REST API. This allows both to receive information into the qbee platform as well as connect information back into other 3rd party systems. We have all metrics, inventory information, the audit trail, logs and much more accessible.
We are here to help
The qbee team has a lot of experience with remote device management and associated topics. Just reach out if you have questions and we can discuss your use case.