Andrew Mercer
on this page

AutoYaST is openSUSE/SLES's unattended-install mechanism, built on the YaST installer/configuration framework — the SUSE-ecosystem equivalent of Kickstart (RHEL) or Preseed (Debian), using an XML profile instead of a flat text answer file.

Profile structure

<?xml version="1.0"?>
<!DOCTYPE profile>
<profile xmlns="http://www.suse.com/1.0/yast2ns"
         xmlns:config="http://www.suse.com/1.0/configns">
  <general>
    <mode>
      <confirm config:type="boolean">false</confirm>
    </mode>
  </general>

  <networking>
    <keep_install_network config:type="boolean">true</keep_install_network>
  </networking>

  <partitioning config:type="list">
    <drive>
      <device>/dev/sda</device>
      <use>all</use>
      <partitions config:type="list">
        <partition>
          <mount>/</mount>
          <filesystem config:type="symbol">btrfs</filesystem>
          <size>max</size>
        </partition>
      </partitions>
    </drive>
  </partitioning>

  <users config:type="list">
    <user>
      <username>admin</username>
      <user_password>changeme</user_password>
      <encrypted config:type="boolean">false</encrypted>
      <groups>users,wheel</groups>
    </user>
  </users>

  <software>
    <patterns config:type="list">
      <pattern>base</pattern>
      <pattern>server</pattern>
    </patterns>
  </software>

  <scripts>
    <post-scripts config:type="list">
      <script>
        <filename>enable-services.sh</filename>
        <source><![CDATA[
          systemctl enable chronyd
        ]]></source>
      </script>
    </post-scripts>
  </scripts>
</profile>

<confirm>false</confirm> under <general><mode> is AutoYaST's equivalent of Kickstart/Autoinstall's unattended flag — without it, YaST pauses for a final confirmation before writing changes.

Generate a profile from an existing install

yast2 clone-system
# writes /root/autoinst.xml, cloning the current system's YaST-visible configuration

Same pattern as anaconda-ks.cfg on RHEL and debconf-get-selections on Debian: install once by hand the way you want it, then export and trim.

Validate

/usr/lib/YaST2/bin/y2xmltool --check autoinst.xml     # path/tool name varies somewhat by SUSE version; check `rpm -ql autoyast2` if not found there

Delivering the profile

# HTTP
autoyast=http://<server>/autoyast/profile.xml

# From install media
autoyast=device://sr0/autoinst.xml

# Rule-based: AutoYaST can also fetch a profile matching the client's own attributes
# (MAC, hostname, IP) from a server-side "rules.xml" director file, similar in spirit
# to Cobbler/Foreman's per-host templating
autoyast=http://<server>/autoyast/rules.xml

Boot the install media with autoyast=<location> as a kernel/boot parameter, the same mechanical pattern as inst.ks= for Kickstart or auto url= for Preseed — see PXE/netboot for serving this over the network alongside other distros' installers.