Automatický start LXC a Home Assistant na routeru Turris Omnia

Jak jsem si tak s novým routerem hrál, zjistil jsem, že po každém restartu routeru musím opět zapínat kontejner a následně spouštět Home Assistant přes terminál. To je hodně zbytečná práce, tak se jí pojďme vyhnout. Celý automatický start Home Assistant probíhá ve dvou krocích. Nejprve se musí spustit LXC kontejner a následně již Home Assistant.

Pokud Vás zajímá, jak Home Assistant na router nainstalovat, popisuji to v předchozím článku Jak nainstalovat Home Assistant Core na router Turris Omnia.

Automatické spuštění LXC kontejneru po restartu routeru

Automatický start LXC kontejneru nelze nastavit a administračním prostředí routeru. Musíme se připojit pomocí SSH v terminálu. Automatický start se nastavuje v souboru „/etc/config/lxc-auto“

Tento soubor již existuje a obsahuje zakomentovanou vzorovou konfiguraci. Tu můžeme buď upravit (pokud chcete zažít opravdové peklo, zkuste editor vi, napsáním „vi /etc/config/lxc-auto“), nebo prostě jen přidejte řádky do stávajícího souboru pomocí příkazu cat. Pojďme na to, krok po kroku.

Jak ovládat editor vi

Pro aktivování funkcí editoru vi stiskneme klávesu „ESC“, tím se nám dole v editoru zobrazí příkazový řádek, do kterého můžeme psát. Zadáváme příkaz, který potřebujeme a nakonec stiskneme ENTER.

Vyhledávání

/allow_anonymous hledá následující výskyt řetězce „allow_anonymous“
?allow_anonymous hledá předchozí výskyt řetězce „allow_anonymous“
n (next) opakuje poslední hledání
N (Next) opakuje poslední hledání směrem zpět

:wq uložení změn a ukončení editoru
:q! zkončení editoru bez uložení změn

  1. Spusťte příkazový řádek a připojte se přes ssh k IP adrese routeru. Pokud používáte výchozí IP adresu, zadejte.
ssh root@192.168.1.1
  1. Zadejte heslo do administrace LuCI
  2. Zkontrolujte, zda jste opravdu root@turris:~# a zadejte následující příkaz. Část „HomeAssistant“ v mém příkladu, je název LXC kontejneru. Pokud jste zvolili jiný název, např. Hassio, nezapomeňte příkaz upravit.
cat <<EOF >> /etc/config/lxc-auto
config container
        option name HomeAssistant
        option timeout 60
EOF
Název LXC kontejneru

Automatické spuštění Home Assistant

Automatické spouštění Home Assistant nám zařídí linuxová služba systemd. Následujícím postupem vytvoříme soubor s šablonou, která automatické spuštění provede.

  1. Zůstáváme v terminálu a příkazem lxc-attach -n nazev_kontejneru připojíme LXC kontejner. Pokud jste kontejner pojmenovali „HomeAssistant“, stejně jako já, použijete příkaz
lxc-attach -n HomeAssistant

Ujistíme se, že jsme v terminálu jako „root@homeassistant:~#“

  1. Zkopírujeme všechny následující řádky do terminálu a stiskneme enter. Tím vytvoříme soubor, jehož obsah začíná 2. řádkem kopírovaného textu (kódu) a končí předposledním řádkem.
cat <<EOF >> /etc/systemd/system/home-assistant@homeassistant.service
[Unit]
Description=Home Assistant
After=network.target

[Service]
Type=simple
User=homeassistant
ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"

[Install]
WantedBy=multi-user.target
EOF
  1. Načteme novou konfiguraci systému
systemctl --system daemon-reload
  1. Povolíme službu pro automatické spuštění
systemctl enable home-assistant@homeassistant

Na tento příkaz se nám v terminálu zobrazí odpověď: Created symlink /etc/systemd/system/multi-user.target.wants/home-assistant@homeassistant.service → /etc/systemd/system/home-assistant@homeassistant.service.

  1. Nyní můžeme znovu spustit Home Assistant a zkontrolovat jeho funkčnost. Případně rovnou restartovat router.
systemctl start home-assistant@homeassistant
  1. Restartujeme router. LXC kontejner a v něm Home Assistant se již sám spustí

Diskuze

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Scroll to Top