Author Topic: My Notes for Installing a Zentyal Print Server for Windows Clients  (Read 20085 times)

LHammonds

  • Zen Apprentice
  • *
  • Posts: 1
  • Karma: +0/-0
    • View Profile
Current Situation

Most of our print queues are defined on a single Windows server, the exception being our Citrix servers which are all configured to access the printer directly.  One problem is that we have applications that can kill the print spooler service and when that happens, all printers can go dark.

Another issue is the risk of a virus outbreak.  More than I'd like to admit, our Windows users unleash viruses on their computer and they typically try to infect everything inside the network.  An all-Windows platform can be susceptible to a single virus that can get by the defenses we have setup...which could be problematic for each and every service we have.  We try to diversify when possible such as having different virus scanners on servers than what we use on workstations, firewalls, VLans, etc.  However, for all the threats we face with our Windows machines, Unix systems are not affected (at least not by the same threats our users are bringing in).

Space required for backups are growing and growing and being able to reduce the footprint of servers to the just their configuration files makes disaster recovery much easier and faster.  For a print server, we do not need to backup the entire OS...just the current configuration.  This Zentyal server will allow the backup of the server in a mere 200kb file...which only needs to be backed up whenever there is a add/change/delete for a print queue.  It can even be automated to run a backup, copy the archive to a remote repository and only keep the last x amount on hand which could be less that 3MB of backup space to retain the daily configuration of the last 2 weeks.  As far as disaster recovery goes with this configuration backup, a backup Zentyal server can be setup at the remote site (even as a one of the potential backup repositories).  If the primary server is no longer available (destroyed), the secondary server can take over as the print server by restoring a backup.

Staff

There are 3 of us in the IS department.  One mainly handles network hardware, contracts and management stuff, the other handles day-to-day PC issues, laptops and printers and I get everything else which is research-n-development, planning and implementing new services, automation and maintaining the current servers.


I am fairly new to the Linux world and most-certainly new to Zentyal.  I tried to setup a basic Ubuntu 10.04 LTS server with CUPS but my initial attempt had web permission and print driver issues.  Upon asking some questions on Ubuntu forums, I was eventually directed to Zentyal as a solution.  My initial test of Zentyal / CUPS seemed to be successful and based on my initial results, I was given the go ahead to build and document a production print server.  This thread will serve as my notes for how to install and configure the server to work in a Windows environment.  I will be learning as I go and will update the install / config procedure as I find better ways of doing it.  Hopefully, those with experience can help steer me in the right direction. ;)

Server Environment

Most servers are virtualized on an IBM BladeCenter with a redundant BladeCenter at a remote site serving as our backup repository and failover server.  The vast majority are Windows 2003 Server (32-bit), a few 2008 servers (32-bit and 64-bit), a few ESXi servers and a few Ubuntu servers.   About 30 servers in all.

Most everything I setup now is through VMware so this documentation will cover the initial steps of setting up a virtual machine (VM) inside vSphere.  This can also be done using similar software such as Oracle's VirtualBox.

Client Environment

Most workstations are Windows XP Professional (32-bit) and some Windows 7 (32-bit and 64-bit).  About 200 PCs / laptops in all.  Oh, we have quite a few iPhones but I never considered the ability to print from them since we have no other Mac equipment.  We are eventually going to have an environment were iPads and iPhones will be able to access our programs via Citrix but that is several months away.

Printers

Most printers are HP LaserJets and some are Brother HL series (about 70 total).  The model numbers vary slightly due to them being purchased over a long period of time but are mainly HP LaserJet 4250 and Brother HL-5250DN.  There are a few Toshiba copiers and all of them are identical model numbers because they are leased.

Variables

Throughout this thread, I will refer to some items that will be different for each installment and will paint them red.  Under no circumstance should you use the same thing I have displayed here (they are just examples).  You will need to figure out what they will be for your installation:

  • Server Name: SRV-Print
  • Server IP: 192.168.107.22
  • Server Subnet Mask: 255.255.255.0
  • Server Gateway: 192.168.107.1
  • Server DNS #1: 192.168.107.2
  • Server DNS #2: 192.168.107.3
  • Administrator ID: administrator
  • Administrator Password: myadminpass
  • Example Printer IP: 192.168.107.100 (Brother)
  • Example Printer IP: 192.168.107.101 (HP)
  • Example Printer IP: 192.168.107.102 (Toshiba)
  • ?

Virtual Environment Setup

The 1st order of business is to download zentyal-2.2-1-amd64.iso from Zentyal and then upload the ISO image to a LUN datastore so it will be accessible when the machine is powered on.

