Skip to main content

Prepare Remote Hosts

An ioFog Edge Compute Network ('ECN') is composed of an ioFog Controller and a set of ioFog Agents. A typical ECN will have each instance of the various components deployed on a different remote host.

ECN's are deployed using potctl. The following steps will ensure that our remote hosts are ready to have potctl deploy ECN components onto them remotely.

Add SSH RSA Public Key to the Remote Host

potctl will SSH into our remote hosts using an RSA SSH key-pair we specify.

We add the public key of the key-pair that we intend to use with potctl to the remote host to deploy ECN components onto. For example, we could run a command like this:

ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<controller-or-agent-hostname>

We do this for Controller host (only when we intend to deploy Controller directly, i.e. not to Kubernetes cluster) and all the agents. Node this is the key we will later use to deploy Controller and Agent using potctl, please keep track of it.

Add the Remote Host's User to Sudo Group

potctl will need to run certain commands as sudo. In order to do this without using the root user, we must add the user we intend to use on the remote host to the sudo group. Run this command on all the remote host:

usermod -aG sudo $USER

Allow Sudoers to Sudo without Password

In order to prevent potctl from failing its SSH sessions, we need to ensure that the sudoers in the remote host can run commands without having to enter a password. Note that potctl is unable to prompt the user for passwords.

We can achieve this by editing the sudoers file by first running su visudo on the remote host. This will open up the sudoers file for editing. Make sure this line is present in the file %sudo ALL=(ALL) NOPASSWD:ALL.