Self-hosted services. Установка FuguHub (он же BarracudaDrive)
Итак, начнем с установки BarracudaDrive (теперь FuguHub) на (в моем случае) MyBookLiveDuo
. В принципе, все очень неплохо описано на самом сайте, но, все-таки, продублирую информацию, возможно, с небольшими уточнениями и пояснениями, потому что всегда бывают, мягко говоря, нюансы.
Ну вот простой пример: в инструкции написано, что ПО предназначено только для MyBookLive
, и не подходит для других продуктов линейки MyBook
, таких, как, например, MyBook World Edition
. Сразу же возникает вопрос: а что же MyBookLiveDuo
? После некоторых раздумий я предположил, что MyBookLiveDuo
и MyBookLive
- суть одно и тоже. Хотя, конечно, сомнения были, так как первый (Duo
) оснащен двумя дисками, которые могут быть использованы в разных режимах. Но, я рискнул - и не прогадал. Итак, небольшой обзор действий, которые мне пришлось выполнить, чтобы установить BarracudaDrive
на MyBookLiveDuo
(для FuguHub
делается ровно тоже самое).
Для начала, необходимо обеспечить доступ к MyBookLiveDuo
через SSH
. К счастью, сделать это можно без каких-либо сложных манипуляций, при помощи специальной странички web-интерфейса устройства, находящейся по адресу http://mybookliveduo/UI/ssh
. Обычно, использование имени mybookliveduo
не вызывает проблем. Если же оно не воспринимается, придется использовать IP адрес устройства. На появившейся страничке надо будет включить галку Доступ SSH
Следует помнить, что, возможно, предварительно придется залогиниться на вашем устройстве, если вы устанавливали пароль для пользователя admin
. Процесс подключения SSH
и связанные с ним вопросы безопасности я попытался подробно описать тут, но пока не будем спешить с подсоединением по SSH
, прежде произведем несколько манипуляций с нашим устройством с помощью его web интерфейса.
И первое, что сделаем - отключим автообновление программного обеспечения устройства, если оно, конечно, включено. Для этого из бокового меню выберем пункт Настройки
и на закладке Система
раскроем группу Обновления
- именно там находится галка Автоматическое обновление
, которую нам и надо выключить.
Для чего это нужно? Ответу на этот вопрос можно посвятить целый пост, пока же ограничимся следующим заявлением: BarracudaDrive
(FuguHub
) меняет некоторые системные настройки, чтобы лучше интегрироваться в систему, и если, без предварительных манипуляций по откату этих изменений, установить новую версию ПО, то можно получить целый букет проблем. То есть, учтите: после установки BarracudaDrive
(FuguHub
) просто так обновить программное обеспечение устройства не получится, придется выполнять строго определенную процедуру. К счастью, она совершенно не сложная, я обязательно расскажу, как и что надо будет сделать.
После отключения автообновления надо в ручном режиме убедиться в том, что у нас установлена самая свежая версия ПО. Сделать это тоже совсем не сложно: в той же группе Обновления
, в которой мы отключали галку Автоматическое обновление
, надо нажать на кнопку Проверить обновления
.
Скорее всего, ничего не произойдет, особенно, если раньше у вас было включено автообновление. Но сделать это надо, хотя бы для очистки совести. Если же все-таки новая версия ПО, каким-то чудом, будет найдена, вам придется немного повременить с установкой BarracudaDrive
(FuguHub
) и заняться обновлением. Это не сложно и не очень долго.
Следующим шагом создадим специального пользователя, из под которого будет работать BarracudaDrive
(FuguHub
). Делается это тоже при помощи web интерфейса MyBookLive(Duo).
В документации BarracudaDrive
(FuguHub
) специально оговаривается, что для нового пользователя необходимо использовать имя bd
. Должен признаться, что, несмотря на все свое (природное) любопытство, я ни разу не попробовал задать пользователю какое-нибудь другое имя, хотя, в общей сложности, устанавливал BarracudaDrive
(FuguHub
) раз десять. Могу лишь предположить, что в скрипте установки 'зашито' имя пользователя bd
, поэтому, если вы все же рискнете и решите указать другое имя, скорее всего, установить ПО не получится. (Следует особо отметить, что при создании пользователя я не задаю для него пароль, и если честно, не знаю, что будет, если вдруг пароль задать).
Помимо самого пользователя необходимо создать еще и каталог, который будет использоваться для установки, запуска и, собственно, самой работы FuguHub
. Сделать это можно одновременно с созданием пользователя, или позже, воспользовавшись соответствующим разделом пользовательского интерфейса (только учтите, в последнем случае назвать создаваемый каталог нужно будет так же, как и пользователя, то есть bd
).
Итак, все необходимые действия выполнены: мы организовали доступ к устройству по SSH
, убедились в том, что на NAS установлена последняя версия ПО от производителя (имеется в виду WD), создали нужного пользователя и каталог. Теперь можно приступить непосредственно к установке.
Для этого необходимо войти на наше устройство по протоколу SSH
при помощи какого-нибудь клиента - тут я абсолютно не оригинален, и при работе с устройств под управлением Windows использую Putty, а из-под Android - JuiceSSH. Если вы ничего не меняли, то при соединении надо будет указать в качестве имени пользователя root
, а в качестве пароля welc0me
(учтите, что это цифра 0
). После коннекта к нашему серверу, просто следуем указаниям по установке, а именно, выполняем следующую команду:
wget FuguHub.com/releases/mybook/install.sh;chmod +x install.sh;./install.sh
Команда эта, на самом деле, есть конкатенация трех команд:
- первая (
wget
) загружает с сайтаFuguHub
скрипт установки - вторая (
chmod
) разрешает выполнение этого скрипта - третья (
./install.sh
), собственно, и запускает скрипт установки.
Если все сделано правильно (а ошибиться довольно сложно, ну, если только допустить какую-нибудь опечатку), то совсем скоро FuguHub
(он же BarracudaDrive
) будет установлен на вашем устройстве. После этого останется произвести первичную настройку сервера и - можно использовать его на полную катушку. Но прежде, я хочу рассказать о некоторых особенностях, которые есть у FuguHub
(а до этого, естественно, были у BarracudaDrive
). И первое, что вызывает большой интерес - взаимодействие с пользовательским интерфейсом устройств, на которые производится установка.
Сценарий установки FuguHub
, предназначенный для исполнения на WD MyBookLive
(и на MyBookLiveDuo
), написан с целью обеспечить интеграцию нового устанавливаемого софта и программного обеспечения, предустановленного на устройства производителем. Поясню, что это означает в контексте устройств от Western Digital.
Для управления устройствами производитель предоставляет специализированное web приложение. Это приложение исполняется web сервером Apache
, поставляемым, что называется, из коробки (напомню, что на устройствах установлен Debian Lenny
). И приложение это написано таким образом, что слушает и принимает запросы (только) по 80
-му порту. Точка. Есть утверждение, что изменить это нельзя.
Казалось бы, и что с того? Но тут надо вспомнить, что FuguHub
тоже web приложение. И оно тоже слушает обращения, что не удивительно, по портам 80
и 443
. Ясно, что два приложения не смогут просто так взять и разделить один порт (80
), надо как-то выкручиваться. И разработчики FuguHub
нашли и предложили решение. На мой взгляд - немного странное, но, тем не менее. Что же именно они сделали?
У web сервера Apache
имеется возможность настраивать доступ к web приложениям через определенные сетевые интерфейсы. Этим и воспользовались разработчики FuguHub
- в сценарии установки они реконфигурируют сервер Apache
таким образом, чтобы он "слушал" только loopback
интерфейс, то есть, отлавливал обращения от localhost
. Сам FuguHub
, при этом, работает с сетевым адаптером устройства. Кроме того,FuguHub
умеет выступать в роли reverse proxy
, и в его поставке для MyBookLive
имеется специальное приложение, которое разрешает использование reverse proxy
для доступа к изначальному web интерфейсу устройства (перенаправляет запросы на localhost
).
Именно из-за этого решения, перед установкой FuguHub
, если помните, и отключается автообновление программного обеспечения MyBookLive(Duo)
. И, уже имея на устройстве установленный сервер, необходимо строго следовать определенной процедуре ручного обновления стандартного ПО - перед ним и после него надо выполнить специальные скрипты, разработанные и предоставленные авторами FuguHub
. Дело в том, что если этого не делать, то после (стандартного) обновления устройства можно получить недоступную коробочку с жесткими дисками. К счастью, выполнить скрипты совсем не сложно, главное - не забыть это сделать. Итак (как и обещал), обновление ПО MyBookLive(Duo)
, если на устройстве ранее был установлен FuguHub
, выглядит следующим образом:
- коннектимся по
SSH
к устройству - выполняем команду
Эта команда загрузит скрипт (wget FuguHub.com/releases/mybook/disable.sh;chmod +x disable.sh;./disable.sh
disable.sh
), разрешит его выполнение и запустит. Скрипт не будет удалятьFuguHub
, он просто восстановит стандартные настройкиApache
и отключит автоматический запускFuguHub
при старте системы. - дожидаемся завершения процесса, завершаем
SSH
сеанс и обновляем (вручную) ПО устройства (Настройки
, закладкаСистема
, группаОбновления
, кнопкаПроверить обновления
) - после завершения обновления и перезагрузки устройства вновь коннектимся по
SSH
- выполняем команду
Эта команда загрузит скрипт (wget FuguHub.com/releases/mybook/enable.sh;chmod +x enable.sh;./enable.sh
enable.sh
), разрешит его выполнение и запустит. Скрипт вновь изменит настройкиApache
(тем же образом, что и при начальной установке), ну и сконфигурирует автоматический запускFuguHub
. - дожидаемся завершения процесса, завершаем
SSH
сеанс. Обновление завершено.
Теперь - пара ложечек дегтя. Во-первых, работа с web интерфейсом устройства, когда запросы проходят через reverse proxy
FuguHub
, не очень стабильна - я, скажем так, не раз сталкивался с ошибкой невозможности доступа к 127.0.0.1/UI
. Может, причина в моей криворукости, но - факт остается фактом. И, во-вторых, один из скриптов, а именно тот, который надо выполнять после ручного обновления (enable.sh
), написан (или, по-крайней мере, был написан) не совсем корректно - он пытался скопировать несуществующий файл (bdd.sh
) из каталога программы в каталог /etc/init.d
. Ошибку легко исправить, причина же, по которой возникла эта ситуация, мне не совсем понятна, хотя, не исключаю, что, может, это я сам чего-нибудь такого натворил своими шаловливыми ручками.
Эта парочка неувязочек, а так же некоторые другие (более весомые) факторы, привели меня, в конце концов, к отказу от такой схемы интеграции FuguHub
с "родным" web интерфейсом. Но это уже совсем другая история...