Set Up the SUSE Manager for Retail Environment

To set up the SUSE Manager for Retail environment, you will need to have already installed and configured SUSE Manager Server, have one or more SUSE Manager for Retail branch server, and one or more SUSE Manager build host.

This section covers how to configure your SUSE Manager for Retail environment, including: * Prepare POS images * Configure services on the branch server * Synchronize POS images to the branch servers

The very first time you set up the SUSE Manager for Retail environment, you will need to perform all three steps. You will need to revisit some of these steps later on as you are working with SUSE Manager for Retail.

For example, the first time you configure the branch server, you will need to have images prepared for synchronization. If you are configuring more than one branch server, you can use the same images across different branch servers.

If you have an existing environment, and need to build new images, you do not need to re-initialize the branches. You will need to synchronize the images, and can skip setting up the services on the branch server.

Usually, POS images are rebuild when updated packages are available, and synchronized to the branch servers before the update window opens.

1. Prepare and Build Terminal Images

For information about SUSE Manager image building, see Image Building and Management.

SUSE Manager for Retail POS images are images specifically tailored for SUSE Manager for Retail environment and designed to be deployed using PXE booting mechanism.

1.1. POS Image Templates

As starting point, SUSE provides basic templates at https://github.com/SUSE/manager-build-profiles/tree/master/OSImage. These templates need to be adapted for specific usecases, for example by including specific applications, configuration settings, and users.

By default, POS templates do not include a system user. You will not be able to login as a user to a system that has been installed with a SUSE provided template. However you can use Salt to manage clients without a system user. You can use Salt to install a system user after the terminal has been deployed.

1.2. SLES 11 SP 3 Terminals

POS Terminals based on SUSE Linux Enterprise Server 11 SP 3 can be deployed in much the same way as other terminals, with a few differences.

  • You must use the SLES 11 template

  • SLES 11 images need to be activated with the SLES11 SP3 i586 and SLEPOS 11 SP3 i586 channels

Ensure that SLES 11 images are built on the SLES 11 build host. Building on the incorrect build host will cause your build to fail.

If you are building images for SLES 11 using profiles from an HTTPS git repository that uses TLS 1.0 or greater, it will fail. SLES 11 does not support later versions of TLS. You will need to clone the repository locally to use it for building.

2. Configure Services on the Branch Server

Before you configure the branch server, ensure you have decided on networking topology, and know the minion ID of the branch server. For the information about the possible network topologies, see Network Architecture.

In case you plan to use the branch server as a monitoring server with Prometheus, be aware that Prometheus demands additional hardware resources. For more information about installing Prometheus, see Monitoring with Prometheus and Grafana.

In case you plan to use the branch server with Ansible software, be aware that Ansible demands additional hardware resources. For more information about installing Ansible, see Ansible integration.

Configure branch server services from the SUSE Manager Server. The configuration is then applied to the selected branch server using Salt states. SUSE Manager Formulas with Forms functionality is used to configure branch server services. However, there are multiple ways to configure these services:

  • SUSE Manager for Retail provided command line tool retail_branch_init

  • SUSE Manager for Retail provided mass import command line tool retail_yaml

  • SUSE Manager web UI and configuring formulas manually (for advanced users)

The branch server can be configured automatically using the retail_branch_init command, as shown in this section. If you prefer to manually configure the branch server, you can do so using formulas. For more information about formulas, see Introduction to Retail Formulas.

Procedure: Configuring Branch Server Formulas With a Helper Script
  1. Branch server configuration is performed using the retail_branch_init command:

    retail_branch_init <branch_server_minion_id>

    This command will configure branch server formulas with default values and for shared networking topology. For dedicated network topology run this command:

    retail_branch_init <branch_server_minion_id> --dedicated-nic <network_device>

    You can customize network information as well, together with custom branch prefix. For example:

    retail_branch_init <branch_server_minion_id> --dedicated-nic eth1 \
                                                 --branch-prefix B001 \
                                                 --server-domain <branch_server_subdomain> \
                                                 --branch-ip 192.168.86.1 \
                                                 --netmask 255.255.255.0

    You can use the retail_branch_init --help command for additional options.

  2. Verify that your changes have been configured correctly by checking the SUSE Manager Web UI branch server system formulas.

  3. Apply highstate on the branch server. You can do this through the Web UI, or by running this command:

    salt <branch_server_minion_id> state.apply

Similar results can be achieved by using mass import command line tool.

Procedure: Configuring Branch Server Formulas With a Mass Import Tool
  1. Prepare branch specific YAML file:

    For example, create branch.yaml file with content:

    branches:
      <branch_server_minion_id>:
        branch_prefix: branch1
        server_name: branchserver1
        server_domain: example.com
        nic: eth1
        dedicated_nic: true
        configure_firewall: true
        branch_ip: 192.168.2.1
        netmask: 255.255.255.0
        dyn_range:
            - 192.168.2.10
            - 192.168.2.250

    For more information about mass import tool, see Mass Configuration.

  2. Import branch information from YAML file to SUSE Manager

    retail_yaml --from-yaml branch.yaml
  3. Verify that your changes have been configured correctly by checking the SUSE Manager Web UI branch server system formulas.

  4. Apply highstate on the branch server.

Both retail_branch_init and retail_yaml commands override existing configuration settings of the specified branch server.

After the initial configuration done by command line tools, branch server configuration can be further adjusted in SUSE Manager Web UI through branch server formulas.

2.1. Required System Groups

SUSE Manager for Retail requires system groups for terminals and servers. Manually create these system groups during installation:

  • TERMINALS

  • SERVERS

Additionally, you will need to create a system group for each branch server, and each terminal hardware type in your environment. For more information about hardware type groups, see Deploy Terminals.

Branch server groups are named after branch server prefixes, for example group name B0001 for branch server prefix BOO1.

You can create system groups using the SUSE Manager Web UI. Navigate to Systems  System Groups and click Create System Group.

For more information about system groups, see 시스템 그룹.

SUSE Manager for Retail command line tools create required system groups and branch group automatically.

3. Synchronize Images to the Branch Server

The OS image you use on the SUSE Manager server must be synchronized for use to the branch server. You can do this with the Salt image-sync state, part of the Image Synchronization Formula.

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

    salt <branch_server_minion_id> state.apply image-sync
  2. The image details will be transferred to /srv/saltboot on the branch server.

You can also set synchronization to run automatically on the branch server. Configure the image synchronization formula to apply the highstate regularly. For more information about Image Synchronization Formula, see Image Synchronization Formula.