When using LXD, you have several ways to manage your server configuration and your instances: with a simple command line tool, directly through the REST API, through the web UI or by using third-party tools and integrations.
LXD offers an intuitive and crisp CLI for easy operations. To control LXD, you typically use two different commands: lxd and lxc. The lxd command is used to control the daemon and is typically used only for initialisation and debugging. The lxc command is the command-line client that you use to interact with your instances. See lxc --help for an overview of all available subcommands.Get started with the LXD CLI
LXD REST API
All communication between LXD and its clients happens using a RESTful API over HTTP. This means you can easily integrate LXD with any other tool you use for managing your infrastructure, and you can easily set up scripts as needed. LXD implements a single REST API for both local and remote access.Learn more about the LXD REST API
LXD graphical user interface
An official LXD UI tool is now available as an experimental feature. The UI supports most of the functionalities surrounding managing instances. More features coming soon.
Try LXD UI
Enable the UI
The LXD UI is packaged together with the LXD snap, but it is still considered an experimental feature that needs to be enabled with:
snap set lxd ui.enable=true
snap restart --reload lxd
Expose LXD server to the host
To access the UI, you need to make sure your LXD server is exposed to the host. You can enable this with:
lxc config set core.https_address :8443
Set up the authentication certificates
Access the UI in your browser by entering the server address (for example, https://192.0.2.10:8443) and follow the authentication steps presented in the UI.
Juju is an open source orchestration engine for software operators that enables the deployment, integration and lifecycle management of applications at any scale, on any infrastructure.
Juju can be used to deploy a variety of workloads across many different clouds and virtualisation providers. It supports both deploying workloads against a LXD server or cluster and using LXD on the machines it's deploying to separate otherwise colocated services.
Take a look at the Step-by-Step Guide for LXD in the Juju documentation.
MAAS is an open source server provisioning software tool for your data centre.
Self-service, remote installation of Windows, CentOS, ESXi and Ubuntu on real servers turns your data centre into a bare metal cloud.
MAAS integrates with LXD to provide easy creation of virtual machines. It can automatically deploy and configure LXD as part of the deployment of a physical machine or can be connected to an existing LXD deployment to dynamically create virtual machines on it.
Ansible is an open source software provisioning, configuration management and application-deployment tool.
The main integrations between Ansible and LXD are:
- A connection plugin allowing Ansible to manage a LXD instance just as any other Linux system
- An inventory plugin to detect LXD instances
- A plugin to create and manage LXD containers
- A plugin to manage LXD profiles
To manage LXD in Ansible, you need a LXD server (see Getting started).
Terraform is an open source infrastructure-as-code software tool for configuration and service management.
The LXD integration allows Terraform to deploy instances on LXD servers with support for local and remote deployments.
Take a look at the Terraform documentation on LXD for more information.
To manage LXD in Terraform, you need a LXD server (see Getting started).
Bolt is an open source orchestration tool that automates the manual work it takes to maintain your infrastructure.
The LXD transport allows for interacting with LXD instances.
For more information, see the Puppet Bolt Documentation on LXD.
To manage LXD in Puppet Bolt, you need a LXD server (see Getting started).
Packer is an open source tool for creating identical machine images for multiple platforms.
With Packer's LXD builder, it's possible to re-use your existing cloud image building pipeline and with the LXD builder, build a LXD container image.
Take a look at the Packer documentation on LXD for more information.
To create LXD images in Packer, you need a LXD server (see Getting started).
Need more help with LXD?
Let our LXD experts help you take the next step.