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 /etc/lxc/config.yml 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/lxc/servercerts/) and match the remote name (e.g. foo.crt).

An example config 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 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 config, including any associated certificates.