I use Linux CUPS and LPRng Printservers in the HA System. Because these servers are essential to the companies, I decided to implement a Heartbeat solution. During the print process the invoices are also transfered to a document management system, the printfiles are as well converted to PDF and index files created with a perl script for the DMS. In addition, certain printfiles are sent to certain people as PDF mail attachments (depending on the content of the print jobs).
It is clear that it would cost the company a lot of money, if the system would fail. I decided to use the HA system in connection with monit. Two Intel-based servers (Raid 5) running under SUSE LINUX 9.0 with mostly redundant hardware is the platform.
Heartbeat and monit are configured as suggested under the monit website, which means that monit is started by the system daemon (configured via inittab). It then starts Heartbeat, via its configuration file monitrc, by the monit option "start group local". This means, when coming up, monit starts all services marked as local. The services CUPS, postfix and Samba are started by Heartbeat, using the monit "Start Group" option. This means that the services are under control of both HA and monit. HA takes care that the services are only running on the active node, and monit takes care that they are monitored and restarted on the active node if needed. Because the main server is changed now and then (printers added, deleted, configuration files changed etc), I use CRON and scripts to update the backup server with all the relevant files once a day (at night). An alternative would be the use of a DRBD System, with would eliminate the needs of manual Synchronisation.
Until now, it has workes perfectly (even though no failures happened yet). From my point of view, I can recommend it highly. It takes some time to get to all the bits, but then ..... On the other hand -- who ever said that such a highly sophisticated system is trivial. I am now at my 4th HA installation, and it works perfectly!