The jaia
command line tool aims to be the single entry point for all advanced configuration and administration of JaiaBots and Hubs.
The jaia
tool has numerous actions (some of which have subactions of their own). To see the full list of actions available, type:
To see the options of an action, you can type (for example, the version
action):
This works recursively for any child action, e.g.,
Many of the actions (jaia ip
, jaia ping
, jaia ssh
) act on another (remote) host (Bot or Hub). The remote host is specified using a shorthand that encodes the host type (bot or hub), ID, network, and fleet ID.
At its simplest the shorthand is bNfM for Bot N on fleet M or hIfJ for Hub I on Fleet J. This uses the local network for fleet operations.
Bots or Hubs may be connected via the Cloud (see the Cloud Computing page for more details) or via the service VPN for remote support. In these cases a character before the fleet 'f' is used to indicate the network in use:
s
- service VPN (vpn.jaia.tech)v
- VirtualFleet VPN (for virtual bots/hubs)c
- CloudHub VPN (for remote bots/hubs).Thus, Bot 5 on VirtualFleet 3 would be b5vf3
, or (real) Hub 1 Fleet 10 via the Cloud would be h1cf10
. For servicing hosts remotely, Bot 2 on Fleet 4 would be b2sf4
.
Additionally, if you are on a bot or hub that has source /etc/jaiabot/runtime.env
so that the environmental variable jaia_fleet_index
is defined for the current fleet, you can omit fN
and the current fleet will be used.
The regex for this host shorthand is ([bh])([0-9]+)([svc]?)(f([0-9]+))?|(ch)(f([0-9]+))?
.
Several special cases exist for the host string:
chfM
for fleet Mjaia
is being run on (that is, localhost).These related commands provide remote functionality using host codes given above.
jaia ip <host>
simply gives the IP address for a given host code, e.g.,
jaia ip b1sf2
- Bot 1 Fleet 2 via service VPNjaia ip h3vf1
- Hub 3 VirtualFleet 1jaia ip b4
- Bot 4 for the same fleet as the machine this was run on.jaia ssh
uses the same codes but runs ssh
to remotely log into the given system. Any parameters passed after the host code is passed unmodified to SSH:
jaia ssh b3f5
- SSH into Bot3 on Fleet 5jaia ssh b3f5 -A
- SSH into Bot3 on Fleet 5 using ssh -A
(i.e., Forwarding of connections from ssh-agent
).jaia ssh b4
- SSH into Bot 4 on this fleet.jaia ping
is just like jaia ssh
but runs ping
to check connectivity to a host. Similarly, all parameters after the host code are appended to the ping
command line unmodified.
On a given system the version action provides the software version of the jaiabot
code and its primary dependencies (Goby, MOOS, IvP, etc.).
jaia version
- list all versionsjaia version --format=json
list all versions in JSONjaia version jaiabot
lists just the jaiabot version.As usual, jaia help version
gives the full set of options.
Keep in mind that you can pair jaia ssh
with any command to execute it remotely. For example, to see the versions of jaiabot and friends running on CloudHub for Fleet 1:
jaia status
provides a summary of the systemd status of the JaiaBot services (this is the same output you receive on the SSH login MOTD).
This is a thin wrapper around systemctl for jaiabot
services.
sudo jaia ctl stop
- same as sudo systemctl stop jaiabot
sudo jaia ctl start
- same as sudo systemctl start jaiabot
sudo jaia ctl restart
- same as sudo systemctl restart jaiabot
sudo jaia ctl restart jaiabot_goby_gps
- same as sudo systemctl restart jaiabot_goby_gps
As always, you can use jaia ssh
to execute remotely, e.g. to restart all services on Bot1 for Fleet10:
These subactions are used to administer a fleet of JaiaBots. Currently the only subaction is ssh
which manages SSH keys for a given host. See the SSH Access page for more details.