The requirements mention a very large disk (250 GB) but if this is only for printing services, I don't think we need an excessively large drive.  I will have to watch and see.  If Zentyal uses LVM, it should be no problem to expand later if needed.

  • Open vSphere Client
  • Right-click a cluster and select Create New Virtual Machine
  • Configuration - Select Custom, Next
  • Name - Type SRV-Print, click Next
  • Datastore - Select the desired LUN, click Next
  • Version - Select Virtual Machine Version: 7, click Next
  • Guest Operating System - Select Linux, Version: Ubuntu Linux (64-bit), click Next
  • Number of Processors - Select 1, click Next
  • Memory Size - Set to 1 GB, click Next
  • Network - Set to 1 NIC, VM Network, E1000, Connect at Power On: Enabled, click Next
  • SCSI Controller - Select "LSI Logic Parallel", click Next
  • Select a Disk - Select "Create a new virtual disk" and click Next
  • Create a Disk - Set to 10 GB, Uncheck: Allocate on demand, Uncheck: Support clustering, Check: Store with the virtual machine, click Next
  • Virtual Device Node - Click Next to accept default of SCSI (0:0), Unchecked: Independent
  • Ready to Complete - Place a check beside "Edit the VM settings before completion" and click Continue
  • Select "New Floppy" and click Remove
  • Select "New CD/DVD" and change Device Type to "Datastore ISO File" and select zentyal-2.2-1-amd64.iso which was recently uploaded to the LUN and place a checkmark beside "Connect at power on"
  • Click Finish

Install Zentyal Server

  • Turn on power for the server
  • Language - Press ENTER to accept English
  • Zentyal Menu - Press ENTER to select "Install Zentyal 2.2-1 (delete all disk)"
  • Choose Language - Press ENTER to accept English
  • Country - Press ENTER to accept United States
  • Detect keyboard layout? - Press ENTER to accept No
  • Origin of keyboard: - Press ENTER to accept USA
  • Keyboard layout - Press ENTER to accept USA
  • Hostname - Type SRV-Print, press ENTER
  • Configure the clock - Press ENTER to accept detected time zone
  • Full name for new user: Type Administrator and press ENTER
  • Username for your account: Press ENTER to accept "administrator"
  • Choose a password: Type myadminpass and press ENTER
  • Re-enter password to verify: Type myadminpass and press ENTER
  • Installation Complete - Press ENTER to continue
  • At this time, you can edit the VM settings and change the CD/DVD drive back to "Client Device"

Install Zentyal Packages

  • At the console, login with administrator / myadminpass
  • When Firefox asks if you want to remember the password, change the answer to "never remember"
  • Choose Zentyal Packages to Install - Select File Sharing Service, Firewall, Network Configuration, Printer Sharing Service, Users and Groups and click Install
  • The following packages will be installed - Click OK
  • Network Interfaces - Select Internal and click Next
  • IP address method: Select Static, set the following and click Next:
    IP address: 192.168.107.22
    Netmask: 255.255.255.0
    Gateway: 192.168.107.1
    DNS 1: 192.168.107.2
    DNS 2: 192.168.107.3
  • LDAP Replication - Select Standalone Server and click Finish
  • Installation Finished - Click Save Changes

Update Zentyal

  • On the Zentyal web menu, click the Dashboard link
  • Click the red text next to software (* mine says "26 security updates" *)
  • Scroll all the way down and place a checkmark beside "Update all packages" and click Upgrade
  • Installation Finished - Click Save changes
  • Click Module Status on the left navigation bar under Core
  • Module Status Configuration - Place a checkmark beside Network and click Accept
  • Module Status Configuration - Place a checkmark beside Firewall and click Accept
  • Module Status Configuration - Place a checkmark beside Events and click Accept
  • Module Status Configuration - Place a checkmark beside Logs
  • Module Status Configuration - Place a checkmark beside File Sharing and click Accept
  • Module Status Configuration - Place a checkmark beside Printer Sharing and click Accept
    NOTE: Spool directory set to /var/spool/samba
    NOTE: Config file is /etc/cups/cupsd.conf
  • Module Status Configuration - Click the red box in the top-left corner that says Save changes, then click Save


Configure CUPS

  • On the Zentyal web menu, click Printer Sharing link
  • Click the CUPS Web Interface link which should be pointing to https://localhost:631/admin
  • This Connection is Untrusted - Click I Understand the Risks, Add Exception, Confirm Security Exception
  • Authentication Required - Login with administrator / myadminpass
  • When Firefox asks to remember the password, change it to Never Remember
  • Place a checkmark beside Share printers connected to this system and Allow remote administration, then click Change Settings

