ss-remote

Ok great, you have a cluster host prepared and your management machine prepped and ready to go. The next step is to take the cluster host under management of your SSME with the ss-remote command, a bash alias for remote.sh.

Taking a Cluster Host under Management

Taking a remote SSH endpoint under management is as simple as issuing the following command which creates a new LXD remote called dev. The SSME will reach out to clusterhost01.domain.tld (defined in your DNS server) using SSH/t and installs and initializes LXD on the remote host.

ss-remote dev clusterhost01.domain.tld --disk=/dev/nvme0n1p3

The --disk flag should be set to the device corresponding to the large UNFORMATTED partition.

You can also specify --data-plane-interface=<eno1> is the physical network interface that VMs will attach to expose services on the network underlay (i.e., SERVERS_VLAN). Note, if you only have ONE physical interface on the device, it is UNNECESSARY to specify the --data-plane-interface. If you have two or more physical interfaces, then you can separate the data plane from the management plane.

remote.conf

If this is the first time you're running the command, Sovereign Stack will stub ~/ss/remotes/dev/remote.conf . You should review the config file and set it up to match your particular requirements, then run the ss-remote command again so it completes.

# see https://www.sovereign-stack.org/ss-remote for more info!

LXD_REMOTE_PASSWORD="NGFnZo05I1OYRhbLBPA="
DEPLOYMENT_STRING="(dev|regtest),(staging|testnet)"
# REGISTRY_URL=http://registry.domain.tld:5000

LXD_REMOTE_PASSWORD is automatically generated for you. But DEPLOYMENT_STRING requires some consideration. In the above example, you can expect TWO distinct deployments, one called dev running on regtest, and one called staging running on bitcoin testnet. production-mainnet would be the next obvious choice.


At the end of remote.sh, a new LXD remote is created in your SSME. Finally, the lxc client is switched to the remote such that any subsequent lxc commands target that remote. You can use lxc remote list to get information about your currect remotes, including the active remote. lxc remote get-default is another useful command.

💡
Note! Your LXD remotes DO NOT survive the standard uninstall.sh script. Thus, if you uninstall and re-install, you will have to run ss-remote again to establish control over an existing remote endpoint.