INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Зябликов Дмитрий | Senior ios developer | ЦРПТ

«Модуль ЭДО для 1С»

Полностью удаленный проект от прототипа до продакшна: - специфика законодательства - командная работа - интеграционные фишки (лайфхаки) Итог: довольный заказчик

Развертывание http-сервиса OneScript на Raspberry Pi

Администрирование - Системное

23
В статье описан процесс настройки, а также процесс развертывания http-сервиса (web-приложения) OneScript на Raspbian (Raspberry Pi 2).

Введение
Идея попробовать установить OneScript на устройство типа Raspberry Pi возникла у меня давно, однако сей эксперимент постоянно откладывался, ввиду различных обстоятельств. И вот, улучив момент, когда ребенок смотрел мультфильмы, я наконец-таки решил попробовать. О том, что из этого получилось - читайте ниже. 

Приборы и материалы
В качестве устройства, в экспериметах использовался Raspberry Pi 2.
В качестве операционной системы, на которую производилась установка, использовалась Raspbian OS. Само устройство, поддерживает достаточно большое количество операционных систем, среди которых есть и Ubuntu без графического интерфейса. Конечно, для практического использования - это более правильный вариант, однако, ввиду того, что экспериментальное устройство принадлежит ребенку, и количество времени, выделенное на эксперимент было ограничено, было принято решение использовать уже установленную ОС.
Поскольку Raspbian OS имеет в своей основе Debian, настройка системы мало отличается от настройки Ubuntu Server, описанной в соответствующей статье. Соответственно, моменты одинаковые для обеих ОС, подробно рассматриваться не будут. 

Настройка системы
Получаем доступ к командной строке
Как и в случае с Ubuntu Server, Вы можете подключиться к устройству при помощи клиента SSH, предварительно разрешив подключения в ОС, или запустить штатный LXTerminal из графической оболочки.

Обновляем список доступных пакетов и устанавливаем новые версии
В командной строке выполняем следующие команды:
 

sudo apt-get update
sudo apt-get upgrade


Устанавливаем mono
Сначала я попробовал установить mono из штатного репозитария, однако, как впоследствии выяснилось, версия mono в нем старая, и ядро OneScript завершало работу с ошибкой, поэтому необходимо подключить репозитарий mono-project.
Поиск в google выдал необходимую ссылку с инструкцией.
Обратите внимание, что ссылки для Raspberry отличаются от тех, которые используются для подключения репозитария x86.
Для подключения репозитария, в командной строке выполняем нижеследующие команды:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF 
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list 
sudo apt-get update && apt-get upgrade 

Для установки mono выполняем:
 

sudo apt-get install mono-complete

Установка web-сервера
Не смотря на то, что для Raspbian есть и apache и mod-mono, и вроде-бы все должно быть хорошо, гугл выдал некоторое количество публикаций, в которых говорится о проблемах с использованием mod-mono server на Raspberry. Поэтому было принято решение, использовать в качестве web-сервера XSP (к тому-же установка apache и mono-mod-server уже описана в другой статье). Это простой web-сервер, который как правило используется для разработки и отладки, однако, он может быть успешно применен и в продуктивных средах в связке с ngix. Поскольку время эксперимента, а также файловые ресурсы на SD-карте устройства были ограничены, я ограничился установкой только XSP.
Для установки XSP, в командной строке выполните следующую команду:
 

sudo apt-get install mono-xsp4

Развертывание приложения
В качестве приложения для развертывания было выбрано приложение, описанное в этой статье (//infostart.ru/public/792995/).
В папке /home/pi, была создана папка onescript, куда и было разархивировано содержимое архива приложения.
После распаковки, файл Web.config был переименован в _Web.config, а файл web.config.linux соответственно в web.config.

Запуск приложения
Поскольку web-сервер XSP не является службой (демоном), запуск web-сервера был произведен "вручную".
Для запуска, необходимо перейти в папку с web-приложением: 

cd /home/pi/onescript


и запустить web-сервер

xsp4


После старта, web-сервер сообщит нам информацию, необходимую для доступа к web-приложению

После ввода в браузере соответствующего url, мы увидим наше web-приложение.

Для автоматического старта XSP при старте ОС, необходимо внести небольшие изменения в загрузочные скрипты, однако в силу того, что я не тестировал эти настройки, эта тема выходит за рамки настоящей статьи.

Заключение 

OneScript, в частности http-сервисы, можно вполне успешно использовать на устройствах Raspberry Pi, версии >= 2. Это может быть полезно в тех случаях, когда использовать отдельный компьютер или виртуальную машину нецелесообразно (ну и в конце концов - просто интересно :)).

23

См. также

Комментарии
Сортировка: Древо
1. nomadon 279 23.04.18 14:05 Сейчас в теме
Хорошо что малинка начала на инфостарте появляться:)
Ждем появления апача с модулем so на домашнем роутере и реверс прокси на старый адроид (заголовок: "Когда заблокировали Azure, но в 1с очень нужно или как мы собрали кластер серверов из подручного железа")
nikita0832; +1 Ответить
2. Alsegan 24.04.18 22:35 Сейчас в теме
А никто не задавался вопросом,может ли быть профит от развертывания 1С на 30 соединенных малинках и будет ли это работать? А то знаю , что из нескольких машинок собирают минисупер компьютеры, но не знаю есть ли применение таким сборкам кроме как в математических вычислениях.
3. blackhole321 734 25.04.18 06:56 Сейчас в теме
(2) на счёт 1с -вряд ли. Я давным давно пытался развернуть 1С 8.3 файловую с использованием ExaGear (http://raspberrypi.ru/blog/644.html). Появлялся не то splash screen, не то окно логина и все намертво висло.
А так, можно делать штуки типа https://infostart.ru/public/669242/
5. UtrobinMV 14.05.18 13:06 Сейчас в теме
(2)
А никто не задавался вопросом,может ли быть профит от развертывания 1С на 30 соединенных малинках


Я думаю, если умножить стоимость серверной лицензии установленной на малинку на 30 раз, то "профита" точно никакого не будет! ;-)
6. olgerd666 49 14.05.18 13:38 Сейчас в теме
(5) а зачем ставить серверную лицензию 30 раз?
8. UtrobinMV 22.05.18 10:28 Сейчас в теме
(6)потому что 30 серверов (малинок)
9. olgerd666 49 22.05.18 10:34 Сейчас в теме
(8)я не совсем в теме - поэтому вопрос - а эта штукень в 30 штук разве не может работать параллельно (одна ОСь на 30 штук)? или точно есть необходимость на каждую малинку ставить свою ОСь?
10. UtrobinMV 23.05.18 18:41 Сейчас в теме
(9)Вопрос выходит за рамки данной конференции.
7. UtrobinMV 22.05.18 10:28 Сейчас в теме
Оставьте свое сообщение