Add Printers to Server

Be sure to come up with a good naming convention for your print queues.  They typically will not change much over time even if the printers and IP addresses do.  I like using the City/Building/Office/Location method.  Using a department or person name might render the queue obsolete if the department or person changes location or leaves completely.  Many times the city/building and be combined into initials such as the main office in Austin could be abbreviated as AM.  Just make sure it is consistent and easily understood throughout your company.

Add a Brother HL-5250DN Printer:
  • Click the Administration tab on the CUPS Web Interface
  • Click Add Printer
  • Select AppSocket/HP JetDirect and click Continue
  • Connection - Type socket://192.168.107.100 and click Continue
  • Add Printer - Set the following and then click Continue:
    Name: CITY1-BUILDING1-OFFICE1-FRONTDESK
    Description: Brother HL-5250DN
    Location: City1, Building1, Office1, Front Desk
    Sharing: Check (Share This Printer)
  • Make: Select Brother, click Continue
  • Model: Select Brother HL-5250DN Foomatic/Postscript (en), click Add Printer
  • Set Default Options - Make changes if necessary and click Set Default Options
  • Make sure the printer shows (Idle, Accepting Jobs, Shared)

Add an HP LaserJet P4014N Printer:
  • Click the Administration tab on the CUPS Web Interface
  • Click Add Printer
  • Select AppSocket/HP JetDirect and click Continue
  • Connection - Type socket://192.168.107.101 and click Continue
  • Add Printer - Set the following and then click Continue:
    Name: CITY1-BUILDING1-OFFICE2-RECEPT
    Description: HP LaserJet 4014N
    Location: City1, Building1, Office2, Receptionist Desk
    Sharing: Check (Share This Printer)
  • Make: Select HP, click Continue
  • Model: Select HP LaserJet P4010 Series Postscript (recommended), click Add Printer
  • Set Default Options - Make changes if necessary (such as specific model number, additional trays, memory) and click Set Default Options
  • Make sure the printer shows (Idle, Accepting Jobs, Shared)

Add a Toshiba e-STUDIO 255SE Copier:
  • Click the Administration tab on the CUPS Web Interface
  • Click Add Printer
  • Select AppSocket/HP JetDirect and click Continue
  • Connection - Type socket://192.168.107.102/print and click Continue
  • Add Printer - Set the following and then click Continue:
    Name: CITY1-BUILDING2-OFFICE2-MAILROOM
    Description: Toshiba e-STUDIO 255SE Copier
    Location: City1, Building2, Office2, Mail room
    Sharing: Check (Share This Printer)
  • Make: Select Toshiba, click Continue
  • Model: Select Toshiba e-Studio 282 Foomatic/Postscript (en), click Add Printer
  • Set Default Options - Make changes if necessary and click Set Default Options
  • Make sure the printer shows (Idle, Accepting Jobs, Shared)

Find/Test Windows Print Drivers

Now that we have a print server and print queues setup, we need to find print drivers for the client OS that will work.  For my scenario, if I can use a compatible driver that ships with the operating system, that will be the preferred option.  If nothing works sufficiently during the tests, then the alternative is to install the reference drivers for that specific printer.

To see the list of print drivers available to the operating system, simply go thorugh the process of adding a local printer to see the list of available manufacturers and printers...then cancel the process after you identify a specific printer name.  Make sure you have the exact name recorded correctly including the hyphens and "series" or the commandline will fail when adding the printer.

Brother HL-5250DN

Windows XP has "Brother HL-2460"
Windows 7 has "Brother HL-5250DN series"

HP LaserJet P4014N

Windows XP has "HP LaserJet 4000 Series PCL6"
Windows 7 has "HP LaserJet P4014/P4015 PCL6"

Toshiba e-STUDIO 255SE

Windows XP has jack squat for Toshiba so we will use "HP LaserJet 4"
Windows 7 has "TOSHIBA e-STUDIO282 PS3"


To add the above 3 printers above to a Windows XP machine, run the following commands:
Code: [Select]
rundll32 printui.dll,PrintUIEntry /b "CITY1-BUILDING1-OFFICE1-FRONTDESK" /x /n "required but unused" /if /f %windir%\inf\ntprint.inf /r "http://192.168.107.22:631/printers/CITY1-BUILDING1-OFFICE1-FRONTDESK" /m "Brother HL-2460"
rundll32 printui.dll,PrintUIEntry /b "CITY1-BUILDING1-OFFICE2-RECEPT" /x /n "required but unused" /if /f %windir%\inf\ntprint.inf /r "http://192.168.107.22:631/printers/CITY1-BUILDING1-OFFICE2-RECEPT" /m "HP LaserJet 4000 Series PCL6"
rundll32 printui.dll,PrintUIEntry /b "CITY1-BUILDING2-OFFICE2-MAILROOM" /x /n "required but unused" /if /f %windir%\inf\ntprint.inf /r "http://192.168.107.22:631/printers/CITY1-BUILDING2-OFFICE2-MAILROOM" /m "HP LaserJet 4"


