Working with remote boards

Here are some general tips for working with remote boards (that is, boards in remote labs)

using a jump server

If you have an SSH jump server, then you can access machine directly in another lab, using the SSH ProxyCommand in the host settings for a board.

I found this page to be helpful: https://www.tecmint.com/access-linux-server-using-a-jump-host/

You should try to make each leg of the jump (from local machine to jump server, and from jump server to remote machine) password-less.

I found that if my local machine’s public key was in the remote machine’s authorized keys file, then I could log in without a password, even if the jump server’s public key was not in the remote machine’s authorized keys file.

Using ttc transport remotely

If you have a server that already has ttc configured for a bunch of board, you can accomplish a lot just by referencing ttc commands on that server.

For example, in your local ttc.conf, you can put:

PASSWORD=foo
USER=myuser
SSH_ARGS=-o UserKnownHostsFile=/dev/null -o StrictHostKeychecking=no -o LogLevel=QUIET

pos_cmd=ssh timdesk ttc %(target)s pos
off_cmd=ssh timdesk ttc %(target)s off
on_cmd=ssh timdesk ttc %(target)s on
reboot_cmd=ssh timdesk ttc %(target)s reboot

login_cmd=sshpass -p %(PASSWORD)s ssh %(SSH_ARGS)s -x %(USER)s@%(target)s
run_cmd=sshpass -p %(PASSWORD)s ssh %(SSH_ARGS)s -x %(USER)s@%(target)s "$COMMAND"
copy_to_cmd=sshpass -p %(PASSWORD)s scp %(SSH_ARGS)s $src %(USER)s@%(target)s:/$dest
copy_from_cmd=sshpass -p %(PASSWORD)s scp %(SSH_ARGS)s %(USER)s@%(target)s:/$src $dest

Note

Note that ttc status <remote-board> command does not work with ttc version 1.4.4. This is due to internal usage of %(ip_addr)s in the function network_status(), which will not be correct for the remote-board.

Setting up ssh ProxyCommand in the Fuego docker container

Please note that tests in Fuego are executed inside the Docker container as user ‘jenkins’.

In order to set up password-less operation, or use of a jump server or ProxyCommand, you have to add appropriate items (config and keys) to /var/lib/jenkins/.ssh.

Please note that this may make your Docker container a security risk, as it may expose your private keys to tests. Please use caution when adding private keys or other sensitive security information to the Docker container.