Using AutoYaST Profiles with Agama
Agama can reuse an existing AutoYaST profile for automated installation by converting it into its own JSON format, instead of requiring you to rewrite it from scratch. Support is not complete: some AutoYaST sections have no equivalent in Agama, or behave differently. Read this article to convert and reuse an AutoYaST profile with Agama, and to check which AutoYaST profile sections are supported.
Prerequisites:
Familiarity with creating and editing Agama profiles, covered in Automated Installation Using Agama.
An existing AutoYaST profile you want to reuse.
1 Using AutoYaST profiles with Agama #
Agama can reuse an existing AutoYaST profile for automated installation by converting it into its own JSON format, instead of requiring you to rewrite it from scratch. Support is not complete: some AutoYaST sections have no equivalent in Agama, or behave differently. This topic shows how to convert an AutoYaST profile using the Agama CLI and what to check afterward.
1.1 What Agama does with an AutoYaST profile #
The agama config generate command accepts a path or URL and converts its
content into a native Agama JSON configuration. It recognizes an AutoYaST profile
automatically: if the given path or URL ends in .xml,
.erb, or a trailing slash (for a rules or
classes directory), Agama downloads and processes it as AutoYaST
content, evaluating any Embedded Ruby (ERB) templating or rules/classes selection along the
way, before converting the result to JSON. Any other input is treated as an already
Agama-native JSON or Jsonnet profile and passed through unchanged.
Agama is not a drop-in replacement for AutoYaST, and the conversion does not cover every AutoYaST section. For the exact list of which AutoYaST elements are supported, and which Agama field they map to, refer to Section 2, “Compatibility between AutoYaST and Agama profiles”.
1.2 Requirements #
An existing AutoYaST profile, reachable as a local path or a URL from the machine running the Agama CLI. The profile can use ERB templating or rules/classes selection.
Familiarity with which AutoYaST sections Agama supports, to review after conversion. See Section 2, “Compatibility between AutoYaST and Agama profiles”.
1.3 Converting and using an AutoYaST profile #
Convert the AutoYaST profile to a native Agama JSON profile, writing the result to a file:
#agama config generate http://example.net/autoyast/profile.xml > profile.jsonValidate the converted profile against the Agama profile schema:
#agama config validate profile.jsonOpen
profile.jsonin a text editor and review it against Section 2, “Compatibility between AutoYaST and Agama profiles”. The converter simply omits any AutoYaST element it does not support from the generated profile, so review it for missing configuration rather than relying onagama config validateto catch it: validation only rejects a profile that is itself malformed, not one that is silently missing settings the source AutoYaST profile had.Load the reviewed profile into the running Agama installation session:
#agama config load profile.json
1.4 Summary #
agama config generate lets you carry over an existing AutoYaST profile
instead of writing an Agama profile from scratch, but the two formats are not fully
compatible. Always validate and review the converted profile before loading it, so
unsupported AutoYaST sections are caught before installation rather than during it.
1.5 Troubleshooting #
If the installed system is missing configuration that was present in the original AutoYaST profile, check Section 2, “Compatibility between AutoYaST and Agama profiles” for that section. Agama reports an unsupported field in the web interface when the profile is loaded, though a command started from the CLI may otherwise appear to make no progress; check the web interface if that happens.
If your AutoYaST profile relies heavily on the
partitioningsection and converting it to the native Agamastorageformat is impractical, consider using thelegacyAutoyastStoragesection instead, described in Advanced storage configuration using Agama profiles.
2 Compatibility between AutoYaST and Agama profiles #
AutoYaST has long been the standard for unattended and automated installations in SUSE Linux Enterprise Server for SAP applications systems. Agama takes a different approach to system configuration and deployment, using JSON or Jsonnet instead of AutoYaST's XML profiles.
This section lists, element by element, which AutoYaST profile sections carry over when migrating to an Agama profile, based on the upstream compatibility matrix maintained by the Agama project and cross-checked against the current Agama AutoYaST-conversion code where noted.
2.1 How to read the compatibility tables #
Most sections below include a table with the following columns.
Each table lists only AutoYaST elements that SUSE officially supports in Agama. An element that is not listed is not supported.
- AutoYaST
Name of the AutoYaST element.
- Supported
Always Supported, kept as a column heading for consistency with the table's other columns.
- Agama
Name of the corresponding Agama profile element, if any.
- Notes
Any comment or reason about the element.
2.2 add-on #
This section is supported.
2.2.1 add-on/add_on_products #
This section is supported.
add-on/add_on_products compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
media_url | Supported | software.extraRepositories[].url | |
alias | Supported | software.extraRepositories[].alias | |
priority | Supported | software.extraRepositories[].priority | |
name | Supported | software.extraRepositories[].name | |
product_dir | Supported | software.extraRepositories[].productDir |
2.2.2 add-on/add_on_others #
This section is supported.
add-on/add_on_others compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
media_url | Supported | software.extraRepositories[].url | |
alias | Supported | software.extraRepositories[].alias | |
priority | Supported | software.extraRepositories[].priority | |
name | Supported | software.extraRepositories[].name | |
product_dir | Supported | software.extraRepositories[].productDir | Agama accepts the value but ignores it. |
2.3 bootloader #
Supported via its bootloader/global subsection below; the
bootloader section's own direct attributes
(device_map, loader_type) are not.
2.3.1 bootloader/global #
This section is supported.
bootloader/global compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
append | Supported | bootloader.extraKernelParams | |
timeout | Supported | bootloader.timeout | A negative value maps to bootloader.stopOnBootMenu: true instead. |
update_nvram | Supported | bootloader.updateNvram |
2.4 dasd #
This section is supported.
dasd compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
channel | Supported | dasd.devices[].channel | |
diag | Supported | dasd.devices[].diag |
2.5 files #
This section is supported.
files compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
file_path | Supported | files[].destination | Creating directories by using a trailing slash is not yet supported. |
file_contents | Supported | files[].content | |
file_location | Supported | files[].url | |
file_owner | Supported | In Agama it is split into files[].user and files[].group. | |
file_permissions | Supported | files[].permissions |
2.6 iscsi-client #
This section is supported.
iscsi-client compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
initiatorname | Supported | iscsi.initiator |
2.6.1 iscsi-client/targets[] #
This section is supported.
iscsi-client/targets[] compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
portal | Supported | iscsi.targets[].address | Split into two values, iscsi.targets[].address and iscsi.targets[].port. |
startup | Supported | iscsi.targets[].startup | |
target | Supported | iscsi.targets[].name | |
iface | Supported | iscsi.targets[].interface |
2.7 kdump #
Unsupported. There are plans to support this section in the future.
2.8 keyboard #
This section is supported.
keyboard compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
keymap | Supported | l10n.keymap |
2.9 language #
This section is supported.
language compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
language | Supported | l10n.locale |
2.10 networking #
This section is supported.
networking compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
ipv6 | Supported | It affects both method4 and method6. |
2.10.1 networking/dns #
This section is supported.
networking/dns compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
hostname | Supported | hostname.static | |
nameservers | Supported | network.connections[].nameservers | Copied to each connection. |
searchlist | Supported | network.connections[].dnsSearchList | Copied to each connection. |
2.10.2 networking/interfaces[] #
This section is supported. It corresponds to the Agama connections
element, but the format is not exactly the same.
networking/interfaces[] compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
device | Supported | network.connections[].interface | |
name | Supported | network.connections[].id | |
lladdr | Supported | network.connections[].macAddress | |
ipaddr | Supported | network.connections[].addresses[] | |
prefixlen | Supported | network.connections[].addresses[] | |
netmask | Supported | network.connections[].addresses[] | |
aliases | Supported | network.connections[].addresses[] | |
broadcast | Supported | network.connections[].addresses[] | |
network | Supported | network.connections[].addresses[] | |
wireless | Supported | network.connections[].wireless | It uses a different format. |
bonding_module_opts | Supported | network.connections[].bond.options | |
bonding_slave0–bonding_slave9 | Supported | network.connections[].bond.ports[] | |
wireless_auth_mode | Supported | network.connections[].wireless.security | Maps psk to wpa-psk and eap to wpa-eap; anything else becomes none. |
wireless_essid | Supported | network.connections[].wireless.ssid | |
wireless_mode | Supported | network.connections[].wireless.mode | Maps ad-hoc to adhoc, master to ap, and managed to infrastructure. |
wireless_wpa_password | Supported | network.connections[].wireless.password | |
wireless_wpa_psk | Supported | network.connections[].wireless.password |
As of this writing, converting AutoYaST bonding configuration produces an invalid
Agama profile: the generated bond section is nested into itself
({"bond": {"bond": {...}}}), which the Agama profile schema
rejects. A fix is already prepared upstream but not yet released. Until it ships, review
and correct the bond section of any profile converted from an
AutoYaST configuration that uses bonding.
Agama has no equivalent to startmode: do not define a connection
in the profile if you do not want it set up.
2.11 ntp-client #
Supported via its ntp-client/ntp_servers[] subsection below; the
ntp-client section's own direct attributes
(ntp_policy, ntp_sync) are not.
2.11.1 ntp-client/ntp_servers[] #
This section is supported. All servers are considered of type pool.
ntp-client/ntp_servers[] compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
address | Supported | ntp.sources[].address | |
iburst | Supported | ntp.sources[].iburst | |
offline | Supported | ntp.sources[].offline |
2.12 proxy #
Unsupported. There are plans to support this section in the future. Meanwhile, set the proxy using the kernel's command line.
2.13 scripts #
This section is supported.
None of the scripts subsections below support selecting an
interpreter. Use the shebang line in your scripts instead.
2.13.1 scripts/pre-scripts[] #
This section is supported, but not by translating it into the profile's
scripts.pre field. Instead, Agama wraps and runs AutoYaST
pre-scripts directly using AutoYaST's own pre-script mechanism (confirmed in the Agama
source: PreScript subclasses AutoYaST's script handling and only
overrides the log/script storage paths), so their timing and behavior match a classic
AutoYaST installation. None of the fields below are exposed as native Agama profile fields
for that reason.
scripts/pre-scripts[] compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
filename | Supported | ||
location | Supported | ||
source | Supported |
2.13.2 scripts/postpartitioning-scripts[] #
This section is supported.
scripts/postpartitioning-scripts[] compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
filename | Supported | scripts.postPartitioning[].name | |
location | Supported | scripts.postPartitioning[].url | |
source | Supported | scripts.postPartitioning[].content |
2.13.3 scripts/chroot-scripts[] #
This section is supported. The current Agama converter (ScriptsReader
in the Agama source) maps chroot-scripts into the profile's
scripts.post array, adding a chroot flag taken from
the AutoYaST chrooted attribute. There is no separate
scripts.chroot field in the Agama profile schema.
scripts/chroot-scripts[] compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
filename | Supported | scripts.post[].name | |
location | Supported | scripts.post[].url | |
source | Supported | scripts.post[].content | |
chrooted | Supported | scripts.post[].chroot | Defaults to false if not set. |
2.13.4 scripts/post-scripts[] #
This section is supported. Its scripts are merged into Agama's
scripts.init array together with init-scripts
(below), with post-scripts entries applied first.
scripts/post-scripts[] compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
filename | Supported | scripts.init[].name | |
location | Supported | scripts.init[].url | |
source | Supported | scripts.init[].content |
2.13.5 scripts/init-scripts[] #
This section is supported.
scripts/init-scripts[] compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
filename | Supported | scripts.init[].name | |
location | Supported | scripts.init[].url | |
source | Supported | scripts.init[].content |
2.14 services-manager #
This section is supported. Agama does not implement support for enabling or disabling services on demand, so this section is converted into a post-installation script that enables or disables the services instead.
services-manager compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
default_target | Supported | Added as a systemctl set-target call in the post-installation script. | |
enable[] | Supported | Services are enabled in the post-installation script. | |
disable[] | Supported | Services are disabled in the post-installation script. | |
on_demand[] | Supported | Services are enabled on demand in the post-installation script. |
2.15 software #
This section is supported.
software compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
packages[] | Supported | software.packages[] | |
patterns[] | Supported | software.patterns[] | |
products[] | Supported | product.id | Only the first entry is used. |
2.16 suse_register #
This section is supported.
suse_register compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
do_registration | Supported | The whole suse_register section is ignored if set to false. | |
email | Supported | product.registrationEmail | |
reg_code | Supported | product.registrationCode | |
reg_server | Supported | product.registrationUrl | |
reg_server_cert_fingerprint | Supported | security.sslCertificates[].fingerprint | |
reg_server_cert_fingerprint_type | Supported | security.sslCertificates[].algorithm | |
addons[] | Supported | product.addons[] | Does not check dependencies. Registers add-ons in the given order. |
2.17 timezone #
This section is supported.
timezone compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
timezone | Supported | l10n.timezone |
2.18 users[] #
This section is supported. Only the root and the first user are considered.
users[] compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
username | Supported | user.userName | |
fullName | Supported | user.fullName | |
password | Supported | user.password or root.password | Applies to whichever of user or root the entry represents. |
encrypted | Supported | user.hashedPassword or root.hashedPassword | If set to true, Agama uses hashedPassword instead of password. |
authorized_keys | Supported | user.sshPublicKeys |
2.19 zfcp #
This section is supported.
zfcp compatibility #| AutoYaST | Supported | Agama | Notes |
|---|---|---|---|
controller_id | Supported | zfcp.devices[].channel | |
wwpn | Supported | zfcp.devices[].wwpn | |
fcp_lun | Supported | zfcp.devices[].lun |
2.20 Unsupported sections #
The following sections are not supported and there are no plans to support them in the future:
audit-lafauth-clientconfiguration_managementdeploy_imagedhcp-serverdns-serverfcoe-clientfirstbootftp-servergeneralgroupshosthttp-servermailnfsnfs_servernisnis_serverprinterreportsamba-clientsoundsquidssh_importsysconfigtftp-serverupgrade
3 For more information #
For more information on AutoYaST and Agama compatibility, refer to the following resources:
The upstream resources listed below may contain code or information not covered under the terms of service by SUSE. Use them with caution only as a reference for clarity and inspiration.
Agama AutoYaST conversion code: The source of the Agama installer that converts an AutoYaST profile into a native Agama profile.
Automated Installation Using Agama: Covers creating and editing Agama profiles, and the rest of the automated installation workflow.
4 Legal Notice #
Copyright© 2006– 2026 SUSE LLC and contributors. All rights reserved.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or (at your option) version 1.3; with the Invariant Section being this copyright notice and license. A copy of the license version 1.2 is included in the section entitled “GNU Free Documentation License”.
For SUSE trademarks, see https://www.suse.com/company/legal/. All other third-party trademarks are the property of their respective owners. Trademark symbols (®, ™ etc.) denote trademarks of SUSE and its affiliates. Asterisks (*) denote third-party trademarks.
All information found in this book has been compiled with utmost attention to detail. However, this does not guarantee complete accuracy. Neither SUSE LLC, its affiliates, the authors, nor the translators shall be held liable for possible errors or the consequences thereof.