3 сент. 2009 г.

Linux. Samba. Cups. Тонкие клиенты. Расшаривание принтеров

Возникла задача подключения терминальных пользователей с тонких клиентов на географически удалённый сервер с обеспечением печати на принтер в локальной с тонкими клиентами сети. Тонкие - Hp Compaq T5125 и T5135.
У T5125 с прошивкой Windows CE проблем не возникло:

  1. В настройках тонкого добавляется принтер, установленный на Windows-машине.

  2. В настройках RDP-сессии указывается использование установленного принтера.

  3. В настройках пользователя на терминальном сервере (Windows 2003) разрешается использование принтера пользователя в его сессии.


С Linux-тонкими возникли сложности. Пришлось поднять на Samba-сервере Cups и завести настроенные в нем принтеры через Samba. Инструкций по настройке Cups и Samba - океан и маленькая лужица. Единственное, с чем мне пришлось столкнуться, так это с непониманием того, как Samba получает список принтеров и как ей указать на расшаривание определенного принтера вместо полного списка. Нашел-таки в одном из мануалов по настройке Red Hat разъяснение. Samba получает список из файла /etc/printcap, генерируемого CUPS-ом при добавлении принтеров (естественно, всё это перенастраивается и файл может быть в другом месте, вообще не файлом, и не от CUPS-а). Фомрат этого файла и методы работы с ним подробно описаны в инете.
Далее. Samba ищет в своем конфигурационном файле раздел с параметром printer, который она рассматривает, как описание расшариваемого принтера. Параметр printer должен содержать имя или псевдоним одного из принтеров в списке /etc/printcap. Если этот раздел существует, в списке ресурсов Samba (ессно, если разрешено) отображается новый ресурс с именем раздела и описанием из параметра comment. Если же такого раздела в smb.conf не найдено, но присутствует раздел [printers], то последний дублируется для каждой записи в /etc/printcap, применяя для каждого принтера общие параметры. Ну, а на "нет" - и суда нет :).
Кусок моего smb.conf, относящийся к принтерам имеет теперь следующий вид:

load printers = no # Отключаем загрузку полного списка установленных принтеров, если нам нужны шары только некоторых.
printing = cups # Печать вдется через установленный CUPS
printcap name = cups

[HPLJ1320]
comment = HP Laser Jet 1320
printable = yes
path = /var/spool/samba
public= yes
guest ok= yes
printer admin= root
printer = HPLJ1320 #Это и есть имя принтера из /etc/printcap, который расшаривается
browseable = yes # Выводить ли принтер в списке ресурсов сервера.

Особых разъяснений, думаю, не требуется.
В такой конфигурации принтера подхватываются и Windows-, и Linux-десктопами, и тонкими клиентами. Единственное, что стоит дополнительно настроить, - это расшаривание пакета драйверов для разных операционок с самого Samba-сервера. Но мне это пока не нужно, а процедура описана в сети достаточно подробно.

После настройки печати через Samba осталось настроить Linux-тонкие. В обеих моделях были добавлены Samba-принтера. Сервер = [ip], Принтер = [имя ресурса принтера на Samba-сервере], login и pass - в соответствии с требованиями - на момент тестирования это может быть guest/guest. Так же необходимо выставить флаг Translate, значение которого я пока не понял. Ну, и в настройках RDP-сессии разрешить использование этого принтера.

В процессе настройки столкнулся с собственной ошибкой, когда тонкие клиенты получают IP от DHCP в подсети, отличной от подсети Samba-сервера. При этом, естественно, принтер не находится и печать на него идет в пустоту. После добавления тонкому адреса в нужной подсети печать пошла.

Комментариев нет:

Отправить комментарий