Using Maas for desktop deployment


I’m currently testing Maas as a potential deployment tool for laptop desktop.
On our first try, we’ve succeeded to install an Ubuntu 20.04 LTS on a laptop, but we realized that it was a server version.

In fact, the Ubuntu Maas images provided are only designed for server, not desktop. So after reading the documentation & forum discussions, it appears that there are 2 solutions :

  • Use a custom Ubuntu desktop image build by ourself (by using packer). Am I right ?

  • Use a cloud-init user_data, but in this case, the Operating System base remains a server version ? Am I right (again) ?

If anyone has already succeeded in using Maas as a deployment desktop tool, I’m really interested in any information.

Hi @Looping,

you are correct, MAAS is not designed for deploying desktops, although some users had success doing so in the past. You are also correct about your options, either build a custom image or install the desktop packages in the server version.

Thx Alexsander !

If I made not mistakes, the main differences between the Desktop version and the Server version are the GUI, and some packages. So, if we choose the cloud init solution, it would be possible to add/remove packages, and have eventually a desktop build.

The custom images seems (I think) more complex to build.

I’ve been trying to do this for a while. By installing “ubuntu-desktop” with the server edition + cloud-init script, I have a graphical interface, but the graphics card and some additional software are missing. When I try to customize the desktop ISO directly with packer, there is a timeout in the “ssh connection” section.

==> qemu.lvm: Retrieving ISO
==> qemu.lvm: Trying releases . ubuntu . com/22.04.3/ubuntu-22.04.3-desktop-amd64.iso
==> qemu.lvm: Trying releases . ubuntu . com/22.04.3/ubuntu-22.04.3-desktop-amd64.iso?checksum=sha256%3Aa435f6f393dda581172490eda9f683c32e495158a780b5a1de422ee79e907d98e
qemu.lvm:ubuntu-22.04.3-desktop-amd64.iso 4.69 GiB / 4.69 GiB [==================] 100.00% 56s
==> qemu.lvm: releases . ubuntu . com/22.04.3/ubuntu-22.04.3-desktop-amd64.iso?checksum=sha256%3Aa435f6f393dda581172490eda9f683c32e495158a780b5a1de422ee77d98e909 pack.soun_iche =>ubersoun_cache
==> qemu.lvm: Starting HTTP server on port 8293
==> qemu.lvm: Found port for communicator (SSH, WinRM, etc): 3503.
==> qemu.lvm: Looking for available port between 5900 and 6000 on
==> qemu.lvm: Starting VM, booting from CD-ROM
qemu.lvm: The VM will be run headless, without a GUI. If you want to
qemu.lvm: view the screen of the VM, connect via VNC without a password to
qemu.lvm: vnc://
==> qemu.lvm: Overriding default Qemu arguments with qemuargs template option…
==> qemu.lvm: Waiting 2s for boot…
==> qemu.lvm: Connecting to VM via VNC (
==> qemu.lvm: Typing the boot commands over VNC…
qemu.lvm: Not using a NetBridge – skipping StepWaitGuestAddress
==> qemu.lvm: Using SSH communicator to connect:
==> qemu.lvm: Waiting for SSH to become available…

I need to provide the “Ubuntu 2204 Desktop” environment to the users I need and is it enough to install ‘ubuntu-desktop’ on the server edition or how can I solve the ssh part in the desktop edition?

@elperro it should be enough to install ubuntu-desktop as part of your automation if it fits your needs