To add the above 3 printers above to a Windows 7 machine, run the following commands:
Code: [Select]
rundll32 printui.dll,PrintUIEntry /b "CITY1-BUILDING1-OFFICE1-FRONTDESK" /x /n "required but unused" /if /f %windir%\inf\ntprint.inf /r "http://192.168.107.22:631/printers/CITY1-BUILDING1-OFFICE1-FRONTDESK" /m "Brother HL-5250DN series"
rundll32 printui.dll,PrintUIEntry /b "CITY1-BUILDING1-OFFICE2-RECEPT" /x /n "required but unused" /if /f %windir%\inf\ntprint.inf /r "http://192.168.107.22:631/printers/CITY1-BUILDING1-OFFICE2-RECEPT" /m "HP LaserJet P4014/P4015 PCL6"
rundll32 printui.dll,PrintUIEntry /b "CITY1-BUILDING2-OFFICE2-MAILROOM" /x /n "required but unused" /if /f %windir%\inf\ntprint.inf /r "http://192.168.107.22:631/printers/CITY1-BUILDING2-OFFICE2-MAILROOM" /m "TOSHIBA e-STUDIO282 PS3"


Open a document and send a few test pages to each printer from each operating system to make sure it works well enough for the features being used.  In the case of the Brother and Toshiba, they are simply being used as dump printers with no fiddling of hardware print options.  The LaserJet I am testing has an additional tray #3.  When printing, I found that you had to setup the printer properties 1st to let the OS know there is a 3rd or 4th tray.  Once that was done, being able to pick the tray was no problem.

Configure Windows Active Directory

** Not started yet **

Automate Installation via Login Script

** Not started yet **

Backup

** Not started yet **

Restore

** Not started yet **

Offsite Server Setup

** Not started yet **

Offsite Server Failover

** Not started yet **
« Last Edit: February 02, 2012, 11:05:45 pm by LHammonds »
LHammonds

j4w

  • Zen Apprentice
  • *
  • Posts: 1
  • Karma: +0/-0
    • View Profile
Re: My Notes for Installing a Zentyal Print Server for Windows Clients
« Reply #1 on: May 09, 2012, 02:53:16 am »
great step-by-step tutorial!

thx a lot!

the cmd line for adding a printer

rundll32 printui.dll,PrintUIEntry /b "CITY1-BUILDING1-OFFICE1-FRONTDESK" /x /n "required but unused" /if /f %windir%\inf\ntprint.inf /r "http://192.168.107.22:631/printers/CITY1-BUILDING1-OFFICE1-FRONTDESK" /m "Brother HL-2460"

is absolutely amazing!

could you please provide a knowledge source for commands like these?

kind regards

Josef

robb

  • Guest
Re: My Notes for Installing a Zentyal Print Server for Windows Clients
« Reply #2 on: May 09, 2012, 09:29:26 am »
@Josef: that is available from Microsoft KB: http://support.microsoft.com/kb/314486

@LHammonds: you configured Zentyal as stand alone, however you have a Windows Active Directory environment. So you probably want to configure Zentyal as an AD slave and not stand alone. You are aware you have to reinstall the users module to accomplish that?

/edit @LHammonds: I see you already posted this in Februari. Can you give an update on your project?
« Last Edit: May 09, 2012, 09:32:22 am by robb »

Escorpiom

  • Zen Hero
  • *****
  • Posts: 897
  • Karma: +25/-1
    • View Profile
Re: My Notes for Installing a Zentyal Print Server for Windows Clients
« Reply #3 on: May 09, 2012, 09:42:03 am »
Nice work!
There seems to be missing something, the part where you grant users in Zentyal access to the printer(s).
If I follow your step-by-step, my users cannot print because they haven't been authorized.

Having said that, on my end when editing a user, there's no part for allowing access to the printer - it's just plain missing.
The only workaround is to put the usernames directly in the CUPS web interface, so that they can print.
I believe that's rather different from what you explained here.

Cheers.
Marcus' Rule:
Blanks & capitals = avoid it and you'll avoid problems...