Van egy régi laptopom és nem tudtam eladni

Adott a szituáció, mihez tudunk vele kezdeni? Ami azt illeti az attól függ! Ha az a gép legalább 64-bites akkor nagyon jó esélyekkel indulunk, hogy a kis füstölő Raspberry Pi-nket kiváltsuk egy kicsit robosztusabb környezetre.


Persze, ez nem olyan könnyű mint mondjuk egy SD kártyára egy véletlenszerű img fájlt kiírni, bedugni és megnézni, hogy működik -e, DE nagyon sok előnnyel is járhat egy ilyen váltás!

Miért érheti meg?

  • Erősebb környezet mint a Pi, mind adat feldolgozás, mind megjelenítés frontján
  • Beépített szünetmentes tápegység
  • Robusztusabb háttértár
  • Sokkal több szolgáltatás futtatható
  • Nagyobb biztonság a beállítások megőrzésében (HDD/SSD vs. SD kártya)
  • Könnyebb bővítés
  • Könnyű frissítés

Buktatók?

  • Bonyolultabb a felépítése
  • Nincs GPIO
  • Nagyobb villanyszámla

Fent láthatjuk, hogy azért nem veszélytelen egy ilyen átállás, vagy kiépítés és persze minden eset egyedi! Én most elmesélem az enyémet 😉

Egy két szintes házban élek és megvolt az a lehetőségem, hogy az építés során beleszóljak néhány dologba mint mondjuk a hálózati kábelek mennyisége, minősége, elhelyezése. Persze hiába a sok lehetőség ezek általában komoly árcédulával is jártak. Amikor elmondtam az agymenésem a villanyszerelőnek… nem is lett belőle semmi, mert a jobbik háromnegyedem (a feleségem) sem adta rá áldását, így nem lett egy szekrény tele impulzus relékkel (olyan mágneses kapcsolók amik úgy maradnak kapcsolás után).

Ami viszont lett: kötődoboz mentes szerelés (a szerelvények alatti mélyítéssel), CAT6-os hálózati kábel minden helységbe, MikroTik hálózati eszközök, NAS, 3 marék különböző Pi és klónjai és egy nem kis szekrény ahova az összes ilyen ketyerét be lehet zsúfolni… persze nagy könnyebbség, hogy ez is a megszakítók és a kaputelefon mellett helyezkedik el és rá lehet csukni az ajtót.

Ebben a környezetben, főleg amikor már média centerek irányába is nézelődik az ember, hamar el lehet jutni a Pi 3 kapacitásának a végére. Főleg ha egy Home Assistant is már ott figyel egy sor másik szolgáltatás mellett és már szénné lett módosítva a rendszer. Komoly félelmem kezdett lenni, hogy már annyit módosítgattam a rendszereket, hogy ha ezek nekem fejre állnak akkor mihez kezdek majd. Ezt a férc munkát csak napokon keresztüli küzdelemmel lehetne újra alkotni… és kinek van erre ideje család és munka mellett? Nekem nincs.

Ekkor jött a gondolat, hogy a munkahelyemről megismert Docker névre hallgató környezetnek adjak egy esélyt, persze a Hass.io is Docker alapú szóval nem volt kérdés, hogy menni fog -e. A kérdés, hogy milyen áron. A Docker egy olyan alkalmazás virtualizációs környezet ami lehetővé teszi, hogy szolgáltatásokat (pl.: MySQL, Home Assistant, Sonarr, …) mint csomag kezeljünk és ne kelljen végig szenvedni  a telepítés sokszor eléggé nehézkes folyamatát.

Első körben a Pi 3-on próbáltam beállítani a dolgokat, de hamar a porral oltó felé kellett nyúlnom, mert a hűtés ellenére is azt vártam, hogy a varázsfüst mikor száll el belőle. Ha ez még nem lett volna elég, sokat rontott a helyzeten hogy a szolgáltatások negyede volt csak elérhető ARM alapú docker image-ként (Az RPI ARMv7 utasításkészlettel megy, nem x86_64 mint a legtöbb asztali gép/laptop/server). Ezek után jegelésre került a dolog.

Pár hónappal később megint úgy éreztem, hogy “Na most megcsinálom”, köszönhetően annak, hogy nem sikerült eladni a régi Lenovo B560 laptopomat, ami alig bír 2.5 GB RAM-mal és egy 2.2 GHz -es Intel processzorral, de 64-bites, szóval a Docker számára minden adott volt.

1. lépés, OS telepítés

Rengeteg variáció, opció, kombináció létezik erre, én az Ubuntu Server 18.04 mellett döntöttem. Azért nem Windows mert a Docker *nix környezetben sokkal jobban érzi magát, és a *nix szerver kiadások általában sokkal kevesebb erőforrást igényelnek mint a Windows-ok. Ennek persze ára van, többek közt: nincs grafikus felhasználói felület, csak parancssor. A telepítés menete a szokásos, telepítő kiírása USB-re, boot, aztán minden amit már megszoktunk. Az Ubuntu telepítője míg nem grafikus eléggé jól kezelhető és nem bombáz minket “felesleges” kérdésekkel.

