Deployment basics

When you have the Uyuni Server and Branch Server set up, you are ready to deploy point-of-service terminals by following these steps:

  1. Create hardware type groups

  2. Assign and configure the Saltboot formula for each hardware type group

  3. Deploy images to the terminals

Each procedure is detailed in this section.

For other methods of booting terminals, including using a USB device, or booting over a wireless network, see Deploy Terminals - Other Methods.

Terminals can be either x86-64 or arm64 architecture.

If you have many terminals, you can handle them with a script. For more information, see Mass Configuration.

Before terminals can be deployed, ensure you have prepared a Saltboot-based operating system image. For more information about building OS images, see Image Building and Management.

After you have registered new terminals, always check the Uyuni Web UI to ensure your terminals have connected successfully to the branch server. The terminals must not have directly connected to the Uyuni Server by mistake.

1. Create A Hardware Type Group

Each terminal requires a specific hardware type, which contains information about the product name and terminal manufacturer. However, at the beginning, the Uyuni database does not have this information. To tell Uyuni what image to deploy on each terminal, you can set hardware type groups. After you have created a new hardware type group, you can apply the Saltboot formula to the group and configure it for your environment.

Hardware types allow you to group devices according to manufacturer and device name. Then, all devices of a particular type can be managed as one.

Empty profiles can be assigned to a hardware type group either before or after registration. If an empty profile is not assigned to a hardware type group before registration, it will be assigned to group that best matches the product information available to it.

For this procedure, you will require the system manufacturer name and product name for your terminal.

Procedure: Creating a Hardware Type Group
  1. Determine the hardware type group name. Prefix the name with HWTYPE:, followed by the system manufacturer name and product name, separated by a hyphen. For example:

    HWTYPE:POSVendor-Terminal1
  2. In the Uyuni Web UI, navigate to Systems  System Groups, and click the Create Group button.

  3. In the Create System Group dialog, create a new system group, using the hardware type group name you determined in step one of this procedure.

Only use colons, hyphens, or underscores in hardware type group names. Spaces and other non-alphanumeric characters will be removed when the name is processed.

2. Assign and Configure the Saltboot Formula for Each Hardware Type Group

Each hardware type group must have the Saltboot formula applied.

Procedure: Assigning the Saltboot Formula
  1. Open the details page for your new hardware type group, and navigate to the Formulas tab.

  2. Select the Saltboot formula and click Save.

  3. Navigate to the Formulas  Saltboot tab.

  4. Configure the Saltboot formula. For more information about the Saltboot formula, see Saltboot Formula.

3. Synchronize Images to the Branch Server

Manual synchronization of images is needed only when using non-containerized Uyuni for Retail 4.3 branch server.

Image synchronization downloads system and boot images from the Uyuni Server to the Uyuni for Retail branch server. This may involve updating default boot image for not yet registered terminals.

Default boot image can be set in the Image Synchronize formula. If default boot image is not set, boot image with highest version is used as default boot image. This behaviour can be disabled by unchecking Use Latest Boot Image checkbox in the Image Synchronize formula.

Procedure: Synchronizing Images to the Branch Server
  1. On the Uyuni server, run this command:

    salt <branch_server_salt_id> state.apply image-sync

4. Deploy Images to the Terminals

When you have your bootstrap image ready, you can deploy the image to the terminals.

Procedure: Deploying Images to the Terminals
  1. Power on your POS terminals.

  2. The branch server will bootstrap the terminals according to the data you have provided.

5. Customize the Terminal Image Download Process

You can change the terminal boot process using Salt pillars. Two Salt pillars allow you to change the protocol and server used to download the image.

  • The saltboot_download_protocol pillar specifies which protocol should be used to download the image to the terminal. This overrides the default protocol specified in the image pillar. Allowed values are http, https, ftp, or tftp.

  • The saltboot_download_server pillar specifies which server to use to download the image. This overrides the default hostname specified in the image pillar.

In this example, the download server must be prepared by the image_sync state before you begin.

Example: Changing the Saltboot Image Download Protocol

This example changes the protocol used for all terminals.

  1. Create the top.sls file with content:

    base:
      '*':
        - saltboot_proto
  2. Create the saltboot_proto.sls file with content:

    saltboot_download_protocol: http
    # can be http, https, ftp, tftp
  3. Move these files to the container:

    mgrctl cp top.sls server:/srv/pillar/
    mgrctl cp saltboot_proto.sls server:/srv/pillar/
Example: Changing the Saltboot Image Download Location

This example changes the download location for all terminals on a specified branch server.

  1. Create the top.sls file with content:

    base:
      'minion_id_prefix:$branch_prefix':
         - match: grain
         - $branch_prefix
  2. Create the $branch_prefix.sls file with content:

    saltboot_download_server: $download_server_fqdn
  3. Move these files to the container:

    mgrctl cp top.sls server:/srv/pillar/
    mgrctl cp $branch_prefix.sls server:/srv/pillar/