One of the services that many public libraries provide is computer access, both for local applications and access to Internet services. The Wendell Free Library provides these services with thin1 Linux workstations. These workstations provide a web browser (Firefox), for access to web sites of all sorts and also provide a number of local applications, including an office suite (OpenOffice), plus several other applications, including a movie player (MPlayer), an image editing program (GIMP), and a large collection of games.
Using thin clients reduces energy costs, creates a uniform environment that only needs to be updated in one place, on the server, and quieter operation. This article describes the setup and configuration of these thin clients at the Wendell Free Library and covers the step-by-step process of setting up the server and the client machines and includes the process from installing the base system on the server to configuring the PXE boot process to user authentication and management.
11.1 Alternative Local Area Network for CWMARS
11.2 Samba Anonymous Printer Sharing
12 One “Thicker” client for burning CDs.
There are two MS-Windows machines on our network. One for patrons for the handful of programs patrons used that only run under MS-Windows (mostly kids learning games) and one for the librarians (mostly to run the special CWMARS circulation program).
There is a MS-Windows PC is on an alternative Local Area Network2. This setup is to allow an alternative, protected network for CWMARS business, one that is logically isolated and secured from patron access. I set up aliases network interfaces on the server and on the two staff clients. This allows the server to provide print services and allows the two staff client machines to use vncviewer to remotely access this MS-Windows machine. This allows the librarians and selected volunteers to use the CWMARS cataloging and circulation software to manage inter-library loans and to update Wendell’s section of the CWMARS catalog database.
Both the CWMARS MS-Windows and the one patron MS-Windows machine need access to the printers. Sine MS-Windows does not implement CUPS, the printers are shared using the Samba software package, which provides NETBIOS services. In this case, simple anonymous printer sharing is provided by the server.
One of the clients is a full fledged Linux system, with its own hard drive. This machine includes a CD-RW drive. I left this machine with a disk, since burning CD-Rs involves time-critical disk I/O and I would doubt that NFS over a busy network connection would be fast enough to keep up with the CD burner. Other than booting off its local disk, it functions much like the diskless clients. It uses OpenLDAP for user authentication and auto-mounts user home directories.
Backups are always important and I have set up an automated, once a day backup. This uses the dump utility and dumps daily incremental backups to a USB external disk3 connected to the server. Once a month, full (level 0) backups are performed on all of the drives. Once a week, level 1 backups are performed on selected drives, and the rest of the week, a Tower Of Hanoi sequence4 of incremental backups are performed on the busiest drives (/home and /var).
A USB connected DVD burner is also connected to the server. Early each month, a manual backup of the previous month’s backup will be made on DVD-Rs, which will be then stored off site.
I’d like to thank Christine Texiera for proofreading this document. She some useful comments and found a bunch of small errors. Thanks Christine!
Here is the collection of configuration file and scripts I used. Feel free to download them and modify them to suite your environment.
*Copyright (C) 2009 Robert Heller.
1 Thin clients are diskless computers, which get their operating system and application software from a file server on the local area network (LAN).
2 Same physical network, but in a different private IP address range.
3 A 160gig SATA laptop drive in a USB external enclosure.
4 Levels 3 2 5 4 7 6 9 8.
|Printable PDF|| ||LibraryServerArticle.pdf|
|BusyBox patch|| ||busybox-1.13.2.udhcp.patch|
|module alias convert script|| ||convertmodalias.tcl|
|PXE Boot Config File|| ||default|
|DHCP Deamon Config|| ||dhcpd.conf|
|NFS Exports|| ||exports|
|File System Table|| ||fstab|
|RAMDISK Startup Script|| ||linuxrc|
|Simplified lspci program|| ||lspci_simple.c|
|Boot RAMDISK Create Script|| ||mkbootimage.sh|
|NFS Root File System Differences|| ||nfsroot-etc.diff.gz|
|Read-to-go PXE RAMDISK IMAGE|| ||pxeboot-2.6.18-92.el5.img.gz|
|Generic PXE RAMDISK IMAGE|| ||pxeboot-generic.img.gz|
|Server CUPS config files|| ||server1.cups.conf.tar.gz|
|Client CUPS config files|| ||station4.cups.conf.tar.gz|
|Samba config file|| ||smb.conf|
|Trivial File Transfer Protocol config file|| ||tftp|
|Udhcpc script|| ||udhcpc.script|
|Sendmail config file|| ||wendellfreelibrary.mc|
|Sendmail config file|| ||wendellfreelibrary_server.mc|
|Sendmail config file|| ||wendellfreelibrary_thin.mc|