Preparation

A configured distribution and an autoinstallation profile is required.

Procedure: Preparing a Distribution
  1. Provide the files required to start an installation. Unpack an installation medium such as a DVD image on your Server. It contains the Linux kernel, an initrd, and other files required to boot the OS in installation mode.

  2. In the Uyuni Web UI, navigate to Systems  Autoinstallation  Distributions.

  3. In the Autoinstallable Distributions dialog, click Create Distribution:

    • In the Distribution Label field, enter a name to identify your autoinstallable distribution.

    • In the Tree Path field, enter the path to an installation tree located on your Uyuni Server.

    • Select the matching Base Channel mirrored on the Uyuni Server. This base channel must represent the distribution you want to install. It can be the Vendor, Custom, or Cloned Channels.

    • The Installer Generation should also match.

    • Optionally, you can specify kernel options which should be added when booting this distribution. There are multiple places where you can provide kernel options. Only add options here that are generic for the distribution.

  4. Click Create Autoinstallable Distribution.

Procedure: Preparing a Profile
  1. In the Uyuni Web UI, navigate to System  Autoinstallation  Profiles.

  2. In the Autoinstallation Profiles dialog, add the profile for your autoinstallation. It can be an AutoYaST or Kickstart profile.

  3. There are two ways to create profiles:

    • Create a Kickstart profile using a wizard

    • Upload an externally created profile (Kickstart or AutoYaST)

For more information about the Kickstart wizard, see reference:systems/autoinst-profiles.adoc.

Upload a Profile

Profiles require a label, and an Autoinstallation Tree (distribution).

Upload the Kickstart or AutoyaST profile. You can write your own kickstart or AutoYaST profile directly in the Web UI, or create the profile and upload it from your local file system.

AutoYaST is able to dump a profile from an existing installation. This can be used as template, but will need to be edited to make it usable by Uyuni.

Procedure: Making an AutoYaST Template Usable by Uyuni
  1. Change the add-on section and add Uyuni URLs. The URL must use this format:

    http://$redhat_management_server/ks/dist/child/<channel-label>/<distribution-label>
  2. Replace <channel-label> and <distribution-label> with the correct labels. You can also use a variable for distribution-label. Ensure that the distribution label corresponds to the autoinstallable distribution you selected. You can only configure child channels in this file. The channels must be children of the base channel you selected in the distribution you use for this profile. You do not need to specify a base channel. The base channel is defined in the distribution.

  3. Register the system after it is installed. For this step we provide script snippets that can be used.

    For Salt managed clients, use the spacewalk/minion_script snippet:

    <scripts>
      <init-scripts config:type="list">
        $SNIPPET('spacewalk/minion_script')
      </init-scripts>
    </scripts>

    For traditional clients, use the spacewalk/sles_register_script snippet:

    <scripts>
      <init-scripts config:type="list">
        $SNIPPET('spacewalk/sles_register_script')
      </init-scripts>
    </scripts>

For registering Salt clients, you must accept the Salt key on the Uyuni Server before you attempt autoinstallation.

If you change the distribution label, it will not automatically change the install= kernel option. You will need to manually change the kernel options to match the distribution label.

For more information about autoinstallation profiles, see reference:systems/autoinst-profiles.adoc.

Variables and Snippets

Profiles are not finalized until they are requested by a client. This allows you to use variables in profiles. You can define profile variables in the Web UI by navigating to Profiles  Variables.

Some common variables are:

redhat_management_server

The server Red Hat clients register to (automatically set).

org

The organization ID where this profile is created (automatically set).

registration_key

The key used in the registration snippets. By specifying this variable, you can set the activation key to be used to register the system.

dont_register

If specified, the registration will be skipped.

allow_config_actions

If set to 1, it will allow traditional configuration management (traditional only).

allow_remote_commands

If set to 1, it will allow traditional remote command execution (traditional only).

dont_disable_automatic_onlineupdate

If set, the automatic online update will stay enabled (SUSE OSes only).

dont_disable_local_repos

If set, local repositories will stay active (not recommended).

Navigate to Systems  Autoinstallation  Autoinstallation Snippets to see which snippets are available. For more information, see reference:systems/autoinst-snippets.adoc.

SUSE Manager Proxy

