Установка и настройка сервера удаленных рабочих столов под управлением Linux Ubuntu server 14.04 по протоколу xRDP Доброго времени суток! В этой статье я хочу детально описать как установить и настроить сервер удаленных рабочих столов под управлением Linux Ubuntu server 14.04
Каждое решение имеет свои слабые и сильные стороны. Потому и данное решение не лишено их.
Начнем с описания проблемы. Кто собственно уже решил для чего нужен данный сервер, тот может пропустить данный раздел.
Сервер удаленных рабочих столов (его еще называют терминальным сервером) служит для совместной и централизованной работы группы пользователей в одном или нескольких приложениях. В моем случае это были базы 1С: 8.2 (8.3) Бухгалтерия, ЗУП, Склад. Собственно не особо важно, какая конфигурация. Ранее я пользовался, как и большинство моих коллег Windows Server начиная от 2003 до 2008, а также сторонними платными программами , например ViTerminal.
Далее расскажу о том что мы получим в результате и о плюсах и минусах данного сервера, по сравнению с вышеперечисленными решениями.
Ну начнем с минусов.
- самым главным минусом, на мой взгляд, является то, что данный сервер не пробрасывает принтеры. Хотя в локальной сети эта проблема, собственно и не проблема, но для работы через интернет, данное решение приходиться сочетать с вэб-сервером.
- Вторым минусом, главным образом для работадателя, является что не каждый специалист, может работать с Linux системами.
- Третий минус. Дело в том что работа 1С в Linux не поддерживает COM объекты.
Теперь о плюсах.
- Работа Linux несравнимо более стабильна и устойчива. У меня частенько «моргает» свет и просто его отключают, зачастую это происходит в нерабочее время. Хотя и сервера автоматом выключаются, но бывает , что напряжение нештатное и тогда сервер не успевает выключиться. На файловых серверах Linux Ubuntu, я и вовсе, последние несколько лет не ставлю, бесперебойники. За все время а это с 2008 года из всех серверах под управление Linux Ubuntu начиная с версии 10.04 , до сегодняшнего момента у меня не было неодного сбоя или выхода из строя серверов по вине ОС , железо горело, но Linux – никогда! А вот с Windows , было… особенно файловые системы…. Если бы не резервные копии по ночам, то самый страшный позор сисадмина – потеря базы данных, не обошел бы меня.
- Существенная экономия на компьютерном «железе». Под управлением Linux Ubuntu мой старый сервер ожил снова. До этого на нем стоял Windows Server 2003 64x /CPU xeon 3430 2.4 x 4 / 8M ОЗУ . База 8.2 была около 3.5 ГБт и вторая 1 ГБт. Одновременно работало до 7 пользователей. Это был мрак. Оборотка формировалась около 3 минут ну т.д.
Покупка нового железа, требовала еще и покупки новой ОС и терминальных лицензий в общем смета за 150 000 рублей. Старая ОС не могла адресовать более 8 ГБт памяти.
На Linux Ubuntu все заработало и оборотка на том же железе формировалась 5-8 секунд.
- Как следствие быстродействие на том же «железе» существенно быстрее.
- Ну и деньги… все бесплатно! Ни тебе серверной лицензии ни терминальных по пять штук, расширяй, подключай, хоть на «ушах ходи».
Итак, собственно сама установка. Ссылка на дистрибутив:
http://releases.ubuntu.com/14.04/ubuntu-14.04.5-server-amd64.isoНе буду описывать процесс установки, скажу только что выбрал из списка установленного ПО
- OpenSSH server
- Print server
- Samba file server
После установки традиционно:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mc
sudo reboot
Далее нам будет нужна графическая оболочка. Статья которую я брал за основу:
https://github.com/neutrinolabs/xrdp/wiki/Building-on-Debian-8написана под Debian с оболочкой Gnome. Gnome Shell – мне не понравилась, да и пользователи будут несколько удивлены увидев, некое подобие смартфона. В итоге я остановился на Cinnamon. Потому как она сделана на основе Gnome и она проста и понятна пользователю. Можно добавить еще LXDE , но она не у всех работает.
Можно поставить обе оболочки, с LXDE проще устанавливаются принтеры.
Добавляем репозиторий:
sudo add-apt-repository ppa:embrosyn/cinnamon
обновляем списки:
sudo apt-get update
и устанавливаем графическую оболочку.
sudo apt-get install cinnamon
sudo apt-get install xinit
sudo reboot
Установка LXDE
sudo apt-get install xubuntu-desktop
sudo reboot
Запустится графическая оболочка.
Теперь наш будущий сервер готов к установки пакетов необходимых для нормальной работы xRDP
-Устанавливаем зависимости:
sudo apt-get install git autoconf libtool pkg-config gcc g++ make libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev git
Создание каталога для загрузки и хранения дистрибутива.
mkdir –p ~/xrdp-xorg
переходим в этот каталог
cd ~/xrdp-xorg
BD=’pwd’
cd “${BD}”
И клонируем репозиторий в данный католог:
git clone git://github.com/neutrinolabs/xrdp
переходим в каталог xrdp
cd xrdp
теперь нам надо осуществить сборку xrdp c кодеком rfxcodec:
git submodule init
git submodule update
cd librfxcodec
./bootstrap
./configure
make
cd ..
./bootstrap
./configure --enable-fuse --enable-rfxcodec --disable-ipv6
make
Производим установку xRDP
sudo make install
sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin
И добавляем в автозагрузку при старте.
sudo update-rc.d xrdp defaults
Теперь необходимо скачать xorg-xrdp:
wget https://github.com/neutrinolabs/xorgxrdp/releases/download/v0.2.0/xorgxrdp-0.2.0.tar.gz
переходим в каталог с архивом
cd /root/xrdp-xorg/xrdp
и распаковываем архив:
tar xvfz xorgxrdp-0.2.0.tar.gz
переходим в папку с распакованными файлами:
cd /root/xrdp-xorg/xrdp/xorgxrdp-0.2.0
Проблема раскладки клавиатуры решается «жестким» привязыванием.
kb_model="pc105"
kb_layout="us,ru"
kb_options="grp:ctrl_shift_toggle" - для раскладки ctrl + shift
kb_options="grp:alt_shift_toggle" - для раскладки alt + shift
Ну как все поняли, нужно выбрать что то одно )
Меняем исходный код, предварительно посмотрев, что вы все же в каталоге с разархивированными файлами.
cd /root/xrdp-xorg/xrdp/xorgxrdp-0.2.0
sed -ri.bak "s/(set.model)[^;]+/\1 = \"$kb_model\"/;s/(set.layout)[^;]+/\1 = \"$kb_layout\"/;s/(set.options)[^;]+/\1 = \"$kb_options\"/" xrdpkeyb/rdpKeyboard.c
в этом же каталоге собираем и ставим
./bootstrap
./configure
make
sudo make install
теперь перезагружаем сервер.
sudo reboot
Можно подключаться с компьютера под управление windows.
Для более комфортной работы на клиентской машине выставить в подключении удаленных рабочих столов – экран-глубина цвета 16 бит.
Еще одна проблема, с которой сталкивается пользователь это то что при подключении к удаленному рабочему столу Ubuntu раскладка на клавиатуре должна быть английской, я решаю эту проблему сохранением логина и пароля пользователя.
Установка 1С на Linux
- Скачать с сайта 1Cuser 2 архива. Сервер 64бит и Клиент 64бит для Deb пакетов
- Распаковать все в отдельные папки.
- Зайти в эти папки и установить пакеты dpkg *.deb. Начиная с серверного пакета.
Для удобства путешествия по папкам рекомендую Mcommader, запускается командой:
mc
Установка зависимостей, кому необходимо, зависит от версии платформы 1С:
apt-get install –f
У меня не все платформы завелись. Советую не использовать самую последнюю.
В основном все платформы нормально заводиться, но процентов 20 все же не запускаются, не тратьте время просто скачайте на одну версию более раннюю.
Установка шрифтов:
apt-get install msttcorefonts
Проверяем. Должно ругнуться на отсутствие лицензий.
Устанавливаем драйвер HASP. Для этого нужно включить 32 битность
dpkg --add-architecture i386
sudo apt-get update
Скачиваем драйвер отсюда.
http://download.etersoft.ru/pub/Etersoft/HASP/last/Ubuntu/14.04/переходим в папку и устанавливаем.
sudo dpkg –I *.deb
Проверяем. Перезапускаем службу
sudo service haspd restart
Все заработало.
Рекомендую отключить блокировку экрана. У меня пользователи не знают букв и потому я её отключил.
1С запустилось. Выключаем. Создаем или добавляем базу.
Добавляем принтеры в локальной сети.
Не буду описывать этот процесс, он не отличается от установки принтеров на обычную машину. Скажу только что войдя под Cinnamon потребовалась правка ручками, а пот LXDE просто тыкаем на принтер и все работает. Из терминала надо раз 5 набрать свой пароль.
Добавляем пользователей
adduser buchgalter
и т.д.
пароль и т.д. снимаем блокировку экрана. Назначаем пользователю принтер по умолчанию. Тут почему то у многих вопрос: «Как назначить каждому пользователю свой принтер по умолчанию?»
Отвечаю: В списке принтеров только один принтер «по умолчанию», он обозначен зелененькой галочкой. Если принтер данного пользователя отличен от него, но нужно нажать правой кнопкой мыши на нужном принтере и выбрать пункт: «Set As Default» , в выпадающим меню выбрать; «Set As My personal default printer».
Теперь данный принтер будет использоваться «по умолчанию» только для данного пользователя и над ним появиться значок с сердечком.
Далее есть еще одна проблема в 1С. При попытки второго пользователя войти в базу, вылезет блокировка файлов.
ОШИБКА РЕЖИМА ДОСТУПА У ФАЙЛУ БАЗЫ ДАННЫХ ….путь
Например, база данных находиться в папке /BASE/1C/buch
Решается данная проблема достаточно просто.
В терминале.
sudo apt-get install bindfs
далее переходим к редактированию файла /etc/fstab. Редактируем внимательно!
Добавляем в конце файла строку или если несколько баз то несколько строк, желательно по одному.
bindfs#/BASE/1C/buch /BASE/1C/buch fuse perms=0777 0 0
баз может быть несколько.
При желании можно указать пользователей на через запятую
bindfs#/BASE/1C/buch /BASE/1C/buch fuse=0777,mirror-only=buchgalter:buchgalter2:admin 0 0
cохраняем, перезагружаем.
Заходить можно по имени, если кому надо по статичному IP, то правим настройки сетевой платы.
Кому надо чтобы работало через интернет, то ставим апач
apt-get install apache2
Заходим в конфигуратор 1С и публикуем базу, не забыв выбрать версию apache 2.4 и путь до базы без кириллицы.
В ходе установки может ругнуться на зависимости.
apt-get –f install
Да, делать, как я скажу
И потом установить и перезапустить службу HASP или перезагрузить.
Установить набор библиотек для корректной работы Апач.
sudo apt-get install imagemagick
Вот вроде бы и все. У меня все стабильно работает уже несколько месяцев.