Modernizing openSUSE installation with Agama
Linux installers receive a disproportionate amount of attention compared to the amount of time that most users spend with them. Ideally, a user spends only a few minutes using the installer, versus years using the distribution after it is installed. Yet, the installer sets the first impression, and if it fails to do its job, little else matters. Installers also have to continually evolve to keep pace with new hardware, changes in distribution packaging (such as image-based Linux distributions), and so forth. Along those lines, the SUSE team that maintains the venerable YaST installer has decided it's time to start (almost) fresh with a new Linux installer project, called Agama, for new projects. YaST is not going away as an administration tool, but it is likely to be relieved of installer duties at some point.
Brief history
YaST has served SUSE and openSUSE well for nearly 30 years as an installer and configuration tool. Its name is short for "Yet another Setup Tool", which was a nod to the proliferation of installers and administration tools that were already available when it made its debut in 1996.
Initially, YaST was proprietary, but it was released under the GPL in 2004 in the hopes that it would become widely used for Linux system management. That never really came to pass (despite attempts to get traction with projects like YaST4Debian), but YaST has remained the way to install and manage SUSE-based distributions. Over the years, YaST has undergone a number of revisions and rewrites in attempts to modernize it. But, with more than two decades of service, the YaST team has decided that it is too complex and burdened with too much technical debt to meet the needs of installing an increasing number of SUSE and openSUSE variants.
Agama is an attempt to overcome YaST's limitations as an installer and make a more suitable installer for new projects such as SUSE Linux Framework One, which was formerly known as the Adaptable Linux Platform (ALP). Note that the project is not a full replacement for YaST: it is only an installer, and there are no plans to use it for systems management post-installation. The project is also not starting entirely from scratch, as it reuses some of YaST's libraries rather than trying to reimplement storage management or software-package handling (for example).
D-Installer to Agama
Work began in 2022 under the provisional name D-Installer. The goals for the new installer included shortening the installation process, decoupling the user interface from YaST's internals, serving as an installer for multiple versions of SUSE/openSUSE, and adding a web-based interface to allow remote installation. Agama uses Ruby for components that interact with YaST, as well as Rust for some of its other services. Its web-based front end is a React-based application.
The first, quasi-functional, release of D-Installer was announced
in late March 2022, with support for x86_64, Arm64, and s390. According
to the announcement, it could install openSUSE Tumbleweed "in simple
scenarios
" but users could not modify software selection or
customize disk partitioning. The project was renamed
Agama in March 2023, after the insectivorous iguana-like
lizard. The Agama 3
release added PowerPC images, better support for custom disk
partitioning, and gave users a choice of ISO images for installing
Tumbleweed or prototypes of Framework One.
In February of this year, the Agama team published a 2024 roadmap with plans to make changes to the project's architecture over two major milestones. Initially, Agama was built on top of the Cockpit project (LWN covered Cockpit in March). However, the Agama developers decided that the functionality it offered was not enough to offset its dependencies—especially after the Cockpit project rewrote a major portion of its codebase in Python, creating an additional dependency that the team did not want to carry.
The first milestone, Agama 8, dropped Cockpit and switched from using D-Bus to HTTP as the communication protocol between Agama's client and server components. (Agama still uses D-Bus to communicate with the YaST service.) This moved the project backward in some ways: for example, it lost support for direct access storage devices (DASD), zfcp support, and Cockpit's integrated terminal. It did, however, gain a better interface for setting up storage, which made it possible to customize boot options, add disk encryption, and to configure complex disk-partitioning schemes.
Agama 9 release
Agama 9, the most recent release, was announced on June 28. It includes a new web-based user interface, support for automated installation with partial support for "legacy" AutoYaST automated-deployment profiles or using its own YAML-based profiles. While not quite ready to supplant YaST for installation purposes, the project is making good progress and can be used today to install versions of openSUSE Leap, MicroOS, and Tumbleweed. Testing images are available for Arm64, s390, PPC64, and (of course) x86_64.
In its current iteration, Agama is composed of several server-side and client-side components. The core is the Agama server that implements some of the installation logic and communicates over D-Bus with the Agama YaST service that uses YaST libraries for things like software handling and storage configuration. Its client-side components include a command-line interface (agama-cli), a web-based interface, and a systemd service that manages automated installations. The default is to use the web-based interface, even when installing locally: the live CD installer uses a stripped-down Firefox profile to render the web-based interface.
Though Agama is still considered experimental, it was stable and usable in testing. As expected, it is not as full-featured as YaST in some respects. For example, it does not support setting video modes from the boot menu, or selecting source media for the installation, as YaST does. However, it seems to cover most of the bases for users wanting to set up systems with one of the supported versions of openSUSE.
Agama defers some choices that users could make from the YaST installer to post-installation. For instance, the network configuration options in YaST support setting up VLANs, bridge devices, configuring DNS, routing, and much more. Agama treats advanced networking configurations as out of scope for the installation process, and focuses on the network support necessary for installation only.
The installation process using Agama is distilled into choosing the version of openSUSE to be installed, and then confirming or modifying the installer defaults for things like localization (language, keyboard layout, and time zone), storage options, software selection, and setting up networking (if not automatically configured). Generally, the only thing a user is required to do manually is to set up the first user or a root user.
The YaST installer requires users to step through the installation process in a specific order, and only allows navigation forward or backward one screen at a time. If a user gets to the installation overview screen and realizes that they have forgotten to, for example, create a separate partition for /home, YaST requires them to click back through several screens to make changes, then forward again through the rest of the installer options. Agama, on the other hand, allows users to select any of the configuration screens at any time before beginning the installation.
Remote installation via the browser is also fully functional. Agama generates a random root password, which is visible at the console, that will be needed to log in remotely to the installer via a browser. Alternatively, users can set a password on the boot command line with live.password=<password> or add a default password to the ISO image. See the documentation for instructions on how to do that.
Since Agama is in heavy development, users and developers might want to work from a branch that has not yet been delivered as a testing image. Agama can be patched while running from the live medium, using the yupdate script. The documentation recommends a minimum of 4GB of RAM to do this, since patching the installer requires downloading a number of RPM and NPM packages that are stored in memory.
Not out to YaSTure yet
Agama has come a long way in 2024, but it is not ready to step into YaST's installer shoes just yet. It's unclear when the next Agama release will be, but according to the openSUSE release engineering meeting minutes from August 21, it will be the default installer for the upcoming Leap 16 alpha. Lubos Kocman of the openSUSE release team also recently wrote that his long-term plan is to transition to Agama by default for Tumbleweed, Leap, and SUSE Linux Enterprise Server 16 by the second half of 2025 in conjunction with the Leap 16 final release. Interested developers and users should check out the daily builds for progress for now and if all goes well, Agama should be taking on installer duties before YaST celebrates its 30th anniversary in 2026.
The LWN site is currently under high scraper load, so comment display has been suppressed for anonymous users. If you are a human, you may read the comments by clicking the button below:
Note: you can avoid this step in the future by logging into your LWN account.