A Uyuni Proxy is a SLE client with a special role. You can install it using AutoYaST.

  1. Create an autoinstallation tree as outlined in [client-cfg-autoinstallation-prep].

    • Unpack a Unified Installer DVD1.

    • Use SLE-Product-SUSE-Manager-Proxy-4.1-Pool for x86_64 as the base channel.

    • Make sure the SUSE Manager Proxy 4.1 x86_64 product is completely mirrored.

  2. Create an AutoYaST profile. You can use this example as a starting point. Ensure you change the <password> to match your own settings:

    <?xml version="1.0"?>
    <!DOCTYPE profile>
    <profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
      <add-on>
        <add_on_products config:type="list">
          <listentry>
            <ask_on_error config:type="boolean">true</ask_on_error>
            <media_url>http://$redhat_management_server/ks/dist/child/sle-product-suse-manager-proxy-4.1-updates-x86_64/proxy4</media_url>
            <name>sle-product-suse-manager-proxy-4.1-updates-x86_64</name>
            <product>SUSE Manager Proxy 4.1</product>
            <product_dir>/</product_dir>
          </listentry>
          <listentry>
            <ask_on_error config:type="boolean">true</ask_on_error>
            <media_url>http://$redhat_management_server/ks/dist/child/sle-module-basesystem15-sp2-pool-x86_64-proxy-4.1/proxy4</media_url>
            <name>sle-module-basesystem15-sp2-pool-x86_64-proxy-4.1</name>
            <product>SUSE Manager Proxy 4.1</product>
            <product_dir>/</product_dir>
          </listentry>
          <listentry>
            <ask_on_error config:type="boolean">true</ask_on_error>
            <media_url>http://$redhat_management_server/ks/dist/child/sle-module-basesystem15-sp2-updates-x86_64-proxy-4.1/proxy4</media_url>
            <name>sle-module-basesystem15-sp2-updates-x86_64-proxy-4.1</name>
            <product>SUSE Manager Proxy 4.1</product>
            <product_dir>/</product_dir>
          </listentry>
          <listentry>
            <ask_on_error config:type="boolean">true</ask_on_error>
            <media_url>http://$redhat_management_server/ks/dist/child/sle-module-server-applications15-sp2-pool-x86_64-proxy-4.1/proxy4</media_url>
            <name>sle-module-server-applications15-sp2-pool-x86_64-proxy-4.1</name>
            <product>SUSE Manager Proxy 4.1</product>
            <product_dir>/</product_dir>
          </listentry>
          <listentry>
            <ask_on_error config:type="boolean">true</ask_on_error>
            <media_url>http://$redhat_management_server/ks/dist/child/sle-module-server-applications15-sp2-updates-x86_64-proxy-4.1/proxy4</media_url>
            <name>sle-module-server-applications15-sp2-updates-x86_64-proxy-4.1</name>
            <product>SUSE Manager Proxy 4.1</product>
            <product_dir>/</product_dir>
          </listentry>
          <listentry>
            <ask_on_error config:type="boolean">true</ask_on_error>
            <media_url>http://$redhat_management_server/ks/dist/child/sle-module-suse-manager-proxy-4.1-pool-x86_64/proxy4</media_url>
            <name>sle-module-suse-manager-proxy-4.1-pool-x86_64</name>
            <product>SUSE Manager Proxy 4.1</product>
            <product_dir>/</product_dir>
          </listentry>
          <listentry>
            <ask_on_error config:type="boolean">true</ask_on_error>
            <media_url>http://$redhat_management_server/ks/dist/child/sle-module-suse-manager-proxy-4.1-updates-x86_64/proxy4</media_url>
            <name>sle-module-suse-manager-proxy-4.1-updates-x86_64</name>
            <product>SUSE Manager Proxy 4.1</product>
            <product_dir>/</product_dir>
          </listentry>
         </add_on_products>
      </add-on>
      <general>
          $SNIPPET('spacewalk/sles_no_signature_checks')
        <mode><confirm config:type="boolean">false</confirm></mode>
      </general>
      <backup>
        <sysconfig config:type="boolean">true</sysconfig>
        <modified config:type="boolean">true</modified>
        <remove_old config:type="boolean">false</remove_old>
      </backup>
      <networking>
        <keep_install_network config:type="boolean">true</keep_install_network>
        <start_immediately config:type="boolean">true</start_immediately>
      </networking>
      <software>
        <image/>
        <install_recommended config:type="boolean">true</install_recommended>
        <instsource/>
        <packages config:type="list">
          <package>salt-minion</package>
        </packages>
        <patterns config:type="list">
          <pattern>suma_proxy</pattern>
        </patterns>
        <products config:type="list">
          <listentry>SUSE-Manager-Proxy</listentry>
        </products>
      </software>
      <users config:type="list">
        <user>
          <encrypted config:type="boolean">false</encrypted>
          <fullname>root</fullname>
          <gid>0</gid>
          <home>/root</home>
          <password_settings>
            <expire/>
            <flag/>
            <inact/>
            <max/>
            <min/>
            <warn/>
          </password_settings>
          <shell>/bin/bash</shell>
          <uid>0</uid>
          <user_password><password></user_password><!-- change this! -->
          <username>root</username>
        </user>
      </users>
      <scripts>
        <init-scripts config:type="list">
          $SNIPPET('spacewalk/minion_script')
        </init-scripts>
      </scripts>
    </profile>