L’impression centralisée à L’IPNL Journées Informatique IN2P3-DAPNIA Valpré – 18-21 septembre 2006 M. Y. Chartoire – IPN Lyon
Principes généraux L’ancien système conçu en 2001 utilisait lprng et les magicfilter’s sur linux Debian, à chaque nouvelle imprimante il fallait créer de nouveaux filtres. Cet ensemble était difficile à maintenir, une solution plus proche des standards devait être trouvée. Le nouveau système utilise cups, samba, LPD et lexprint sur une RHEL 4
Cups Basé sur le principe client-serveur. Utilise le protocole IPP pour communiquer. Inclus un spooler/scheduler, un système de filtres pour convertir le fichier dans le langage de l’imprimante, des backends série, parallèle, usb et réseau (IPP, AppSocket, LPD, SMB) pour communiquer avec les imprimantes.
Samba Logiciel permettant la communication entre les monde unix et windows. Les versions récentes permettent même d’avoir une machine linux comme serveur active directory. Fonction de serveur de fichiers. Fonction de serveur d’impressions. Peut aussi distribuer les pilotes d’impressions aux machines windows.
Configuration de cups sur le serveur Essentiellement définir l’adresse sur lequel il écoute : listen ipaddr:631, l’adresse de broadcast et indiquer s’il faut générer un fichier printcap compatible BSD. Pour les imprimantes Lexmark, lexprint reconnait cups et fait ce qu’il faut. Pour les autres imprimantes mettre les ppd’s dans /usr/share/cups/model/, relancer cups puis utiliser l’interface WEB sur localhost:631 pour créer et configurer les queues d’impressions.
Impression à partir d’unix ou linux Pour unix on utilise toujours lpr/lpd comme par le passé si cups n’est pas disponible pour l’os. Pour Linux, sur les versions récentes c’est cups qui est installé par défaut, il faut juste, par précautions mettre le nom du serveur dans le fichier /etc/cups/client.conf
Les problèmes rencontrés (1) Beaucoup d’imprimantes Lexmak à l’IPNL, lexprint permet de les gérer facilement en créant des queues avec des paramètres différents mais on doit désactiver le mime.type : application/vnd.cups-raw. Celui-ci doit être actif pour utiliser le système d’impression cups dans samba. 2 solutions : Ne pas utiliser lexprint Ne pas utiliser cups dans samba C’est la 2eme solution qui a été choisie, on utilise le système bsd de samba
Les problèmes rencontrés (2) Les conséquences pour smb.conf : printcap name = /etc/printcap printing = bsd print command = lpr -r -P'%p' -J'%J' %s #cups options = raw Nouveau problème : toutes les impressions windows ont comme nom d’utilisateur ‘SMB’, Il faut donc que les utilisateurs soient authentifiés si l’on veut reconnaître les jobs.
Les problèmes rencontrés (3) Une solution simplifiant la vie des utilisateurs, faire rentrer le serveur samba dans le domaine Active Directory : workgroup = IPNLYON realm = IPNL.IN2P3.FR netbios name = LYOPRINT security = ADS password server = LYOPCS12 LYOPCS7
Les pilotes sous Windows Il existe un pilote cups pour Windows, après tests, cette solution n’a pas été retenue car inadapté pour des imprimantes ayant beaucoup d’options (photocopieurs Ricoh par exemple). Nous utilisons les pilotes des constructeurs, mais il faut les installer sur chaque pc client. Là, samba nous vient en aide : les pilotes sont installés sur le serveur samba et ils seront installés automatiquement sur le pc client lors de la première utilisation de l’imprimante.
Configuration de la zone print$ Les pilotes sont installés dans sa zone print$ : show add printer wizard = yes [print$] comment = Printer Driver Download Area path = /etc/samba/drivers browseable = yes guest ok = no read only = yes write list = root, @ntadmin
Installation des pilotes Windows dans Samba (1) 2 méthodes existent : Utilisation de commandes rpcclient sous unix, si le pilote utilise beaucoup de fichier cela est vite fastidieux. Installation des pilotes à partir d’une machine windows sous un compte privilégié (du groupe ntadmin de linux), c’est presque aussi simple que d’installer le pilote directement sous Windows, juste une manip supplémentaire après l’ajout pour mettre à jour la ‘registry’ de samba
Installation des pilotes Windows dans Samba (2) Procédure : Déclarer l’imprimante dans smb.conf et relancer le service. Se connecter sur un pc windows sur un compte du group ntadmin. Rechercher le serveur samba à l’aide des favoris réseau et le sélectionner, cliquer sur l’icone Imprimantes et télécopieurs.
Installation des pilotes Windows dans Samba (3) Installer le pilote a partir de l’onglet avancé de la fenêtre de propriétés, Ne pas imprimer de page de test à cette étape. Apres installation revenir dans l’onglet avancé, sélectionner Impression par défaut, passer en mode paysage et Appliquer, revenir en mode portrait (si nécessaire). La configuration du pilote est terminée. La ‘registry’ de samba est à jour. La page de test peut être imprimée.
Installation du pilote sur les clients Cette installation est faite automatiquement par l’utilisateur lors de la première utilisation de l’imprimante.