Здравия всем! В этой статье я расскажу вам, как установить Home Assistant Supervised на одноплатный компьютер Orange Pi 3b, который работает на Armbian.
Содержание
Введение
В предыдущей статье я уже говорил, что наша система будет функционировать от маломощного генератора. Я уже всё подготовил, и теперь нам осталось только установить Home Assistant Supervised.
Подготовка
Чтож начнем нашу установку с подготовки. Зайдем через SSH на наш сервер и получим root права
su -
Конфигурирование AppArmor
Нам нужно установить сам AppArmor
apt install apparmor
Добавим информацию о AppArmor в загрузчик Armbian.
echo "extraargs=apparmor=1 security=apparmor systemd.unified_cgroup_hierarchy=false systemd.legacy_systemd_cgroup_controller=false" >> /boot/armbianEnv.txt
Обновим загрузчик Armbian.
update-initramfs -u
root@orangepi3b:~# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-6.1.75-vendor-rk35xx
W: Possible missing firmware /lib/firmware/regulatory.db for built-in driver cfg80211
W: Possible missing firmware /lib/firmware/regulatory.db.p7s for built-in driver cfg80211
update-initramfs: Armbian: Converting to u-boot format: /boot/uInitrd-6.1.75-vendor-rk35xx
Image Name: uInitrd
Created: Sun Sep 29 21:50:21 2024
Image Type: AArch64 Linux RAMDisk Image (gzip compressed)
Data Size: 8693662 Bytes = 8489.90 KiB = 8.29 MiB
Load Address: 00000000
Entry Point: 00000000
update-initramfs: Armbian: Symlinking /boot/uInitrd-6.1.75-vendor-rk35xx to /boot/uInitrd
'/boot/uInitrd' -> 'uInitrd-6.1.75-vendor-rk35xx'
update-initramfs: Armbian: done.
Перезагрузим наш мини-ПК
reboot
После перезагрузки, зайдем снова на наш сервер и проверим работу AppArmor
systemctl status apparmor.service
Также можно проверить командой
aa-status
root@orangepi3b:~# aa-status
apparmor module is loaded.
6 profiles are loaded.
6 profiles are in enforce mode.
/usr/bin/man
lsb_release
man_filter
man_groff
nvidia_modprobe
nvidia_modprobe//kmod
0 profiles are in complain mode.
0 profiles are in kill mode.
0 profiles are in unconfined mode.
0 processes have profiles defined.
0 processes are in enforce mode.
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.
0 processes are in mixed mode.
0 processes are in kill mode.
Установка необходимых компонентов
Перед установкой Home Assistant нужно установить необходимые компоненты. В противном случае процесс установки завершиться с ошибкой.
apt-get install jq wget curl udisks2 libglib2.0-bin network-manager dbus apparmor-utils systemd-journal-remote lsb-release systemd-resolved bluez cifs-utils nfs-common
Установка OS Agent
Прежде чем приступить к установке Home Assistant, нам необходимо скачать и установить Agent for Home Assistant OS. Этот пакет можно найти на GitHub. Давайте скачем его.
wget https://github.com/home-assistant/os-agent/releases/download/1.6.0/os-agent_1.6.0_linux_aarch64.deb
dpkg -i os-agent_1.6.0_linux_aarch64.deb
Установка Docker
Как известно Home Assistant Supervised работает на Docker. Давайте установим его.
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
root@orangepi3b:~# sh ./get-docker.sh
# Executing docker install script, commit: 39040d838e8bcc48c23a0cc4117475dd15189976
+ sh -c apt-get -qq update >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get -y -qq install ca-certificates curl >/dev/null
+ sh -c install -m 0755 -d /etc/apt/keyrings
+ sh -c curl -fsSL "https://download.docker.com/linux/debian/gpg" -o /etc/apt/keyrings/docker.asc
+ sh -c chmod a+r /etc/apt/keyrings/docker.asc
+ sh -c echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable" > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get -qq update >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get -y -qq install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin >/dev/null
+ sh -c docker version
Client: Docker Engine - Community
Version: 27.3.1
API version: 1.47
Go version: go1.22.7
Git commit: ce12230
Built: Fri Sep 20 11:41:19 2024
OS/Arch: linux/arm64
Context: default
Server: Docker Engine - Community
Engine:
Version: 27.3.1
API version: 1.47 (minimum version 1.24)
Go version: go1.22.7
Git commit: 41ca978
Built: Fri Sep 20 11:41:19 2024
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: 1.7.22
GitCommit: 7f7fdf5fed64eb6a7caf99b3e12efcf9d60e311c
runc:
Version: 1.1.14
GitCommit: v1.1.14-0-g2c9f560
docker-init:
Version: 0.19.0
GitCommit: de40ad0
================================================================================
To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:
dockerd-rootless-setuptool.sh install
Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.
To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/
WARNING: Access to the remote API on a privileged Docker daemon is equivalent
to root access on the host. Refer to the 'Docker daemon attack surface'
documentation for details: https://docs.docker.com/go/attack-surface/
================================================================================
Название ОС
Установщик Home Assistant Supervised поддерживает только Debian. Текущий дистрибутив хоть и основан на Debian 12, но в описании его стоит Armbian
lsb_release -a
root@orangepi3b:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Armbian_community 24.11.0-trunk.154 bookworm
Release: 12
Codename: bookworm
В разделе Description у нас явно показывает, что дистрибутив не Debian 12. Если это не исправить, то будет так:
root@orangepi3b:~# dpkg -i homeassistant-supervised.deb
Выбор ранее не выбранного пакета homeassistant-supervised.
(Чтение базы данных … на данный момент установлено 27062 файла и каталога.)
Подготовка к распаковке homeassistant-supervised.deb …
[warn]
[warn] If you want more control over your own system, run
[warn] Home Assistant as a VM or run Home Assistant Core
[warn] via a Docker container.
[warn]
[error] Armbian_community 24.11.0-trunk.154 bookworm is not supported!
dpkg: ошибка при обработке архива homeassistant-supervised.deb (--install):
подпроцесс из пакета homeassistant-supervised новый сценарий pre-installation возвратил код ошибки 1
[info] Undo divert on abort-install
Давайте внесем изменения в конфигурацию Armbian, для этого отредактируем файл /etc/os-release
mcedit /etc/os-release
И приведем его к следующему состоянию:
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.armbian.com"
SUPPORT_URL="https://forum.armbian.com"
BUG_REPORT_URL="https://www.armbian.com/bugs"
ARMBIAN_PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
Все наш дистрибутив для мастера установщика будет Debian 12.
Установка Home Assistant Supervised
Пришло время установить Home Assistant Supervised. Давайте сделаем это.
wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
dpkg -i homeassistant-supervised.deb
Выбор ранее не выбранного пакета homeassistant-supervised.
(Чтение базы данных … на данный момент установлено 27062 файла и каталога.)
Подготовка к распаковке homeassistant-supervised.deb …
[warn]
[warn] If you want more control over your own system, run
[warn] Home Assistant as a VM or run Home Assistant Core
[warn] via a Docker container.
[warn]
Настраивается пакет homeassistant-supervised (1.8.0) …
[info] Reload systemd
[info] Restarting NetworkManager
[info] Enable systemd-resolved
[info] Restarting systemd-resolved
[info] Set up systemd-journal-gatewayd socket file
[info] Enable systemd-journal-gatewayd
[info] Start nfs-utils.service
[info] Restarting docker service
PING checkonline.home-assistant.io (104.26.4.238) 56(84) bytes of data.
64 bytes from 104.26.4.238 (104.26.4.238): icmp_seq=1 ttl=56 time=38.7 ms
--- checkonline.home-assistant.io ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 38.654/38.654/38.654/0.000 ms
Не создаётся домашний каталог «/var/lib/nfs».
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-client.target → /lib/systemd/system/nfs-client.target.
Created symlink /etc/systemd/system/remote-fs.target.wants/nfs-client.target → /lib/systemd/system/nfs-client.target.
auth-rpcgss-module.service is a disabled or a static unit, not starting it.
nfs-idmapd.service is a disabled or a static unit, not starting it.
nfs-utils.service is a disabled or a static unit, not starting it.
proc-fs-nfsd.mount is a disabled or a static unit, not starting it.
rpc-gssd.service is a disabled or a static unit, not starting it.
rpc-statd-notify.service is a disabled or a static unit, not starting it.
rpc-statd.service is a disabled or a static unit, not starting it.
rpc-svcgssd.service is a disabled or a static unit, not starting it.
rpc_pipefs.target is a disabled or a static unit, not starting it.
var-lib-nfs-rpc_pipefs.mount is a disabled or a static unit, not starting it.
Настраивается пакет homeassistant-supervised (1.8.0) …
[info] Reload systemd
[info] Restarting NetworkManager
[info] Enable systemd-resolved
[info] Restarting systemd-resolved
[info] Set up systemd-journal-gatewayd socket file
[info] Enable systemd-journal-gatewayd
[info] Start nfs-utils.service
[info] Restarting docker service
PING checkonline.home-assistant.io (104.26.4.238) 56(84) bytes of data.
64 bytes from 104.26.4.238 (104.26.4.238): icmp_seq=1 ttl=56 time=38.7 ms
--- checkonline.home-assistant.io ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 38.654/38.654/38.654/0.000 ms
Ход выполнения: [ 95%] [#######################################################################################.....]
В процессе установки мастер, предложит выбрать нашу платформу. Для Orange Pi 3b нужно в списке выбрать похожую платформу, это raspberrypi4-64
После выбора платформы, продолжиться установка
[info] Install supervisor startup scripts
[info] Install AppArmor scripts
[info] Start Home Assistant Supervised
[info] Installing the 'ha' cli
[warn] Could not find /etc/default/grub or /boot/firmware/cmdline.txt failed to switch to cgroup v1
[info] Within a few minutes you will be able to reach Home Assistant at:
[info] http://homeassistant.local:8123 or using the IP address of your
[info] machine: http://192.168.1.106:8123
Обрабатываются триггеры для man-db (2.11.2-2) …
Обрабатываются триггеры для dbus (1.14.10-1~deb12u1) …
Обрабатываются триггеры для libc-bin (2.36-9+deb12u8) …
Процесс установки и скачивания всех докер контейнеров, нужных для работы не быстрый. Нужно открыть браузер по ссылке, которую написал установщик, у меня это: http://192.168.1.106:8123. В начале там будет страница браузера, говорящая, что сервер не найден. Надо ждать.
Через некоторое время появится заглушка от скрипта установки Home Assistant. Ждем дальше.
Через некоторое время, обычно 5-20 минут, в зависимости от скорости интернет соединения процесс установки завершиться. Мой экземпляр Orange Pi 3b справился за 7 минут.
Заключение
На этом установка Home Assistant Supervised на одноплатный компьютер Orange Pi 3b с операционной системой Armbian закончена. Как видно, установка не намного сложнее, чем установка на Х64 компьютер. Производительности данного одноплатного компьютер хватает на комфортную работу Home Assistant.