OMV i Docker

Dobry wieczór!

Wiele się słyszy od dłuższego czasu w światku IT, głównie programistów, ale również osób zajmujących się IoT, Home Automation o Dockerze i konteneryzacji. Do tej pory patrzyłem na to z boku, delikatnie śledząc temat, pora jednak najwyższa się w to 'wdrożyć'. Dobrze zrobiłem, bo temat jest nad wyraz ciekawy i (nie tylko) moim zdaniem rewolucyjny.

Docker i kontenery, w przeciwieństwie do maszyn wirtualnych, nie są osobnymi systemami, ale pewnymi 'zbiornikami' w których w izolacji pracują programy. Co ciekawe – korzystają ze wspólnych zasobów pamięci, odpowiednio nimi zawiadując. Czyli możemy sobie w sumie postawić ich wiele na jednym systemie i korzystać, będąc pewnym, że w razie jakichkolwiek problemów możemy przeinstalować tylko i wyłącznie jeden kontener, nie całość systemu, bez potrzeby 'stawiania' wszystkiego od nowa.

Nadmieniam, że jestem w tym temacie jeszcze początkujący, ale zafascynowany, wybaczcie więc możliwe błędy w pełnym rozumieniu tematu. Z chęcią również posłucham Waszych rad i korekt, jeżeli potrzeba.

Kilka osób mówiło: 'Docker, tak. Kup QNAP, albo jakiś starszy serwer i tam instaluj'. No ale ja już mam mój 'biedny NAS' postawiony na Orange Pi Zero Plus z NAS Hat. Głupio by było go nie wykorzystać, chociaż sprawdzić temat, bo jak nie 'zaskoczy' to wydam 1k PLN bez potrzeby.

Po raz kolejny – warto być upartym, bo mimo że 'szału nie ma' to działa na nim i Docker. Mimo limitu 512MB RAM. Coraz częściej jednak myślę o Odroid HC1/HC2.

Po pierwsze musimy w Open Media Vault (bo jego używam na moim NAS) zainstalować wtyczkę do Docker’a.

Po instalacji pojawi się nowa opcja w menu Services, do której przechodzimy.

Tam już zobaczymy możliwe do pobrania obrazy kontenerów Docker.

Pora przedstawić cel wpisu: instalujemy graficzny interface do pokazania naszych zdjęć w NAS. Do tego celu użyjemy lychee oraz MariaDB (czyli sewer baz danych tworzony przez zespół MySQL po tym jak zostali kupieni przez Oracle). Lekki, dostępny, ciekawy, ładny.

Zróbmy to jednak trochę inaczej. Na zakładce Overview w wyszukiwarce po prawej wpiszmy na początek linuxserver/mariadb i pobierzmy wybrany obraz. Po zakończeniu zobaczymy go w górnej połowie ekranu. Dobra, pobrany. Co teraz? Teraz trzeba go sparametryzować i uruchomić. Świetną cechą kontenerów jest to, że komunikują się przez konkretny port/porty z całym systemem. Czyli wystawiają pewien port, który później jest przekierowany na wybrany przez nas. W tym przypadku pozostanę przy standardowym dla MariaDB 3306.

Więcej informacji o parametrach, opisie znajdziecie na stronie z repozytorium kontenerów: https://hub.docker.com/r/linuxserver/mariadb. Opis parametrów, folderów do wyboru znajduje się na wymienionej stronie. Tu udajcie się w razie wątpliwości i wiedzy jakie parametry ma jaki kontener.

W przypadku tej konfiguracji musimy podać:
– PUID
– PGID
– TZ – TimeZone
– Hasło root do MySQL

WAŻNE! Każdą wpisaną wartość musicie 'potwierdzić' i przejść do kolejnej linii aby został zatwierdzony. To był mój główny błąd na początku nauki.

Poniżej również bardzo ważne dane – informacje o folderach z którymi może się komunikować nasz kontener. Wskazujemy folder po stronie kontenera i adekwatny folder na dysku NAS. Ja tworzę dla każdego kontenera osobny folder z konfiguracją, ale to zależy już od Waszych potrzeb i poczucia estetyki.

Lepiej zdefiniować je tak:

Jeżeli wszystko skonfigurowaliście poprawnie, obraz zostanie uruchomiony i od razu zobaczycie jego status.

W identyczny sposób instalujemy lychee. Konfiguracja jest odrobinę inna, jak poniżej:

I teraz ciekawa część. Wskażemy stronę lychee, w celu wstępnej konfiguracji. Tak jak ustawiliśmy, Lychee zgłasza się pod adresem naszego NAS z portem jaki wskazaliśmy przy konfiguracji kontenera, u mnie 192.168.1.124:81, czyli port 81. Ja sobie jak widać na routerze nazwy domen domowych przypisałem do adresów IP.

Lychee poprosi nas o adres IP serwera MariaDB (czyli w moim przypadku adres mojego NAS) i hasło do użytkownika którego chcecie używać. Ja wybrałem root. Niezbyt może bezpiecznie, ale mój NAS 'nie wychodzi na świat', nie mam do niego dostępu spoza domu. Lychee stworzy swoją bazę jeżeli chcecie, na wypadek 'przenosin' w inne miejsce macie możliwość wskazania lokalizacji używanej poprzednio bazy. Po założeniu będziemy jeszcze musieli stworzyć użytkownika i hasło, które chcecie używać w programie.

Jesteśmy gotowi do pracy!

Zasada Lychee jest następująca: wskazujemy folder źródłowy oraz docelowy, do którego zostaną przeniesione skatalogowane zdjęcia. Na początku trochę się wahałem, bo mam swój własny sposób na katalogowanie zdjęć, ale operacja (mimo że długotrwała przy kilkudziesięciu gigabajtach zdjęć) zakończyła się sukcesem.

