Chapter 13. Setting up a high-availability CUPS print server environment


If your clients require access to printers without interruption, you can set up CUPS on multiple hosts and use the print queue browsing feature to provide high availability. Print clients then automatically configure print queues shared by the different print servers. If a client sends a print job to its local print queue, CUPS on the client routes the job to one of the print servers which processes the job and sends it to the printer.

Procedure

  1. Set up CUPS on two or more servers:

    1. Install and configure CUPS.
    2. Enable TLS encryption.
    3. Add print queues to all CUPS instances by using the lpadmin utility or the web interface. If you use the web interface, ensure that you select the Share this printer option while you add the printer. The lpadmin utility enables this setting by default.

      Important

      For the high-availability scenario, each queue on one print server requires a queue with exactly the same queue name on the other servers. You can display the queue names on each server by using the lpstat -e command.

      Optional: You can configure the queues on each server to refer to different printers.

  2. On print clients:

    1. Edit the /etc/cups/cups-browsed.conf file, and add BrowsePoll directives for each CUPS print server:

      BrowsePoll print_server_1.example.com:631
      BrowsePoll print_server_2.example.com:631
    2. Enable and start both the cups and cups-browsed service:

      # systemctl enable --now cups cups-browsed

Verification

  • Display the available printers on a client:

    # lpstat -t
    ...
    device for Demo-printer: implicitclass://Demo-printer/
    Demo-printer accepting requests since Fri 22 Nov 2024 11:54:59 AM CET
    printer Demo-printer is idle.  enabled since Fri 22 Nov 2024 11:54:59 AM CET
    ...

    The example output shows that the Demo-printer queue uses the implicitclass back end. As a result, cups-browsed routes print jobs for this queue to the hosts specified in the BrowsePoll directives on this client.

Additional resources

Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.