Uyuni for Retail is made up of various components. For more on how these components work together, see retail-network-arch.adoc.
The Uyuni server contains information about infrastructure, network topology, and everything required to automate image deployment and perform day-to-day operations on branches and terminals. This can include database entries of registered systems, Salt pillar data for images, image assignments, partitioning, network setup, network services, and more.
Build hosts can be arbitrary servers or virtual machines. They are used to securely build operating system images.
For more information on build hosts, see administration:image-management.adoc.
Branch servers should be physically located close to point-of-service terminals, such as in an individual store or branch office. Branch servers provide services for PXE boot, and act as an image cache, Salt broker, and proxy for software components (RPM packages). The branch server can also manage local networking, and provide DHCP and DNS services.
Point-of-Service (POS) terminals can come in many different formats, such as point-of-sale terminals, kiosks, digital scales, self-service systems, and reverse-vending systems. Every terminal, however, is provided by a vendor, who set basic information about the device in the firmware. Uyuni for Retail accesses this vendor information to determine how best to work with the terminal in use.
In most cases, different terminals will require a different operating system (OS) image to ensure they work correctly. For example, an information kiosk has a high-resolution touchscreen, where a cashier terminal might only have a very basic display. While both of these terminals require similar processing and network functionality, they will require different OS images. The OS images ensure that the different display mechanisms work correctly.
Uyuni for Retail supports POS terminals that boot using both BIOS and UEFI. For UEFI booting terminals, you will need to configure the EFI partition in the Saltboot formula. For more information on EFI in the Saltboot formula, see salt:formula-saltboot.adoc.
Uyuni for Retail uses the same technology as Uyuni, but is customized to address the needs of retail organizations.
Because every environment is different, and can contain many different configurations of many different terminals, Uyuni for Retail uses hardware types to simplify device management.
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.
Uyuni for Retail uses system groups to organize the various devices in your environment.
Each branch requires a system group, containing a single branch server, and the POS terminals associated with that server. Each system group is identified with a Branch ID. The Branch ID is used in formulas and scripts to automatically update the entire group.
Uyuni for Retail uses Salt formulas to help simplify configuration. Formulas are pre-written Salt states, that are used to configure your installation.
You can use formulas to apply configuration patterns to your hardware groups. Uyuni for Retail uses the Saltboot formula, which defines partitioning and OS images for terminals.
You can use default settings for formulas, or edit them to make them more specific to your environment.
For more information about formulas, see retail:retail-formulas-intro.adoc.
Saltboot is a collection of tools and processes that are used to bootstrap, deploy and validate Uyuni for Retail terminals.
Saltboot consists of:
initrdis created during image building and is required for bootstrapping terminals.
The Salt state that contains the logic for the entire saltboot process.
The Salt pillar structure that describes how terminals are partitioned and what image is deployed on each terminal.
Images and boot images pillars:
When the image building feature in Uyuni successfully builds an image that contains the saltboot
initrd, the image and boot image Salt pillars are created.
The saltboot process involves the Uyuni Server, a terminal running the saltboot
initrd, and the branch server providing the saltboot services to the terminal.
For a detailed diagram explaining how the saltboot boot process works, see retail:retail-saltboot-diagram.adoc.