OMV i klucze SSH do łatwiejszej komunikacji pomiędzy różnymi sprzętami

Jak pisałem – zbudowałem sobie NAS. Kopię danych z laptopa załatwiłem sobie prostym xcopy z poziomu Windows (nie chce mi się instalować jakiego wielkiego softu do backupów, chociaż używałem kiedyś Cobian backup), miałem jednak mały zgryz z kopią Domoticz oraz RetroPie.

A miało to wyglądać tak:
– kopia wykonywana z poziomu NAS (czyli OMV) pobierająca foldery z Raspberry Pi na którym jest Domoticz
– kopia wykonywana z poziomu NAS pobierająca foldery z Raspberry Pi na którym jest RetroPie

Wszystko to miał obsłużyć rsync. Aby zrobić to pomiędzy dwoma systemami musiałem użyć połączenia szyfrowanego (SSH), ponieważ tego wymaga rsync.

Chciałem to zautomatyzować na ile się da i w sumie udało mi się bez problemu przez SSH (Secure SHell), ale zawsze stało mi na przeszkodzie hasło, które musiałem podawać przy logowaniu się do serwera. Pora była nauczyć się generowania kluczy SSH, które później można użyć przy bezpośrednim łączeniu się pomiędzy konkretnymi komputerami.

Jak się okazuje – dla chcącego nic trudnego…

Po pierwsze – po stronie systemu NA KTÓRY chciałem się logować bez hasła musiałem wygenerować klucz rsa:

ssh-keygen -t rsa

Robiłem to dla standardowego użytkownika 'pi', dlatego klucz publiczny znajduje się w folderze /home/pi/.ssh/id_rsa.pub. Klucz prywatny (identyfikator) znajduje się w /home/pi/.ssh/id_rsa.

TERAZ WAŻNE: trzeba nakazać skopiowanie klucza serwerowi KTÓRY będzie się logował na inny, gdzie jest klucz. Poleceniem ssh-copy-id, jak poniżej

ssh-copy-id pi@192.168.1.200 

Z POZIOMU SERWERA który ma się dostać do danych, czyli z OMV.

Podajemy hasło do konta, jednorazowo.

Teraz już bez problemu działają polecenia:

sudo rsync -avz -e ssh pi@192.168.1.200:/var/www/html/dashboard /sharedfolders/Sobczaki/Dane/Backup/Domoticz

sudo rsync -avz -e ssh pi@192.168.1.200:/home/pi/habridge /sharedfolders/Sobczaki/Dane/Backup/Domoticz

sudo rsync -avz -e ssh pi@192.168.1.200:/home/pi/domoticz /sharedfolders/Sobczaki/Dane/Backup/Domoticz

sudo rsync -avz -e ssh pi@192.168.1.126:/etc/emulationstation /sharedfolders/Sobczaki/Dane/Backup/RetroPie/

Wpakuję sobie to wszystko do CRON i backup 'będzie się robił sam'.

OpenMediaVault (OMV) i Transmission

Dzień dobry.
Rozwijania NAS ciąg dalszy. Sam dysk sieciowy jako taki działa bardzo dobrze (raz czy dwa przez kilka miesięcy zdarzyło mu się zawiesić, ale nie uznaję tego za znaczący problem), transfery są stabilne (mimo, że oczywiście ustępują potężniejszym maszynom), do zastosowań domowych w zupełności mi wystarczają. Po przestawieniu się kompletnie na Netflix i Spotify sens streamowania jest coraz mniejszy, ale dzieciaki się cieszą gdy oglądamy rodzinne zdjęcia, a o kopie moich danych z różnych maszyn jestem bardziej pewny. RetroPie, Domoticz czy laptop mają swoje miejsce na dysku. Co prawda apetyt rośnie w miarę jedzenia i coraz częściej spoglądam na Odroid HC1/HC2, ale nie o tym jest ten wpis.
A jest o tym, że jednak ciągle dostęp do torrentów jest jednym z celów wykorzystania NAS. Powiedzmy, że może Wam się przydać do szybszego ściągania obrazu Raspbiana, czy Open Office 😉
Zaczynamy.
W Plugins wybieramy pakiet Transmission, instalujemy. Po szybkim ściągnięciu repozytorium OMV odświeży stronę i zobaczymy w menu Services BitTorrent. 

Zanim jednak tam wejdziemy musimy zastosować się do zaleceń konfiguracyjnych. Po pierwsze – musimy stworzyć (albo udostępnić już istniejące) foldery na dysku. Zalecam stworzenie osobnego dla plików w trakcie zgrywania, osobnego do tak zwanego Watch (czyli folderu gdzie Transmission 'nasłuchuje' czy nie pojawiło się coś nowego do pobrania'), oraz plików już pobranych w całości. Pozostaje nadać prawa dla użytkownika/grupy debian-transmission w ACL i jesteśmy gotowi do pracy.

Później możemy wejść w listę parametrów. Jeżeli nie zależy Wam na 'tuningu' na samym początku to praktycznie zostawiacie to co jest i udajecie się na zakładkę Files and Locations, gdzie wskazujecie stworzone wcześniej foldery.

Kolejne zakładki pozwalają na:
– dostosowanie limitów przepustowości
– informacje o Peer’ach – czyli osobach udostępniających
– kolejkowanie
– harmonogramy pobierań – jeżeli na przykład chcecie 'ciągnąć pełną mocą nocą'

Interface web jest dostępny pod adresem: waszadresOMV:9091, gdzie macie w sumie minimalne możliwości konfiguracyjne.

Poniżej zrzuty ekranu:
– W trakcie pobierania
– Niepełny plik

– Zawartość folderu Watch

– Całość już pobrana

Miłych i szybkich pobrań życzę!