LinuxESP is an automated Ubuntu Linux deployment solution that mimics the Windows Autopilot Enrollment Status Page (ESP) experience. It simplifies the process of enrolling Ubuntu workstations into Intune and deploying Microsoft Defender for Endpoint (MDE), eliminating the need for manual installation of tools like Intune Portal, MDE, and Edge, while also supporting customizable development environments.
- 📑 Table of Contents
- 🔄 What is Autoinstall?
- 🎯 Overview
- ✨ Features
- 🛠️ Installation Components Breakdown
- 📋 Prerequisites
- 📖 Usage
- ⚙️ Customization Examples
- 🤝 Contributing
- 📚 More Resources
- 📄 License
"Autoinstall" is a feature in Ubuntu Server and, as of version 24.04, also supported in Ubuntu Desktop. It allows fully automated installation of the operating system using a pre-configured YAML file. This file specifies how the system should be installed and configured, including partitioning, user setup, installed packages, and custom scripts. It replaces the traditional manual installation process, providing consistency and speed for large-scale deployments.
LinuxESP leverages the autoinstall functionality to streamline the setup of Ubuntu systems for enterprise use. By defining a detailed configuration file (autoinstall.yaml
), administrators can ensure that systems are set up identically every time, without requiring manual intervention.
This project provides an automated installation configuration that:
- Updates and configures Ubuntu Linux
- Deploys Microsoft Management and Security tools (Intune Portal, Microsoft Defender for Endpoint, Microsoft Edge)
- Installs applications (customizable via Snap or apt)
- Removes unnecessary default applications
- Configures the system for enterprise use
- 🔒 Secure LVM-based storage configuration
- 🛡️ Microsoft Defender for Endpoint (MDE) integration
- 📱 Microsoft Intune management capabilities
- 💻 Customizable software deployment
- 🧹 Bloatware removal
- 🔄 Automated updates
Tip
This configuration is just an example. You can download and customize the autoinstall.yaml
file to your needs. You just have to host it somewhere that is accessible for the device.
The autoinstall.yaml
configuration performs the following steps:
- Sets up LVM storage layout
- Configures keyboard layout andlocale
- Disables root access
- Configures basic system settings
- Base Utilities: curl, wget
- Customizable Software Deployment:
- Via Snap Store (examples in current config):
- Visual Studio Code
- Postman API Platform
- PowerShell
- PyCharm Community Edition
- Via late-commands:
- Any apt packages
- Custom installation scripts
- Direct downloads
- Via Snap Store (examples in current config):
Note: The applications listed above are just examples. You can:
- Choose different applications from the Snap Store
- Add custom apt repositories and packages
- Include additional installation commands in the
late-commands
section- Remove or modify any of the example applications
-
Microsoft Intune Portal
- Adds Microsoft package repository
- Installs Intune management agent
-
Microsoft Defender for Endpoint (MDE)
- Downloads and executes MDE installer
- Configures MDE service for automatic startup
- Enables real-time protection
-
Microsoft Edge
- Adds Edge repository
- Installs stable version of Microsoft Edge
- Removes pre-installed applications:
- LibreOffice suite
- Remmina remote desktop client
- Transmission torrent client
- Performs system cleanup
- Removes temporary installation files
- Ubuntu Desktop 24.04 LTS
- Internet connection during installation
To get started with LinuxESP, you can utilize the "Automated Installation" option during the Ubuntu installation setup assistant. This process is streamlined by the hosted configuration file available at:
https://autoinstall.ugurkoc.de
- During the Ubuntu installation setup, select the "Automated Installation" option.
- The installer retrieves the autoinstall configuration file from the above URL.
- The system installs Ubuntu according to the specified configurations in
autoinstall.yaml
. This includes:- Setting up storage and system configurations
- Installing required packages and applications
- Removing unnecessary software
- Enabling enterprise-ready features such as Intune and MDE integration.
- Once the installation completes, the system is fully configured and ready for use.
snaps:
- name: vlc
- name: slack
Add the following to the late-commands
section:
- curtin in-target --target=/target -- apt-get install -y htop git
Add the following to the late-commands
section:
- curtin in-target --target=/target -- apt-get purge -y thunderbird
LinuxESP is an open-source project and contributions are welcome! If you have any suggestions, improvements, or bug fixes, please feel free to submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.