I'm diving into the world of automating the imaging and deployment process for a small group of Dell laptops, primarily the Latitude and Precision models running Ubuntu 22.04 and 24.04. I'm curious if anyone has successfully implemented a full image-based deployment for physical laptops at scale—not just virtual machines in a lab setting. I'm currently exploring tools like Packer, QEMU, GitLab pipelines, Vault, and Nautobot, but I'm piecing together what a practical, real-world workflow would look like.
We have about three or four standard Dell models that we distribute, and ideally, I'd like to open up this process beyond IT so that project users can, in a controlled manner, check out and deploy an image themselves. This raises several questions, such as how machines communicate back with the system, how to tie them to the correct asset tags, assigning unique hostnames, and determining a reliable source of truth for all these assets. We're already using Nautobot for inventory, so I wonder if it could serve as our source of truth.
Encryption is another important aspect. Presently, when a regular Ubuntu image is set up, the user gets a standard encryption key. After that, as post-installation scripts run and the machine joins the domain, we create an admin/recovery key, store it securely, and then remove the original provisioning user. I'm interested in knowing how others manage LUKS encryption at deployment, especially if they utilize multiple keys and a recovery process.
I realize this is a complex project and am just starting to explore what options are out there for largely automating the full deployment of Ubuntu desktops on real hardware.
4 Answers
Although my experience might be a bit outdated, years ago, we automatically deployed various Linux distributions using PXE and kickstart. With Ubuntu, we used preseed files instead. Essentially, a PXE server boots an OS installer based on the machine's MAC address, allowing each setup to have unique configuration parameters through specific preseed files. I remember a colleague made scripts that created both boot and preseed files based on inventory info. Might be a way to update this method for your needs.
I may not operate at your scale, but I deploy Zorin, which is based on Ubuntu, manually per unit using a USB. I handle naming during setup, after which I use a script that automates everything else effectively. You can check out the script at https://github.com/glenfieldcollege/Zorin-Configuration-public—might have some useful bits for you, especially regarding directory joins and dynamic network drive mounting based on user logins.
FOG might be something to look into. It had some reliability issues with Ubuntu in the past, but it's worth checking to see if they've resolved them. Also, Canonical has MaaS nowadays, which is rumored to be a pretty solid deployment tool.
Have you contacted Dell's configuration services team? They might have solutions or advice that could streamline your deployment process!

Related Questions
Can't Load PhpMyadmin On After Server Update
Redirect www to non-www in Apache Conf
How To Check If Your SSL Cert Is SHA 1
Windows TrackPad Gestures