IOTstack – PiBuilder aneb kompletní příprava

PiBuilder je oním pověstným švýcarským nožíkem, který po čistém vypálení image Raspbianu provede automaticky kompletně zbylé kroky – instalaci IOTstack a všech jeho závislostí, instalaci IOTstackBackupu a také české verze IOTstackAliasů. Dále provede obnovu vložených uživatelských systémových dat.

Po skončení skriptů z PiBuilderu stačí dalším skriptem automatizovaně obnovit uživatelská data pro IOTstack. Skript stáhne danou zálohu a vše sám rozbalí a připraví. Po zadání UP je vše spuštěno a běží stejně, jako v okamžik provádění zálohy.

Jedná se o lehce upravený projekt pro české potřeby IOTcz.cz – například přidané CZ NTP servery pro synchronizaci času, dále přidané automatické zálohování IOTstacku do cron, nastavení skriptů pro běh větráků na krabičce ARGON ONE V2, instalaci oblíbeného Midnight Commanderu či Samby (definovaná složka v RPi jako sdílená složka na LAN). Naopak vzhledem k obvyklému použití ConBee II je vyřazena podpora pro WiFi.

Tento návod mohou využít jak ti, co již IOTstack mají (a mají svá uživatelská data pro obnovu), tak i ti, kteří se teprve o IOTstack zajímají a chtějí jej poprvé vyzkoušet. Máte-li již stávající IOTstack, tak si před započetím všeho ještě jednou ověřte, že máte vše aktuální, typicky i pluginy v Node-RED (v Manage Palette), protože se může stát, že vám následně nemusí nastartovat právě Node-RED. Pokud ne, tak je aktualizujte a vyvolejte ručně zálohování přes iotstack_backup.


Krok č. 1 – stažení a příprava Raspbianu

Tip pro začátek: zvažte rovnou instalaci 64bit verze Raspbianu 11 (Bullseye). V dnešní době se již vyplatí přejít z 32bit verze i přesto, že se nejedná o vysloveně stabilní (stable) verzi 64bit, navíc je již oficiální stable verze (od února 2022). Veškeré budoucí návody již budou zohledňovat vlastnictví 64bit systému (tedy architektury arm64) a může se Vám stát, že již nyní nebudete moci používat aktuální verze programů (typicky Influx 2.x, který podporuje výhradně arm64 a podpora pro 32bit skončila bohužel již u verze 1.8.10).

Pokud chcete zůstat na 32bit verzi Raspbianu, tento odstavec a odkaz přeskočte. Pokud se rozhodnete pro 64bit systém, stáhněte si zde daný image (soubor cca 1,1 GB):

https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2022-04-07/

Nyní již můžeme využít předchozího návodu, kde ovšem provedeme pouze krok č. 1 (tedy přeskočíme kroky č. 2, 3, 4, 5, 6 a 7). Samozřejmě v případě staženého 64bit image použijeme pod tlačítkem CHOOSE OS poslední volbu Use custom a vybereme stažený soubor.

Po ukončení zapisování média se toto automaticky softwarově odpojí ze systému, takže vyjmeme SD kartu či odpojíme SSD a znovu je vložíme/zapojíme.


Krok č. 2 – stažení PiBuilderu a příprava skriptů

Pokračujeme na URL níže, kde klikneme na zelené tlačítko Code a poté na Download ZIP. Tím se stáhne celý projekt do počítače.

https://github.com/iotcz-cz/PiBuilder

Po rozbalení nás zajímá především podadresář /boot, ve kterém je kompletně vše potřebné. Jste-li uživatelé bez předchozí provozované instalace IOTstack, následující odstavce můžete přeskočit až k části kopírování souborů (označeno ***).

Stávající vlastníci si mohou připravit vše, co se jim automaticky následně obnoví při nové instalaci. Logika je jednoduchá, veškeré vaše uživatelské nastavení je obvykle uložené v textových souborech, které jsou obvykle vždy v adresářích dle daného programu. Pokud tyto soubory podstrčíme PiBuilderu, tak jeho skript obnoví do daných cest vaše nastavení a tudíž veškeré nastavení proběhne automaticky bez nutnosti dalšího ručního zásahu.

V projektu PiBuilder cesta /boot/scripts/support/ odpovídá rootu vašeho Raspberry Pi, tedy pro příklad /boot/scripts/support/home/pi/ odpovídá v reálu /home/pi/. Některé soubory nemusí existovat ve vašem RPi, typicky například, pokud nepoužíváte nyní Sambu, tak nebudete mít pochopitelně uložený ani jeho konfigurační soubor.

Soubory, které zejména doporučuji vložit do PiBuilderu:

  • soubor config.txt ze stávajícího /boot/ do podadresáře /boot/
  • config.yml v podadresáři /boot/scripts/support/home/pi/.config/iostack_backup/, ve kterém je konfigurace IOTstackBackupu
  • rclone.conf v podadresáři /boot/scripts/support/home/pi/.config/rclone/, ve kterém je konfigurace rclone pro IOTstackBackup
  • smb.conf v podadresáři /boot/scripts/support/etc/samba/ (nemusíte mít, pokud nemáte Sambu!)

Samozřejmě nic nebrání přepsání/úprava i ostatních souborů, které můžete mít jinak. V klidu si projděte celou adresářovou strukturu /boot/scripts/support a případně si upravte/nahraďte vše dle vlastních potřeb.

*** Následně obsah podradresáře /boot/ nakopírujeme na vložené médium (SD či SSD), přímo do kořene, jak je vidět na obrázku. Jste-li noví uživatelé, tak ignorujte chybějící soubor config.txt.

