Запуск сервера терминалов для приложений 1С на NAS Synology
Совсем недавно к нам в руки попал сетевой накопитель DS412+ от фирмы Synology. Если верить словам с сайта изготовителя, то он разработан для малого и среднего бизнеса, где требуется высокая производительность, удобство управления и полнофункциональное решение сетевого хранения для централизации резервирования данных, защиты критически важной информации и обмена файлами между различными платформами. Наш заказчик был заинтересован в использовании его не только в качестве накопителя (для хранения БД 1С), но и в роли сервера терминалов для работы с платформой 1С. Под катом вы найдете непосредственно сам процесс адаптации DS412+.
Начнем с краткого описания характеристик устройства, полные вы можете найти тут:
- Тактовая частота ЦП — 2.13 Ггц (Двухядерный)
- Оперативная память RAM — DDR3 1 ГБ
- Тип и количество HDD — 4 диска 3,5” SATA(II) или 4 диска 2,5” SATA/SSD
- Тип и количество сетевых портов — 2 порта Gigabit
Нам повезло, что на 412м стоит ЦП Atom и его архитектура позволила использовать pre-compliled пакеты 1С для платформы i386, хотя на том же DS213j стоит уже MARVELL Armada 370, на который, к сожалению, готовых решений нет. Для сборки пакетов мы использовали виртуальную машину, запущенную на рабочем ПК. Итак, приступим.
1. Устанавливаем минимальный дистрибутив Debian на виртуальную машину;
2. Устанавливаем на эту систему debootstrap (из репозитория);
apt-get install debootstrap
3. Подготавливаем debootstrap для запуска на другой системе. Т.к. DS412+ под i386, указываем архитектуру. Ставим его в папку ~/deboo:
debootstrap --foreign --arch i386 wheezy deboo
Копируем свои репозитории в подготовленный образ:
cp /etc/apt/sources.list ~/deboo/etc/apt/sources.list
И запаковываем в tarball-файл, чтобы было удобней переносить:
tar xvzpf synodebian.tar.gz
4. После инициализации DiskStation включаем ftp-сервер, через веб-интерфейс добавляем общую папку «share».
Переносим подготовленный на третьем этапе tarball-файл с системой (debootstrap) в эту папку;
5. Чтобы потом не собирать на слабеньком DS’е — сразу на виртуальной машине собираем пакеты XRDP:
apt-get install git
git clone https://github.com/scarygliders/X11RDP-o-Matic.git
cd X11RDP-o-Matic
./X11rdp-o-matic.sh –justdoit
Собираться будет долго, по окончанию забираем готовые пакеты из ./X11RDP-o-Matic/packages, помещаем в ту-же общую папку share на DS’е. Туда же копируем служебный скрипт из ./X11RDP-o-Matic/RDPsesconfig.sh. Виртуальная машина более не понадобится, ее можно выключать.
6. Подключаемся к DS по SSH. Система монтирует раздел в папку «/volume1», переходим в нее, в подпапку share (которая расшарена по ftp). Распаковываем созданный tarball-файл в /volume1/deboo;
7. Переносим настройки DNS и имя сервера:
hostname > /volume1/deboo/etc/hostname
cp /etc/resolv.conf /volume1/deboo/etc/
8. Распаковываем все пакеты:
chroot /volume1/deboo /debootstrap/debootstrap --second-stage
9. Делаем скрипты для монтирования/размонтирования системных папок, разрешаем их запуск:
~/deboo-mount.sh:
/bin/mount -o bind /dev /volume1/deboo/dev
/bin/mount -o bind /proc /volume1/deboo/proc
/bin/mount -o bind /dev/pts /volume1/deboo/dev/pts
/bin/mount -o bind /sys /volume1/deboo/sys
/bin/mount -o bind /mnt/share /volume1/deboo/share
~/deboo-umount.sh:
/bin/umount /volume1/deboo/proc
/bin/umount /volume1/deboo/dev/pts
/bin/umount /volume1/deboo/dev
/bin/umount /volume1/deboo/sys
/bin/umount /volume1/deboo/share
10. Монтируем системные папки, и запускаем уже полноценный debian:
sh ~/deboo-mount
chroot /volume1/deboo /bin/bash
11. Все, теперь началась полноценная работа с debian в баше. Подготавливаем работу с репозиториями и обновляем пакеты:
apt-get update && apt-get upgrade
12. Устанавливаем вероятно самую лёгкую графическую оболочку (иксы так-же устанавливаются при разрешении зависимостей):
apt-get install --no-install-recommends lxde
13. Устанавливаем пакеты XRDP, собранные на пятом этапе:
cd /volume1/share/packages
dpkg -i *.deb && apt-get install -f
14. Добавляем пользователей в систему, которые будут подключаться к серверу терминалов, запускаем скрипт RDPsesconfig.sh, полученный на этапе 5, который сгенерирует им нужные конфигурационные файлы;
15. Запускаем XRDP:
/etc/init.d/xrdp start
Теперь можно подключаться к серверу терминалов.
16. Скачиваем отсюда пакеты клиента и сервера для DEB-based систем. Распаковываем их в одну папку и устанавливаем:
dpkg -i *.deb && apt-get -f install
17. Для платформы нужны дополнительные пакеты шрифтов и imagemagick, ставим их:
apt-get install ttf-mscorefonts-installer imagemagick
Дело сделано! Осталась рутина. В ту-же общую папку помещаем файловую базу 1С (уже распакованную демонстрационную версию Управление Торговлей). Подключаемся по RDP на сервер под своим пользователем, запускается оболочка, добавляем ярлык для запуска 1С Предприятия на рабочий стол, запускаем. 1С предлагает вам добавить базу. Добавляем существующую, указываем на общую папку, в которую была помещена база. Подключаемся в режиме предприятия, выбираем пользователя.
И еще пару слов напоследок, несмотря на то, что сервер терминалов запустить все таки удалось, считаем использование данной конфигурации для решения поставленной задачи нецелесообразным, в силу дороговизны и сложности в подготовке программной составляющей.