Работа с несколькими хостами
ioBroker способен распределять задачи между несколькими серверами. Это позволяет распределить рабочую нагрузку между несколькими хостами.
В качестве альтернативы можно также использовать расширения для конкретных систем одноплатного компьютера (GPIO от Raspberry Pi, даже если «основной компьютер» - более мощный Intel NUC).
После настройки многохостовой системы все конфигурации выполняются централизованно администратором главного хоста. Администратор подчиненных хостов больше недоступен через их веб-интерфейсы.
Поэтому целесообразно использовать хост с минимальной установкой для подчиненного сервера, то есть только js-контроллером и админкой.
Базы данных размещаются на главном сервере. Каждый дополнительный хост подключает свой собственный контроллер JavaScript и его экземпляры, получая к ним доступ по сети.
Установка
Основная конфигурация
Выполните следующую команду на главном сервере:
Этот шаг абсолютно необходим, если используется база данных Redis. В других случаях его можно использовать, если автоматический метод (см. ниже) не сработал. В этом случае выберите f (файл) вместо r (redis)!
Пожалуйста, войдите через консоль:
iobroker setup custom
Заполните появившееся меню следующим образом.
Type of objects DB [(j)sonl, (f)ile, (r)edis, ...], default [jsonl]: j
Host / Unix Socket of objects DB(file), default[0.0.0.0]:
Port of objects DB(file), default[9001]:
Type of states DB [(j)sonl, (f)file, (r)edis, ...], default [jsonl]: r
Host / Unix Socket of states DB (redis), default[127.0.0.1]: 0.0.0.0
Port of states DB (redis), default[6379]:
Data directory (file), default[../../../iobroker-data/]: /opt/iobroker/iobroker-data/
Host name of this machine [ioBroker-RasPi]:
iobroker multihost enable
enter pass phrase
iobroker restart
Конфигурация подчиненного устройства
Этот шаг абсолютно необходим, если используется база данных Redis.
Пожалуйста, введите команду через консоль на подчиненном устройстве.
iobroker setup custom
Заполните появившееся меню следующим образом.
Type of objects DB [(j)sonl, (f)ile, (r)edis, ...], default [jsonl]: j
Host / Unix Socket of objects DB(file), default[127.0.0.1]: <MASTER-IP>
Port of objects DB(file), default[9001]:
Type of states DB [(j)sonl, (f)file, (r)edis, ...], default [jsonl]: r
Host / Unix Socket of states DB (redis), default[<MASTER-IP>]:
Port of states DB (redis), default[6379]:
Host name of this machine [raspi-sub-1]:
Наконец, появляется следующая информация:
creating conf/iobroker.json
iobroker multihost connect
и заполните следующие поля соответствующим образом:
1 | <MASTER-IP> | host | 192.168.86.42 | "authentication required"
Please select host [1]: 1
Enter secret phrase for connection: *****
Config ok. Please restart ioBroker: "iobroker restart"
iobroker restart
Вновь созданный хост также появится в списке хостов в основной системе.
Если этого не произойдет, перезагрузите оба хоста. Сначала главный, затем подчиненный.
Многохостовый режим с различными подсетями
Если оба хоста ioBroker находятся в разных подсетях, …
Пример:
- Стандартная локальная сеть (для ПК, планшета и т. д.) = 192.168.178.0/24
- IoT LAN (для Shelly, камер и т. д.) = 10.20.30.0/24
…автоматическая настройка многохостовой конфигурации («iobroker multihost enable» и «iobroker multihost browse») не работает, используется только старый метод (iobroker setup custom), см. выше.
Многохостовая конфигурация с Redis
Если планируется создание многохостовой среды, в которой состояния хранятся в Redis, необходимо учесть еще несколько моментов.
Файл redis.conf на хосте, где хранятся состояния, необходимо изменить следующим образом.
nano /etc/redis/redis.conf
Строку bind 127.0.0.1, содержащуюся в данном документе, необходимо дополнить IP-адресом сетевого адаптера, чтобы сервер Redis разрешил подключения извне.
Например,
bind 127.0.0.1 192.168.1.10
Предположим, что 192.168.1.10 - это локальный IP-адрес главного узла ioBroker.
Данная корректировка необходима только на главном сервере.
В качестве альтернативы вы также можете
bind 0.0.0.0
Начиная с версии Redis 7, также необходимо отключить защищенный режим. Для этого нужно изменить строку...
protected-mode yes
на
protected-mode no
изменять.
Наконец, перезапустите сервер Redis или компьютер. Например:
sudo service redis-server restart
Распределение задач
Существует два способа распределения задач между хостами.
- Если это новая установка, выберите хост, на котором следует установить экземпляр адаптера, из выпадающего меню над списком адаптеров на вкладке «Адаптер».
Затем добавьте экземпляр, нажав на значок (+) в правом столбце.
- Если на хосте уже установлено много сетевых адаптеров, вы можете изменить назначение уже установленных экземпляров на вкладке «Экземпляры».
Удалить хост
Чтобы удалить хост, активируйте экспертный режим на вкладке «Объекты» вкладки «Администрирование» и выберите «Хост» в столбце «Тип». Затем удалите нужный хост.
Возможные проблемы
Иногда появляется сообщение, похожее на следующее:
> ... bytes ... in strict mode
Затем отредактируйте файл, содержащий этот код, с помощью редактора nano. В самом начале находится строка 'use strict';; раскомментируйте её, добавив //, и сохраните файл.
> IP Address of the host is 127.0.0.1. It accepts no connections. Please change.
если вы еще не выполнили §§YYYYYY_0§§ в основной системе.