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



В статье описан процесс настройки, а также процесс развертывания 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. Это может быть полезно в тех случаях, когда использовать отдельный компьютер или виртуальную машину нецелесообразно (ну и в конце концов — просто интересно :)).

10 Comments

  1. nomadon

    Хорошо что малинка начала на инфостарте появляться:)

    Ждем появления апача с модулем so на домашнем роутере и реверс прокси на старый адроид (заголовок: «Когда заблокировали Azure, но в 1с очень нужно или как мы собрали кластер серверов из подручного железа»)

    Reply
  2. Alsegan

    А никто не задавался вопросом,может ли быть профит от развертывания 1С на 30 соединенных малинках и будет ли это работать? А то знаю , что из нескольких машинок собирают минисупер компьютеры, но не знаю есть ли применение таким сборкам кроме как в математических вычислениях.

    Reply
  3. blackhole321

    (2) на счёт 1с -вряд ли. Я давным давно пытался развернуть 1С 8.3 файловую с использованием ExaGear (http://raspberrypi.ru/blog/644.html). Появлялся не то splash screen, не то окно логина и все намертво висло.

    А так, можно делать штуки типа https://infostart.ru/public/669242/

    Reply
  4. UtrobinMV

    (2)

    А никто не задавался вопросом,может ли быть профит от развертывания 1С на 30 соединенных малинках

    Я думаю, если умножить стоимость серверной лицензии установленной на малинку на 30 раз, то «профита» точно никакого не будет! 😉

    Reply
  5. olegmedvedev

    (5) а зачем ставить серверную лицензию 30 раз?

    Reply
  6. UtrobinMV

    (6)потому что 30 серверов (малинок)

    Reply
  7. UtrobinMV

    ок

    Reply
  8. olegmedvedev

    (8)я не совсем в теме — поэтому вопрос — а эта штукень в 30 штук разве не может работать параллельно (одна ОСь на 30 штук)? или точно есть необходимость на каждую малинку ставить свою ОСь?

    Reply
  9. UtrobinMV

    (9)Вопрос выходит за рамки данной конференции.

    Reply
  10. Voblhned

    мне было интересно на Расбери фаловую базу залить самопись, и веб к ней. Там чисто 3 клиента и объем мизерный, серв в таком случае ставить или комп нецелесообразно, а закинуть базу размером 15мб и кинуть ее на роутер просто идеальный вариант.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *