When you have the Uyuni Server and Branch Server set up, you are ready to deploy point-of-service terminals by following these steps:
Create hardware type groups
Assign and configure the Saltboot formula for each hardware type group
Synchronize images to the branch server
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.
For Uyuni 4.2 and later, terminals can be either x86-64 or ARM64 architecture. For earlier versions, terminals must be x86 architecture only.
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.
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.
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:
In the Uyuni Web UI, navigate to, and click the Create Group button.
Create System Groupdialog, 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.
Each hardware type group must have the Saltboot formula applied.
Open the details page for your new hardware type group, and navigate to the
Select the Saltboot formula and click Save.
Navigate to thetab.
Configure the Saltboot formula. For more information about the Saltboot formula, see Saltboot Formula.
On the Uyuni server, run this command:
salt <branch_server_salt_id> state.apply image-sync
If you have 32-bit machines included in your branch, then you must use a 32-bit boot image as a default boot image.
If a 32-bit boot image is not used as a default boot image, 32-bit terminals will be unable to boot and operate properly.
Check the available boot images and their architecture from the command line:
salt <branch_server_salt_id> pillar.item boot_images
POS_Image_JeOS6-6.0.0: ---------- arch: x86_64 ... legacy-6.0.0: ---------- arch: i686
In this example, the
legacy-6.0.0 boot image is 32-bit.
You can set the default boot image in the
Image Synchronization formula on the branch server, by adding the chosen boot image name to the
Default boot image field.
For more information about
Image Synchronization formula, see Image Synchronization Formula.
When you have your bootstrap image ready, you can deploy the image to the terminals.
Power on your POS terminals.
The branch server will bootstrap the terminals according to the data you have provided.
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.
saltboot_download_protocolpillar 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
saltboot_download_serverpillar specifies which server to use to download the image. This overrides the default hostname specified in the image pillar.
This example changes the protocol used for all terminals.
base: '*': - saltboot_proto
saltboot_download_protocol: http # can be http, https, ftp, tftp
This example changes the download location for all terminals on a specified branch server.
base: 'minion_id_prefix:$branch_prefix': - match: grain - $branch_prefix
In this example, the download server must be prepared by the