Remotes

Introduction

Remotes are a concept in the LXD command line client which are used to refer to various LXD servers or clusters. A remote is effectively a name pointing to the URL of a particular LXD server as well as needed credentials to login and authenticate the server. LXD has four types of remotes:

  • Static

  • Default

  • Global (per-system)

  • Local (per-user)

Static

Static remotes are:

  • local (default)

  • ubuntu

  • ubuntu-daily

They are hardcoded and can’t be modified by the user.

Default

Automatically added on first use.

Global (per-system)

By default the global configuration file is kept in either /etc/lxd/config.yml, or /var/snap/lxd/common/global-conf/ for the snap version, or in LXD_GLOBAL_CONF if defined. The configuration file can be manually edited to add global remotes. Certificates for those remotes should be stored inside the servercerts directory (e.g. /etc/lxd/servercerts/) and match the remote name (e.g. foo.crt).

An example configuration is below:

remotes:
  foo:
    addr: https://10.0.2.4:8443
    auth_type: tls
    project: default
    protocol: lxd
    public: false
  bar:
    addr: https://10.0.2.5:8443
    auth_type: tls
    project: default
    protocol: lxd
    public: false

Local (per-user)

Local level remotes are managed from the CLI (lxc) with: lxc remote [command]

By default the configuration file is kept in ~/.config/lxc/config.yml, or ~/snap/lxd/common/config/config.yml for the snap version, or in LXD_CONF if defined. Users have the possibility to override system remotes (e.g. by running lxc remote rename or lxc remote set-url) which results in the remote being copied to their own configuration, including any associated certificates.