I) Présentation du serveur
d’impression
1) Objectif
Le but de cette installation est de configurer un poste
Linux qui puisse gérer les impressions de postes Windows NT. De cette
façon, tous les postes Windows NT du réseau (appelés clients)
imprimeront par l’intermédiaire d’un seul ordinateur Linux (appelé
serveur). Ce dernier se chargera de gérer les flux de d’impression afin
de les déployer sur les imprimantes réseaux voulues.
Pour ce faire je vais utiliser la dernière version
du logiciel Samba : 2.2.0. Il permet de gérer les partages entre les
environnements Unix et Windows. « Les partages » permettent aux
postes Windows d’accéder aux répertoires des ordinateurs Unix
ou Linux.
La dernière version de Samba a pour nouvelle fonctionnalité
de permettre un partage de ses imprimantes avec gestion des drivers. En effet,
on peut installer les pilotes d’impressions sur le serveur Linux. Ces derniers
seront automatiquement téléchargés par le client Windows
lors de la mise en place de son imprimante. Ainsi, il n’y aura plus besoin de
chercher le driver lors de l’installation, celui ci se mettra en place automatiquement.
L’ajout d’un tel serveur simplifie la vie des administrateurs
du réseau. En effet, comme les pilotes se mettent en place automatiquement,
les utilisateurs du réseau peuvent installer eux même les imprimantes.
Ainsi, les risques d’erreurs dues à l’opérateur sont maîtrisés.
2) Intérêt de la solution Samba plutôt
que d’un serveur d’impression Windows NT
Le serveur d’impression des postes Windows est habituellement
Windows NT Serveur mais cette solution n’est pas apparue la plus satisfaisante.
On distingue plusieurs motivations à l’utilisation de samba plutôt
que NT Serveur :
- Samba est gratuit alors que Windows NT Serveur nécessite une licence.
- Linux est plus stable que Windows NT.
- Simplification de la migration vers Windows 2000.
Nous allons donc procéder à l’installation
du système d’exploitation linux Red-Hat 7.0 sur lequel sera mis en Samba
2.2.0.
II)
Mise en place du serveur Samba 2.2.0
1)
Installation de Red-Hat 7.0
La distribution de Linux que nous choisissons est la Red-Hat
version 7.0.
Pour l’installation, nous prenons les partitions suivantes
:
- / : 600 Mo
- Linux swap : 100 % de la RAM
- /export : 100 Mo. C’est une partition qui partagera certains
fichiers de samba.
- /usr/local : 100 Mo. C’est dans cette partition que samba
s’installe par défaut.
- /var : reste de la mémoire. Cette partition doit
être la plus vaste possible. C’est dans celle ci que les fichiers en
attente d’impression seront stockés.
Nous choisissons également les options d’installations
suivantes :
Installation sans aucun serveur : Le seul serveur qui nous
intéresse Samba 2.2.0 or il n’est pas disponible dans la version 7.0
de Red-Hat.
Environnement graphique X-Window : sera utile pour l’installation
des imprimantes.
Support d’impression : permettra d’installer plus facilement
les différentes imprimantes.
Station de travail réseau : contient les outils nécessaires
pour installer, maintenir l’interaction avec les autres postes du réseau.
L’installation du réseau est intégrée
dans l’installation de Linux et ne présente pas de problèmes particuliers.
Cependant, si le poste Linux ne peut que « pinger » sur les adresses
IP des autres postes du réseau, il faut rajouter dans le fichier «
/etc/resolv.conf » la ligne « domain ZONE » où ZONE
est la zone du DNS.
Pour la suite du rapport, nous utiliserons « slinux
» comme nom du poste Linux.
2) Installation des packages de compilation de Samba
Pour l’installation de samba 2.2.0 il faut tout d’abord
installer les packages de compilation. La compilation permettra de créer
Samba à partir des fichiers sources qui sont inclus dans samba-lastest.tar.gz
.
Ces packages sont :
- binutils-2.10.0.18-1.i386.rpm
- cpp-2.96-54.i386.rpm
- kernel-headers-2.4.0-0.26.i386.rpm
- glibc-devel-2.1.92-14.i389.rpm
- gcc-2.96-54.i386.rpm
- make-3.79.1-5.i386.rpm
- libstdc++-devel-2.96-54.i386.rpm
- gcc-c++-2.96-54.i386.rpm
NB : Il est important d’installer ces packages dans
l’ordre établi ci dessus. Dans le cas contraire, on se heurte à
des problèmes d’interdépendances entre packages.
Rappel : Pour accéder au lecteur de CD-ROM,
il faut taper la commande « mount /mnt/cdrom ». Pour libérer
le lecteur une fois que l’installation est faite, il suffit de faire «
umount /mnt/cdrom ».
3)
Compilation et installation de Samba
Tout d’abord, il faut décompresser le fichier «
samba-lastest.tar.gz » par la commande
« tar –zxvf ./samba-lastest.tar.gz ». Dès
lors, nous avons à notre disposition les sources, les documentations
et des exemples dans le répertoire ./samba-2.2.0.
Il faut maintenant créer le fichier « Makefile
». Pour cela il faut lancer « ./configure » depuis le répertoire
« ./samba-2.2.0/source ».
On compile le Makefile par la commande «make».
On termine l’installation de samba par la commande « make install ».
Le système est désormais prêt mais avant
d’utiliser Samba, nous allons installer les imprimantes sur le serveur.
III)
Installation des imprimantes sur le serveur et sur les clients
1) Installation des imprimantes sur le serveur Linux
Pour que les postes clients puissent imprimer, il faut
qu’auparavant le serveur puisse faire de même. Dans le monde Unix, dont
Linux fait partie, les fichiers qui doivent être imprimés sont
stockés dans une file d’attente appelée « queue d’impression
». Cette dernière est en fait un répertoire dans lequel
on peut trouver les fichiers de configuration de l’imprimante. Ces queues sont
par défaut situées dans le répertoire « /var/spool/lpd
».
De même, le fichier « /etc/printcap »
regroupe l’ensemble des imprimantes présentes sur le serveur. S’il arrive
une erreur, il faut donc en premier lieu éditer ce fichier. En outre,
le programme qui s’occupe des impressions s’appelle « lpd ». A chaque
changement du fichier printcap, donc lors de l’ajout ou de la suppression d’une
imprimante, « lpd » doit être relancé.
Remarque : Pour une imprimante donnée, si
on veut mettre un commentaire, il faut que le contenu du fichier soit ainsi
:
«
Nom_imprimante | commentaire:\
: sd=/var/spool/lpd/Nom_imprimante :\
etc …
»
NB : Il ne faut pas oublier de donner les droits
en écriture pour tout le monde sur les queues d’impressions. En effet,
par défaut seul les administrateurs ont ces droits . Si les utilisateurs
du domaine ne peuvent pas écrire dans les queues d’impression alors ils
ne peuvent pas y mettre le fichier qu’ils veulent imprimer.
Pour installer une imprimante sur un poste Linux je me suis
penché sur 2 méthodes :
- Printtool : nécessite l’interface graphique et
se fait en local.
- Hpwebjetadmin : l’installation se fait par le réseau.
2) Printtool
Printtool est un programme installé lors de la mise
en place de Linux si on a choisit
l’option « Support d’impression ». Pour lancer
l’interface graphique, il suffit de faire « startx ». Dès
lors, on accède à l’interface graphique en faisant « CTRL+ALT+F7
». On ouvre alors une fenêtre d’émulation de terminal dans
laquelle on lance la commande « printtool ».
Dans la fenêtre, on clique sur
« Add » et on sélectionne la case « Remote unix (lpd)
queue ». Dans la nouvelle interface il faut remplir les champs de cette
façon :
Name : Nom_imprimante
Spool directory : /var/spool/lpd/Nom_imprimante
File limit in kb (0 = no limit) : 0
Remote local host : adresse IP de l’imprimante
concernée
Remote queue : (vide)
Input filter : driver voulu. Le driver
s’obtient en cliquant sur « Select ». On choisit alors les paramètres
adaptés à l’imprimante.
Une fois revenu à la fenêtre initiale, on doit
faire « restart lpd » dans le menu « lpd ».
Il faut alors tester l’impression en lançant la commande
: « lpr –PNom_imprimante /etc/printcap ». Si des problèmes
persistent, il est préférable de redémarrer l’ordinateur
ou de se servir de la commande « lpstat ».
3) Hpwebjetadmin
Hpwebjetadmin est un logiciel de gestion des imprimantes
réseaux. C’est en fait un
Serveur web qui tourne sur le serveur d’impression. Il
est accessible depuis n’importe quel poste client pourvu d’un navigateur web
(Internet Explorer, Netscape, etc …).
Hpwebjetadmin est disponible sur le
site « http://www.hp.com ». Le fichier d’installation est hpwebjet_linux.selfx.
Il faut le rendre exécutable donc il faut taper la commande : «
chmod +x hpwebjet_linux.selfx ». Dès lors, on lance «
./hpwebjet_linux.selfx ». L’installation est très simple et il
suffit de garder les valeurs par défaut que nous conseille le programme
d’installation.
Une fois l’installation terminée,
il faut lancer un navigateur de n’importe quel poste du réseau (y compris
le serveur) pour atteindre l’adresse « http :slinux :8000 » (8000
étant le numéro de port choisi pendant l’installation de hpwebjetadmin).
A la page de présentation on doit cliquer « Continue » puis
« Continue ». Il faut cocher ensuite la case pour ne plus revoir
réapparaître ces pages de présentations. On entre dès
lors dans le panneau de control de hpwebjetadmin.
Si les imprimantes du réseau n’apparaissent
pas il faut alors les ajouter une par une en cliquant sur « Add device
». Il suffit dans ce cas d’entrer l’adresse IP de l’imprimante pour qu’elle
soit détectée. On remarque qu’avec ce logiciel il est très
aisé de gérer l’ensemble des imprimantes d’un réseau. Nous
allons maintenant installer une imprimante.
Tout d’abord, il faut double cliquer sur
l’imprimante qui nous intéresse. Dans le bandeau supérieur il
faut cliquer sur « Install ». On entre alors automatiquement dans
la fenêtre « Create queue ». On remarque qu’il n’y a aucun
« Print Server » donc on sélectionne la case du dessous et
on entre le nom du serveur : slinux. On clique « Next ».
La page qui apparaît demande le
nom du « Device ». On entre alors le nom réseau de l’imprimante.
La page suivante permet de choisir le driver en fonction du constructeur et
du type de l’imprimante. Il faut également donner un nom à la
queue d’impression. pour quitter la page, il faut cliquer sur « Create
». Hpwebjetadmin demande alors une authentification : il faut s’identifier
comme root. A la fin de l’installation vous avez la possibilité d’imprimer
une page de test. Si celle ci ne s’imprime pas, il faut lancer la commande «
lpr –PNom_imprimante /etc/printcap » où Nom_imprimante est le nom
que l’on a donné à la queue d’impression. Si la manipulation ne
marche pas, il faut relancer le démon « lpd ». Cependant,
il vaut mieux pour cela redémarrer le serveur.
4)
Gestion des problèmes d’impression
Pour surveiller les imprimantes du réseau, on peut
utiliser depuis le serveur la
commande « lpstat ». Celle ci nous renseigne
sur l’état des imprimantes.
Lorsqu’il apparaît des problèmes avec les
impressions (fichiers à supprimer,
imprimante en panne), la commande « lpc » est
providentielle. Une fois lancée, en tapant « ? », on obtient
les paramètres du programme. On peut dès lors :
- Activer ou désactiver une queue d’impression
- Modifier l’ordre des travaux
- Déplacer, rediriger les impressions vers une nouvelle
queue
- Etc…
IV) Utilisation et configuration du serveur Samba
1) Démarrer, arrêter, lancer Samba en mode démon
Le serveur Samba se décompose en deux démons.
Ces derniers sont des programmes
qui travaillent en fond de tache. Pour lancer ces deux
processus, on peut soit choisir entre plusieurs solutions :
Lancer à la main : Pour cela, il faut taper les
lignes de commandes suivantes : « /usr/local/samba/bin/nmbd –D »
et « /usr/local/samba/bin/smbd –D ».
Lancer au démarrage de la machine : Dans le répertoire
«/etc/rc3.d» il faut rajouter les liens suivants par les commandes
:
« ln –s /usr/local/samba/bin/nmbd S33nmbd »
« ln –s /usr/local/samba/bin/nmbd S33smbd »
Le répertoire rc3.d a été choisi car,
lorsque l’on démarre, on se situe en run level 3. Le run level se change
dans « /etc/inittab ». La valeur 33 veut dire
que Samba sera le 33e processus démarré.
Lancer un script à la main ou au
démarrage. Ce script est donné en annexe.
2) Configurer Samba : Paramétrer le fichier smb.conf
Les paramètres de Samba se situent dans le fichier
« /usr/local/samba/lib/smb.conf ».
Il est très bien commenté et possède
une entrée dans le manuel (man). Ce fichier se trouve dans le répertoire
« samba-2.2.0/packaging/RedHat ».
Comme nous l’avons expliqué auparavant,
Samba permet de partager des répertoires du monde Unix aux autres plates-formes.
Pour cela, il faut d’abord configurer le fichier smb.conf de façon à
ce qu’il convienne au réseau. Bien que le fichier smb.conf se situe en
annexe, nous allons le détailler ici.
Tout d’abord, il faut noter que tous
les noms de partage (nom par lequel le client verra le répertoire du
serveur) sont entre [].On appelle également ces noms de partages des
sections. Les paramètres d’un partage commencent au nom de la section
et se terminent au libellé de la suivante.
Ligne de commande dans smb.conf
|
Commentaire
|
[global]
|
Cette section définit les paramètres par défaut des
autres partages
|
workgroup = TST
|
C’est le nom du domaine dans lequel se trouve notre serveur.
|
browseable = yes
|
Permet au partage d’être « butinable » c’est à
dire d’être vu de l’extérieur.
|
server string = Serveur d’impression Samba %v
|
Chaîne de commentaire qui sera visible depuis les explorateurs de
Windows. %v affiche la version courante de Samba (2.2.0).
|
hosts allow = 159.217.217.0/255.255.255.0
|
Adresse du réseau à laquelle on accepte de répondre.
|
Printcap name = /etc/ printcap
|
Chemin du fichier qui gère les imprimantes
|
load printers = yes
|
Les imprimantes sont définies dans le fichier printcap
|
Print command = lpr –P%p %s ; rm %s
|
Commande que le serveur va lancer pour imprimer le fichier %s. On récupère
l’imprimante choisie par %p. On efface le fichier de la queue d’impression
par rm %s.
|
printing = lprng
|
Option conseillée par la documentation de Samba
|
printer admin = root, @drivers
|
Administrateur d’impression : liste des personnes pouvant installer les
drivers des imprimantes sur le serveur.
|
Show add printer wizard = no
|
N’affiche pas l’icône « Ajout d’imprimante »
|
log file = /var/log/smba/log.%m
|
Donne le chemin des traces de Samba. Tout les évènements
seront écrits dans des fichiers log.%m où %m correspond
au nom de la machine cliente.
|
max log file = 50
|
Nombre de ligne maximum d’un fichier trace.
|
security = server
|
Option conseillée par Samba
|
Password server = pdc
|
Nom de l’ordinateur qui gère les mots de passe du réseau.
|
[Imprimante 1]
|
Partage de l’imprimante 1
|
Comment = Imprimante rez de chaussée
|
Commentaire vu par l’explorateur Windows.
|
Path = /var/spool/ lpd/imprimante1
|
Chemin du répertoire qui est partagé. Le nom d’un répertoire
n’a rien à voir avec le nom du partage
|
broweable = yes.
|
La section est accessible depuis l’explorateur
|
printable = yes
|
Nécessaire
|
writable = no
|
On n'a pas le droit d’écrire dans ce partage
|
create mask = 0777
|
Détermine les droits donnés lorsque l’on crée un
fichier ou un répertoire.
|
[print$]
|
Nouveauté de la version 2.2 de Samba.
|
path = /usr/local/samba/drivers
|
Indique où vont se trouver les drivers
|
public = yes
|
Les invités du domaine peuvent accéder au partage.
|
broweable = yes
|
Nécessaire
|
writable = yes.
|
Permet d ‘écrire les drivers
|
Create mask = 0777
|
Détermine les droits d’accès donnés lorsque l’on
crée un fichier ou un répertoire.
|
La configuration du fichier smb.conf peut
être vérifiée par le programme « testparm ».
Il est possible de ne créer qu’un
partage pour toutes les imprimantes au lieu de différencier comme dans
l’exemple ci dessus. En effet, dans ce dernier on voit que le partage «
Imprimante 1 » pointe sur « /var/spool/lpd/imprimante1 » qui
est une queue d’impression. On aurait pu créer un partage « Imprimante
» pointant sur « /var/spool/lpd » et toutes les queues d’impression
auraient été disponibles. Il est préférable de séparer
les imprimantes pour permetre une meilleure administration vis à vis
des droits d’accès.
Remarque :On voit que le champs « add printer
wizard = no ». Ce paramètre permet d’afficher ou non sur
le partage des imprimantes du serveur l’icône « Ajout d’imprimantes
». Cependant, l’installation des drivers et des imprimantes par ce chemin
ne fonctionne pas. En effet, cette fonctionnalité nécessite la
présence d’un autre paramètre : « add printer command ».
Ce dernier prend pour valeur un exécutable qui n’existe pas encore sous
Samba.
3) Le partage
[print$]
Ce partage correspond au répertoire où seront
stockés les drivers des imprimantes. Ce nom de section est codé
en dur dans Samba et il correspond à une entrée dans la base de
registre Windows. Ce partage doit pointer sur un répertoire possédant
les répertoires suivants :
W32ALPHA
W32MIPS
W32PPC
WIN40
W32X86
C’est dans ce dernier répertoire que seront stockés
les pilotes. Il est important que les utilisateurs définis comme «
printer admin » dans smb.conf puissent écrire dans ce répertoire.
En effet, seuls les administrateurs d’impression ne doivent pouvoir mettre en
place les drivers sur le serveur.
V)
Installation des imprimantes sur les postes clients
1) Postes
Windows NT
Pour installer l’imprimante, il faut tout d’abord mettre
en place les pilotes sur le serveur. Pour cela, il faut qu’un utilisateur qui
possède les droits d’installations sur un poste NT se logue sur le domaine.
Ensuite, par l’explorateur Windows, il doit aller dans le répertoire
« imprimantes » du serveur d’impression en se connectant en tant
qu’administrateur d’impression. Dès lors, l’opérateur doit faire
un clique droit sur l’imprimante et choisir « Propriétés».
Les avertissements qui apparaissent alors sont normaux.
On entre alors dans la fenêtre de configuration
de l’imprimante. On voit que le pilote est « NO DRIVER AVAILABLE FOR THIS
PRINTER ». On clique sur « Nouveau pilote », puis sur «
Oui », et on choisit le constructeur ainsi que le type de l’imprimante.
Une fois le choix terminé, on clique sur « OK » et le transfert
des drivers depuis le client vers le serveur Linux commence.
Dès lors, n’importe quel opérateur du réseau
peut installer l’imprimante. Il suffit qu’il fasse sur son ordinateur NT «
Menu Démarrer » puis « Paramètres », «
Imprimantes ». Il doit alors cliquer sur « Ajout d’imprimante ».
L’utilisateur n’a d’autre choix que de prendre l’installation par serveur d’impression
et de cliquer sur « Suivant ». Il doit ensuite choisir l’imprimante
qu’il veut installer et faire « OK ». L’utilisateur décide
alors si oui ou non il veut que l’imprimante en question soit son imprimante
par défaut. Le message comme quoi l’imprimante a été installée
avec succès apparaît.
2) Postes
Windows 98
La notion d’installation de postes Windows
98 n’est pas utile pour le site d’Alstom T&D de St Priest. Cependant, elle
sert à d’autres établissements comme celui de Villeurbanne.
L’installation des drivers sur le serveur se fait en 3
étapes.
Tout d’abord, il faut créer un
partage qui contiendra les drivers. On peut procéder comme suit :
« [printer$]
path=/usr/local/samba/printer
public=yes
writable=no
browseable=yes
»
Dès lors, il faut repérer
les fichiers du pilote qui doivent être copiés dans ce partage.
Pour cela, il faut récupérer le fichier msprint.inf ou msprint2.inf
situé dans le répertoire « c:\windows\inf ». On doit
ensuite placer ce fichier dans le répertoire « /usr/local/samba/lib
» du serveur. De là, il faut lancer la commande :
« make_printerdef msprint.inf "Apple LaserWriter" >>
printers.def » où Apple Laser Writer est le nom de notre imprimante
dans le fichier msprint.inf. La commande make_printerdef crée donc un
fichier printers.def qui contient les informations nécessaires au bon
fonctionnement du driver. Cette commande affiche également une liste
de fichier. Ces derniers doivent être copiés dans le partage créé
lors de la première étape.
La troisième étape consiste à
modifier le fichier « smb.conf ». Il faut rajouter la ligne :
« printer driver file=/usr/local/samba/lib/printers.def
» dans la section [global]. On indique ainsi à Samba la liste des
fichiers nécessaires au driver. On doit également rajouter les
lignes suivantes dans le partage de chaque imprimante :
« printer driver=Apple LaserWriter
printer driver location=\\%h\PRINTER$
» où %h est une variable remplaçant le nom du serveur et
PRINTER$ correspond au nom du partage créé lors de la première
étape.
Dès lors, n’importe quel opérateur peut installer
l’imprimante. Il suffit qu’il fasse « Menu Démarrer » puis
« Paramètres », « Imprimantes ». Il faut alors
cliquer sur « Ajout d’imprimante ». L’utilisateur doit alors choisir
« imprimante réseau » et cliquer sur « Suivant ».
Dans la fenêtre suivante, dans l’arborescence, l’opérateur doit
choisir le serveur d’impression ainsi que l’imprimante puis cliquer sur «
Suivant ». Il peut ensuite choisir le nom qu’il veut donner à l’imprimante
et cliquer sur « Suivant ». On lui propose alors d’effectuer une
page de test. L’opérateur fait son choix et clique sur « Suivant
». Dès lors, il arrive à une fenêtre lui indiquant
que tout s’est passé avec succès. Il clique sur « Terminer
».
L’imprimante est donc installée sur le poste client
sans que l’opérateur n’ait eut à se soucier du choix du driver.
Remarque : Le serveur d’impression Samba ainsi
installé est multi-plateformes. En effet, Il peut fournir automatiquement
pour une même imprimante des drivers Windows NT ou Windows 98. L’opérateur
n’a pas besoin de connaître son système d’exploitation ni le type
de l’imprimante.
VI) CONCLUSION
Le seul point négatif est ma déception quant
à la documentation de Samba. En effet, la partie concernant le serveur
d’impression n’est pas très détaillée et certaines rubriques
intéressantes sont inexistantes à la fois dans la documentation
officielle et sur Internet. J’attendais plus d’informations sur l’utilisation
de la commande « add printer ». Je pense cependant que ce manque
sera vite comblé.