2. lépés, HOST rendszer beállítása

Docker-es környezetben HOST-nak nevezzük a befogadó gépet amin a Docker fut, és ahhoz, hogy a Docker fusson, azt bizony fel kell rakni, 1-2 másik, támogató alkalmazás mellett.

Szükséges alkalmazások:

  1. Docker CE (Community Edition)
  2. Docker Compose*nix rendszereken külön telepítendő
  3. cifs-utils – Ha van bármilyen gép aminek a hálózati megosztását szeretnénk felcsatlakoztatni

Mint azt láthatjuk nem kell túl sok minden hozzá, és Ubuntu esetén ezek a lépések nagyon jól le vannak írva. Általában csak azt felejtik el, hogy az adott parancshoz kellenek -e emelt jogok vagy sem, de ez is gyorsan kiderül, mert ha nem hozza a várt eredményt akkor bizony a `sudo` szócskát a parancs elejére fűzve elég sok minden megoldódhat.

3. lépés, A fekete leves

Azért mondom ezt, mert ez az eddigi dolgokhoz képest a folyamat legtöbb türelmet igénylő része. A cél az, hogy egy docker-compose.yml fájlba össze írjunk minden szolgáltatást amit szeretnénk használni. Nálam, az alábbi szolgáltatások kerültek be:

  • Home Assistant – minden vezérlésre
  • Node Red – szórakozásból
  • PostgreSQL – Home Assistant Recorder adattárolásra
  • InfluxDB – Home Assistant adattárolásra
  • Grafana – Tárolt adatok megjelenítésére
  • Mosquitto – MQTT bróker
  • Jackett – Különböző, interaktív média források (torrent oldalak, …) összefésülésére
  • Sonarr – Sorozat figyelő és letöltés manager
  • Radarr – Film figyelő és letöltés manager
  • Portainer – Docker környezet figyelő és kezelő rendszer
  • Organizr – Közös felület kialakítása a sok szolgáltatáshoz
  • Dockermon – Docker állapot figyelés Home Assistanthoz

Azért nem rövid a lista és szerintem jól látszik, hogy miért is tartottam a tűzoltóság telefonszámát közel… A letöltéseket a NAS-on futó Transmission kezeli, így arra nem kellett külön bejegyzést készíteni. Természetesen ez a lista igények szerint bővíthető / módosítható.

GitHub-ra felraktam egy üres induló csomagot, a saját megvalósításhoz: https://github.com/blackfyre/mire-jo-egy-regi-laptop. Azért a javarészt üres data, log, config mappák mert az alkalmazások első induláskor létrehozzák ezeket a konfigurációs és adat fájlokat, ezek után viszont mindenki a saját konfigurációját állíthatja össze vagy hozhatja át a korábbi rendszeréből

Tudom, ez a cikk lehetne részletesebb is, de a Docker világáról egy háború és békét is lehet írni… szóval néhány alap magyarázat:

  • container_name <- könnyen értelmezhető, használható hivatkozási pont (ha nincs megadva akkor véletlenszerűen lesz elnevezve a container)
  • depends_on <- ahogy a név is mutatja, megadhatjuk, hogy mely containerek legyenek hamarabb indítva
  • environment <- a container számára adhatunk meg környezeti változókat, mint mondjuk az idő zóna
  • image <- a docker image fájlokra épít, ezzel adhatjuk meg, hogy melyik image fájlt kell beszereznie
  • volumes <- itt adható meg, hogy a HOST rendszer melyik mappája feleljen meg a container melyik mappájának, ez teszi lehetővé a container független adat mentést
  • ports <- itt adható meg, hogy a HOST rendszer melyik portján jelenjen meg a container melyik portja

Minden más általában speciális igény amit az image fájlokhoz tartozó dokumentációs oldalon le is írnak.

Gyakori problémák

Legtöbb esetben amikor problémába ütköztem az annak volt köszönhető, hogy vagy elrontottam a docker-compose.yml fájlban az útvonalakat, vagy nem volt írásjog az adott mappára. Az előbbi problémák elhárításában a docker-t segítségre hívhatjuk a docker-composer config parancs segítségével, az utóbbi meg nagyon gyorsan ki fog derülni.

Parancssor használata esetén nem mindig evidens, hogy a laptop bizony laptop szóval egy idő után felfüggeszti a működést, ennek is utána kell járni, hogy lehet ezt a viselkedést kikapcsolni.


Nektek esetleg vannak tapasztalaitok, észrevételetek? Esetleg ellenérvetek egy ilyen megoldással szemben?

, , , , , , , ,

About Galicz Miklós

Hobbista webfejlesztőből lett professzionális Senior Full Stack fejlesztő akinek középiskolai tárgy volt az okos otthon.
View all posts by Galicz Miklós →

1 thought on “Van egy régi laptopom és nem tudtam eladni

Comments are closed.