Unattended installation
One of the main use cases of Agama is unatteded installation. The user provides a file, known as a "profile", that describes how the system should look like (partitioning, networking, software selection, etc.) and Agama takes care of installing the system according to such a description. This approach might sound familiar to AutoYaST users.
Although Agama defines its own profile format, it is able to partially handle AutoYaST profiles. Please, check the AutoYaST support section for further information.
Profile format
A profile defines which options to use during installation: which product to install, localization settings, partitioning schema, etc. Although it sounds similar to AutoYaST, there are some essential differences:
- Profiles are written in Jsonnet instead of XML. Jsonnet is a superset of JSON (so you can use just plain JSON), which allows for writing more readable and concise profiles.
- You can take advantage of Jsonnet to build dynamic profiles, without having to rely on rules or Embedded Ruby (ERB). Agama injects hardware information that can be processed using the Jsonnet standard library.
You can check the Tumbleweed installation profile included in the repository to get an impression of how a profile looks like.
A minimal example
{
"localization": {
"language": "en_US.UTF-8"
},
"product": {
"id": "Tumbleweed"
},
"user": {
"fullName": "Jane Doe",
"userName": "jane.doe",
"password": "123456"
}
}
Supported configuration values
Check the JSON Schema to learn about the supported elements.
Dynamic profiles
The profile can be adapted at runtime depending on the system where the auto-installation is running. For such use cases, Agama injects the hardware information into the profile to be processed using Jsonnet.
Please, check the example profile for further information.
You can inspect the available data by installing the lshw
package and running the following
command: lshw -json
.
Validating and evaluating a profile
Agama includes a handy command-line interface available in the agama
package. Among many other
things, it allows downloading, validating and evaluating profiles. For instance, we could check the
result of the previous profile by running the following command:
sudo agama profile evaluate my-profile.jsonnet
sudo
You need to use sudo
to access the hardware information.
Do you want to check whether your profile is valid? agama
have you covered. Bear in mind that you
can only validate JSON profiles (a Jsonnet profile must be evaluated first).
agama profile validate my-profile.json
Generating a configuration file
Writing the profile by hand is relatively easy. However, you might want to ask Agama to do it for you. You can boot the installation, use the web interface to tweak all the values and, from the terminal, generate the file by running the following command:
sudo agama config show > profile.json
Starting the installation
To start an unattended installation process, you need to tell Agama where to find the profile. When
using the Live ISO, you must use the agama.auto
boot option. Please, check the boot
options for further information.