Tímto máme přípravu hotovou a můžeme vyjmout/odpojit SD či SSD a pokračovat k dalšímu kroku.


Krok č. 3 – vložení SD/SSD do RPi a iniciace skriptů

SD či SSD vložíme/zapojíme do RaspberryPi a to zapneme. Zjistíme si IP adresu RPi (na domácím routeru v DHCP tabulce) a na tuto se připojíme oblíbeným SSH klientem.

Nyní iniciujeme první skript příkazem (místo nazev si vložte Vámi požadovaný název zařízení, třeba pi):

/boot/scripts/01_setup.sh nazev

Skript se provede a automaticky restartuje RPi. Opětovně se připojte přes SSH a pokračujte spuštěním skriptu č. 2:

/boot/scripts/02_setup.sh

Opětovně se restartuje RPI a vy se znovu připojte a pokračujte spuštěním skriptu č. 3

/boot/scripts/03_setup.sh

Zase, jako již tradičně, dojde k restartu a vy se znovu připojte a spusťte skript č. 4:

/boot/scripts/04_setup.sh

V posledním kroku opět znovupřipojení a spuštění skriptu č. 5:

/boot/scripts/05_setup.sh

Krok č. 4 – obnova uživatelských dat z IOTstack

Pokud jste uživatelé bez záloh, přeskočte rovnou na další následující krok (tedy č. 5). Krok č. 4 je volitelný krok pro ty, kteří již dříve provozovali IOTstack a mají k dispozici zálohu. Ideálně samozřejmě na nějakém online úložišti (typicky Dropbox). Pokud jste použili správné soubory v Kroku č. 1, tak již nemusíte nikde nic nastavovat, pouze se podíváte na dané úložiště na název souboru, který chcete obnovovat. Samozřejmě cestu je nutné použít takovou, jakou jste si sami zvolili při zálohování (v mém případě dropbox:IOTstack/backups), tedy zadáte příkaz:

rclone ls dropbox:IOTstack/backups

Sjedeme až na konec výpisu, kde zjistíme název posledního souboru (nejnovější).

Pro automatické stažení a rozbalení použijeme příkaz:

iotstack_restore nazevsouboru

Místo nazevsouboru vložíte svůj název. Tedy například, jako v mém případě:

iotstack_restore 2022-01-01_2300.raspberrypi

Po potvrzení se začnou stahovat soubory záloh (obvykle globální záloh a pokud používáte InfluxDB, tak i jeho záloha).

Po skončení se systém vrátí do příkazové řádky a my můžeme postoupit k poslednímu kroku – přeskočte rovnou na krok č. 6.


Krok č. 5 – sestavení IOTstack

Tento krok je pouze pro nové uživatele, kteří nemají zálohu a chtějí začít s čerstvým IOTstack. Zde odkážu na stávající návod, kde ovšem začnete až od kroku č. 5 a uděláte i krok č. 6 a vrátíte se k tomuto návodu:


Krok č. 6 – finální spuštění IOTstack

Nejkratší krok z celého návodu. Jelikož máme automaticky nainstalované aliasy, tak již můžeme zadat pouze příkaz UP a vše se automaticky připraví – od samotného stažení image, až po spuštění kontejnerů.

Nyní již můžete své RPi plnohodnotně používat. 🙂


Opětovně chci zde pod čarou poděkovat Phillovi (Paraphraser), který je pro mne opravdu nekonečnou studnicí informací, podpory, návodů a postřehů, na základě kterých píši i tyto články a návody.

$ s myšlenky na „$ s“
  1. Samotná čistá instalace dle tohoto návodu trvá přibližně 20-30 minut. Dalších 30-45 minut je třeba počítat s tím, že se stahuje ISO systému a provádějí se aktualizace RPi. Jinak vše funguje. Samozřejmě je třeba počítat s dalšími kroky dle potřeb uživatele.

    Pokud se jedná o přechod z 32 bit systému na 64 bit a obnovení záloh, je třeba počítat s trošku delším časem. Také velmi doporučuji mít před zálohou vše aktualizováno na poslední verze. Jak samotné kontejnery, tak pluginy a jiné prvky. Mne se po přechodu nespustil NodeRed a skončil na neaktuálních / nekompatibilních pluginech. Tedy vše znovu. Též záleží jak moc pečlivý je člověk při první instalaci a kolik ručních zásahů provedl dříve do nastavení.

  2. Mel bych přeci jen dotaz – a to, kam a jak umístit soubory s Aliasy. Dle návodu na tomto webu jsem si Aliasy nastavil. Funguje OK. Ale nějak se „nemůžu trefit“ s PIBuilderem.

    Mám to uloženo takto:
    a/ \boot\scripts\support\home\pi\.bashrc
    b/ \boot\scripts\support\home\pi\.local\IOTstackAliases\

    Nicméně ten „.bashr“ soubor musím po re-insatlaci přes PIBuilder stejně ručně ze zálohy na RBPi překopírovat a přepsat ručně. Až pak začnou Aliasy fungovat.

    Nějaký tip, kde dělám chybku prosím?

    1. A na zaklade ceho si z navodu nabyl dojem, ze je potreba aliasy jakkoliv resit?

      Aliasy se instaluji skriptem automaticky.

      1. Jakože PIBuilder je sám vytvoří a nainstaluje už v základní konfiguraci? To mi teda nejelo taky…

        Myslel jsem dle návodu, že si do patřičných adresářů v PIBuilderu nasypeš svoje data a ty se pak scripty Builderu přesouvají do nové instalace na malině. Nebo jsem pochopil funkci „švýcaráku“ jinak?

        1. Presne tak, nicmene aliasy se instaluji automaticky, viz. skript 03_setup.sh a radek 147.

Zanechat komentář