TWiki
>
CF Web
>
Printing
>
CupsSetupInCS
(2013-07-03,
DrewPilcher
)
(raw view)
E
dit
A
ttach
---+ CUPS in the School of Computer Science %TOC% We describe the work being done to setup a CUPS server along with a Print Accounting system for the School of Computer Science. Ultimately this system will replace the =lpr= and =lpquota= systems. See CFPrivate.PrintingProblems for a discussion of problems with the xhier lpr system and how cups may be a solution to these problems. ---++ Cups Server which uses Pykota/PostgreSql print quota system See CupsCsServer. ---++ Managing Users and Printers on the CUPS server cups.cs See ManageUsersPrintersOnPykota See CreateCupsPrinterStepByStep ---++ Creation of Xhier CUPS packages Three CUPS related xhier packages have been created, namely, =cups-1.2.X_dev=, consisting of static libraries and header files; =cups-1.2.X_runtime=, consisting of dynamic libraries; and =cups-1.2.X=, the main CUPS package containing the daemon =cupsd= along with the various administrative and client oriented commands. A wrapper script for CUPS =lpr= command has been created that emulates some of the *-Z* options that the old Xhier =lpr= package uses albeit *not* all options are supported. The man page for =lpr= has also been suitably edited to reflect the aforementioned emulation of the *-Z* options. The documentation as described in the man pages is a little sparse, in particular, the full command line options of the =lpr= command is not present in the man page of =lpr=. Look at http://print.cs:631/help/options.html for a much more complete summary. In particular, CUPS, can print a lot of different file types including *PDF*, *JPEG*, *ASCII* text, etc. Unfortunately the CUPS developars are taking too much advantage that CUPS is based on the HTTP 1.1 protocol in that they like to create webpages and not offer a corresponding man page. I have created a cups-lpr-cover-1 package on xhier to amend this deficiency. It uses xh-ln to substitutes it's own lpr man page when installed on a machine with the cups-1.2.X xhier package. It can be installed on Linux hosts to replace the vendor's man pages if so desired. ---++ Cups on print.cs (services102.cs) As the =cupsd= daemon listens to port 631 by default it does not conflict with the xhier lpd daemon which listens to port 515. The CUPS package is not installed in the default path. The server on *print.cs* forwards jobs to our *lpd* running on *print.cs*. To configure the cups server go to http://print.cs:631. There is a possibility that =firefox= hangs when adding PPD file for a new printer unless you run firefox directly on the print server. If you find this is the case, use *mozilla*. People who are in the Unix group *www_cscf* (as defined by =/etc/group= and managed by =accounts-master= database on *cscf.cs*) can configure printers, that is, if *CUPS* asks for password authentication, type in your username and passwd as defined in the *core.cs* region. Until an alternate way of accounting for print jobs on the cups side can be installed, you should always choose choose *lpd* for the CUPS backend and send the jobs to print.cs so that the =lpquota= system will come into play. In other words, do not send jobs directly to the printers albeit for printers where accounting is not an issue it may be permissible to do so but keep in mind this implies the printers will be accessible to anyone who is running a CUPS server on the subnet (see below for some host which have this behaviour). ---+++ Restarting the CUPS server * */software/cups/export/shutdown* * */software/cups/export/boottime* ---+++ Problems and how to solve some of them Many clients set a =BrowsePoll print.cs== in =cupsd.conf= which can cause some traffic on print.cs. The parameter *MaxClients* in <verbatim> print.cs:/software/cups/config/local/cups/cupsd.conf </verbatim> has must be set larger than the number of clients polling the server. Furthermore, because some clients are running older versions of cups, there are many orphaned =cups-polld= process on such clients which may or may not be doing polling of print.cs. To reduce the number of times clients request updated info from print.cs I recommend explicitly setting the *BrowseInterval* and *BrowseTimeout* parameters to larger values. Do ensure that that printers do not disappear you must have *BrowseInterval < !BrowseTimeout*. I would suggest a value of an hour, i.e, 3600 (these parameters take seconds). And updating the host to a new version Ubuntu is also recommended. See CupsOnLinux for specific notes on how to configure CUPS on Linux. ---+++ Printing on Frontends is Provided by CUPS server on print.cs Both the core and undergraduate frontends get printing services by listening to the subnet for UDP packets broadcast by *print.cs*. Until a proper way of accounting for print jobs on the cups side can be done we will not be sending jobs directly to a printer albeit for printers where accounting is not an issue it may be permissible to do so. ---++ Cups has been setup as a client on =cscf.cs= I have installed the xhier =cups-1.2.X= package on =cscf.cs=. It can run at the If you want to access the CUPS commands use the =showpath= command. Something like <verbatim> setenv PATH `/bin/showpath cups-1.2.X standard u=m` </verbatim> if you are using =csh= or =tcsh=. Similarly you should setup the =MANPATH= environment variable so that the CUPS man pages are show first, namely <verbatim> setenv MANPATH `/bin/showpath class=man cups standard` </verbatim> if you are using =csh= or =tcsh=. ---++ Cups Authentication Schemes According to the developer of CUPS, any pam module can be used as long as CUPS is told to use them. In particular, the host =services118.cs= running Ubuntu has been configured to authenticate to the Windows ADS domain =CS.UWATERLOO.CA= via PAM. *NOTE. There are problems with this as it does not work at the moment. I may be forced to use setpw again but one can login as root from cscf.cs.* On print.cs it uses =Basic= which means it's using =/etc/passwd=, =/etc/shadow= for administrative tasks. ---++ Print Accounting ---+++ Software and Hardware Accounting Simply put it is desired to have page counts. There are basically two approaches, namely *software* and *hardware* where the software approach analyzes the data files directly whereas the hardware approach tries to query the printer for page counts. The latter approach is most likely the desired statistic. The cups server logs pages printed in =logs/page_log= and it represents a software approach. Tools exist to analyze this data and present it in a more understandable format. For example, [[http://tpequet.free.fr/phpPrintAnalyzer/phpPrintAnalyzer-screenshot.png screenshot]] using [[http://phpprintanalyze.sourceforge.net/ phpPrintAnalyzer]]. A much more complete accounting suite for print accounting appears to be [[http://www.pykota.com Pykota]] which can do both types of accounting. In addition to Pykota there are some specific tools like [[http://www.pykota.com/software/pkpgcounter pkpgcounter]] which uses a software approach to get page counts. A user could use this to estimate the number pages (and cost) of a print job. I have created a deb package from the subversion archive and installed the package on my pc. ---++ Authentication and Authorization to Print Pykota uses a backend database to store it's records and also to restrict access to printers based on what user and usergroup. It can use SQLite3, !PostgreSQL, !MySQL, or LDAP. ---++ MySQL as the backend I have successfully set this up and I have used phpmyadmin to query it via a browser. Nice! !MySQL has mindshare in CSCF albeit !PostgreSQL is becoming more favoured. ---++ PostgreSQL as the backend database It is highly probable that postgresql will be the database of choice as it's truly robust database and because Pykota seems to work better with it. ---++ Accessing Print Job History Have also made it possible to present print job history for users via a cgi script that comes with Pykota. This script allows any user to see the job history of all users unless one uses htpasswd (this would entail enabling passwds for all users--not a viable option). There area also nice command line tools that yield the same information albeit we would have to enable some remote login facility to run certain commands like we do now with lpquota. ---++ TODO * Make it possible to proper accounting like we currently do with =lpquota_filter= and =psif= * Done! Albeit a little more examination of how it does it may be in order, both for psif, lpquota_filter and Pykota * As part of the transition to cups we should make it possible to forward jobs to the cups server using our =lpr= command as provided by the xhier lpr package, see Trash.XhierLprToUbuntuCups for a solution. ---++ External References about Cups * [[http://www.cups.org Cups Homepage]] contains many [[http://www.cups.org/documentation.php docs]] * [[http://en.opensuse.org/SDB:CUPS_in_a_Nutshell Nutshell guide]] at Suse, * [[http://ask.slashdot.org/askslashdot/06/01/10/2352201.shtml Slashdot]] discussions of Cups and other systems, * [[http://www.linuxprinting.org/cups-doc.html LinuxPrinting.org Cups Quick Start]], * [[http://www.cups.org/articles.php?L230+I0+T+P1+Q A Quick Setup Guide to Cups at cups.org]] * [[http://www.cups.org/newsgroups.php Cups Forums]]
E
dit
|
A
ttach
|
Watch
|
P
rint version
|
H
istory
: r20
<
r19
<
r18
<
r17
<
r16
|
B
acklinks
|
V
iew topic
|
WYSIWYG
|
M
ore topic actions
Topic revision: r20 - 2013-07-03
-
DrewPilcher
CF
Information in this area is meant for use by CSCF staff and is not official documentation, but anybody who is interested is welcome to use it if they find it useful.
CF Web
CF Web Home
Changes
Index
Search
Administration
Communication
Email
Hardware
HelpDeskGuide
Infrastructure
InternalProjects
Linux
MachineNotes
Macintosh
Management
Networking
Printing
Research
Security
Software
Solaris
StaffStuff
TaskGroups
TermGoals
Teaching
UserSupport
Vendors
Windows
XHier
Other Webs
CSEveryBody
Main
Sandbox
TWiki
UW
My links
People
CERAS
WatForm
Tetherless lab
Ubuntu Main.HowTo
eDocs
RGG NE notes
RGG
CS infrastructure
Grad images
Edit
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback