воскресенье, 27 марта 2016 г.

VNC plugin перестал работать в remmina

Исходные данные: 
Xubuntu 14.04 (64 разряда)

Вдруг после обновления (или еще чего-то) remmina до 1.2.0-rcgit.11 перестал устанавливаться протокол VNC. Запуск в терминале показал отсутствие libvncclient.so.0.... Ну и в репозитариях его нет... Выкинули! - Или потеряли... Нашел альтернативную веточку у Видеолановцев.

add-apt-repository ppa:videolan/master-daily
apt-get update

Переинасталить libvncserver, потом появится libvncclient0, его и поставить делал уже synaptic-ом, команд не привожу. Вопрос в remmina-team задан, будем посмотреть...

И дополнение от 5 сентября 2016 (немножко по памяти, могут быть неточности).


  Вдруг (после обновления) опять "все поломалось". Долгий разбор с логами показал что скачать libvncserver0 с видеолановского ppa не удается, причем давно. Скачался какой-то другой, похоже что с mc3man. В то же время в родном ubuntu-вском пакете есть и искомый клиент (похоже что всегда был, я его не заметил в свое время). Понижаем версию. Легче всего synaptic-ом. Водим в строке поиска libvnc и получаем список, вверху которого "наш" libvncserver0, выделяем его и в меню "Пакет" - выбрать версию, выбираем "родного" 0.9.9+dfsg-1ubuntu1.1. Соглашаемся с предупреждением и выполняем изменения. Реммину нужно перезапустить.

понедельник, 21 марта 2016 г.

LTSP FAT-клиент в качестве принт-сервера.

Исходные данные: 
Xubuntu 14.04 server (64 разряда в качестве сервера и полторы сотни бездисковых клиентов, все грузятся с одного образа, 32-разряда, все работают как "толстые" клиенты). Ну и штук сто принтеров и МФУ примерно десяти видов, которые таскают туда-сюда.

  В своем исходном виде поддержка печати в LTSP как-то не радует. Хотелось сразу нормальный cups на каждом рабочем месте, по возможности не зависящий от прочих, с конфигом, привязанным к "железу", а не к пользователю. Обязательным условием ставилась возможность легкого изменения конфига без пересборки образа. Делалось это все пару лет назад, и получилось, что уже сам боюсь позабыть как устроено.

Идея такова. 

  На этапе загрузки каждый клиент запускает скриптик, который проверяет наличие первичного файла конфигурации printers.conf.ИМЯ_КЛИЕНТА. Понятно, что если есть - устанавливает его в качестве /etc/cups/printers.conf и запускает свой cupsd. В этом файле описаны только локально подключенные принтеры, один из которых мы объявляем дефолтовым (это не обязательно, но выглядит вполне разумным). Все необходимые компоненты установлены в образ.

Подробности.

/var/lib/tftpboot/ltsp/i386/lts.conf содержит
[Default]
NFS_HOME=/home
NBD_SWAP=True
SERVER=10.0.0.4
SYSLOG_HOST=10.0.0.4
SOUND=True
LDM_SESSION=startxfce4
LDM_THEME="okgvv2"
KEEP_SYSTEM_SERVICES="cups x11vnc"
MODULE_01="pcspkr"
RCFILE_01="/opt/local/rc.cups"
RCFILE_02="/opt/local/rc.sshd"
CUPS_SERVER=localhost
LOCAL_APPS_EXTRAMOUNTS="/srv"
  Синим цветом выделены параметры, имеющие значение. Самый первый указывает на применение старой доброй nfs вместо новой и модной sshfs. Тому есть отдельная причина (bug #730587 в реализации gnome-keyring). Если удастся уйти от nfs (грандиозная дыра в безопасности и проигрывает в скорости), нужно будет сделать дополнительную шару и монтировать ее отдельно, причем до того, как начнет выполняться rc.cups, возможно проще всего прям в нем и сделать. Это такое "письмо в будущее". Остальное все просто и понятно (cups не останавливать, скрипт запускать первым, за услугами печать добро пожаловать к себе же).
Сам скрипт /opt/ltsp/i386/opt/local/rc.cups
#! /bin/bash

## for ALL
/sbin/stop cups
echo "Common part" | logger
mount | logger
chmod a+rwx /etc/cups

## Individully
PREFIX=`hostname -s`
TARGET=/home/storage/prn/cfg
PPD=/home/storage/prn/ppd

echo "Individual part" | logger
# printers.conf & ppds
    if [ -f ${TARGET}/printers.conf.${PREFIX} ]; then
        cp -f ${TARGET}/printers.conf.${PREFIX} /etc/cups/printers.conf
    fi
    cp -f ${PPD}/*.ppd /etc/cups/ppd/

/sbin/start cups

Примеры файлов.

/etc/storage/prn/printers.conf.ts-inf-6
# inf dept
<Printer inf-6-color>
#UUID urn:uuid:1d740c0b-1812-3dee-55c8-7c9c204d8a24
Info Epson RX500
Location Информационный отдел
MakeModel Epson Stylus Photo RX500 - CUPS+Gutenprint v5.2.8
DeviceURI usb://EPSON/Stylus%20Photo%20RX500?serial=L68030504200649440
State Idle
StateTime 1341994615
Type 8425484
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy abort-job
</Printer>
<DefaultPrinter inf-6>
UUID urn:uuid:ecebc571-c4ca-3b2c-4033-eb9f1ef0aded
Info Hewlett-Packard HP LaserJet M1005
Location ts-inf-6
MakeModel HP LaserJet M1005 MFP Foomatic/foo2xqx (recommended)
DeviceURI hp:/usb/HP_LaserJet_M1005?serial=KJ1MWB9
PPDTimeStamp *
State Idle
StateTime 1457599900
Type 8425492
Accepting Yes
Shared Yes
ColorManaged Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy retry-job
</Printer>
 Файл /home/storage/prn/ppd/inf-6-color.ppd - симлинк на /home/storage/prn/ppd/Epson_RX500.ppd. Файл /home/storage/prn/ppd/inf-6.ppd ссылается на /home/storage/prn/ppd/HP1005MFP.ppd. Таким образом там живет коллекция ppd-шек, иногда пополняемая, и куча ссылок на них.

Немного про hplip.

  Для последующего нормального функционирования (hplip) достаточно один раз установить какой-либо сетевой аппарат примерно таким способом.


ltsp-chroot -m
hp-setup -i
exit
ltsp-update-image

Способы создания printers.conf.*

  Самый простой из известных, - просто подключить принтер к "нормальному" т.е. дисковому хосту, настроить все параметры и скопировать получившийся фрагмент в файл "по месту требования".
  При замене принтера на такой же достаточно "подсмотреть" серийный номер (страница диагностики или lsusb) и исправить.
  Если принтер уже подключен к бездисковому терминалу можно пойти несколько длинным, но вполне употребимым путем. Сначала новый принтер нужно сконфигурировать обычным способом, как это делается на дисковых хостах (лучше зайти по ssh и удаленно запустить firefox), проверить. Способ организации административного доступа указан в документации LTSP. Если ничего не делать, то созданная конфигурация будет жить ровно до перезагрузки. А вот если зайти по ssh и "утянуть" нужный кусок printers.conf, то можно и принтер и филейную часть админа никуда не перемещать.

Что в итоге (надо себя похвалить).

  В итоге из 130 принтеров абсолютное большинство подключено к бездисковым терминалам. Поведение от прочих не отличается (чуть притормаживают что не удивительно, процессоры там дохлые). При установке или переносе (замене) принтера заметных усилий не прикладывется. Обычно принтер подключается, заводится через web-интерфейс cups и тут же вводится в работу. Тем временем получившийся printers.conf становится заготовкой (тихо утягивается по ssh). Вечером все выключается, а утром уже стартует штатная конфигурация. Пользователь усилий этих никак не замечает. Редкий случай, когда и самому понравилось!

вторник, 15 марта 2016 г.

Про про-курву (ProCurve Switch 2650)

Немного практических советов. Свичи конфигурились очень давно  и многое позабылось. Записки на всякий случай (тамошние хелпы как-то шероховаты, а уж доки мутны дальше некуда...).

Как зайти

telnet (имя + пароль)

Как прочитать таблицу MAC-адресов на определенном порту

show mac-address покажет братской могилой. 
show mac-address ethernet 42 - на 42 порту
show mac-address 001fc6-c115c6 - покажет на каком порту.

show ? вполне информативен...