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
Set up CUPS on two or more servers:
- Install and configure CUPS.
- Enable TLS encryption.
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
lpadminutility enables this setting by default.ImportantFor 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 -ecommand.Optional: You can configure the queues on each server to refer to different printers.
On print clients:
Edit the
/etc/cups/cups-browsed.conffile, and addBrowsePolldirectives for each CUPS print server:BrowsePoll print_server_1.example.com:631 BrowsePoll print_server_2.example.com:631
BrowsePoll print_server_1.example.com:631 BrowsePoll print_server_2.example.com:631Copy to Clipboard Copied! Toggle word wrap Toggle overflow Enable and start both the
cupsandcups-browsedservice:systemctl enable --now cups cups-browsed
# systemctl enable --now cups cups-browsedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification
Display the available printers on a client:
lpstat -t
# lpstat -tCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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 ...
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 ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow The example output shows that the Demo-printer queue uses the
implicitclassback end. As a result,cups-browsedroutes print jobs for this queue to the hosts specified in theBrowsePolldirectives on this client.