blog.vyoralek.cz

Migrace HA Addonu Portainer pro správu docker kontejnerů

Pokud používáte v HomeAssitantovi addon (doplněk) s názvem Portainer pro webovou správu docker kontejnerů pak jste si možná všimli, že již nebyl nějakou dobu aktualizovaný. Dnes si ukážeme jak tuto situaci vyřešit.

🎙 Poslední aktualizace článku 10.9.2022. Pokud najdete nějaké rozdíly v aktuálním stavu, dejte vědět v komentářích, díky.

Důvodem neaktuálnosti Portaineru je ukončení vývoje tohoto addonu pro HA a důvod je popsán přímo na webu:

This add-on is no longer available.

It has been used quite a lot for unsupported porposes, causing many issues, support questions and other problems.
If you run Home Assistant, please be aware that running additional containers is not a supported use-case and will trigger your system to be flagged as unsupported as well.

Pokud chceme Portainer i nadále používat, jeví se jako nejlepší možné řešení rozloučit se s formou HA addonu a zprovoznit si vlastní docker kontejner s vlastní URL adresou.

Záloha aktuální konfigurace Portaineru

Než se pustíme do instalace nové instance Portaineru uděláme si zálohu té stávající, tak abychom měli novou instanci se stejným nastavením – tj. včetně např. přihlašování.

Možnost zálohy najdeme v menu Settings a v sekci Backup Portainer stačí jen kliknout na Download backup.

Vytvoření zálohy konfigurace Portaineru

Zálohu si uložíme někam k sobě na disk a můžeme se vrhnout na samotnou instalaci.

Instalace nové verze Portaineru

K instalaci zbrusu nové instance Portaineru s aktuální (poslední, latest) verzí se budeme potřebovat připojit do konzoly terminálu, kde nám běží Docker služba a spustit následující příkaz:

docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v portainer_data:/data \
    portainer/portainer-ce:latest

Měli bychom na obrazovce vidět přibližně následující:

Unable to find image 'portainer/portainer-ce:latest' locally
latest: Pulling from portainer/portainer-ce
772227786281: Pull complete
96fd13befc87: Pull complete
c4ae3071bd43: Pull complete
09555252dba0: Pull complete
Digest: sha256:444ade51d69d7fca889c7aa14525c459dba313a0e7ca79aee985e6c0749427de
Status: Downloaded newer image for portainer/portainer-ce:latest
a089ff288c6bda3bdb3ce1b544567bfc85161371e924c5180e7633378f5af0f8

Z logu je zřejmé, že poslední verze docker image Portaineru byla stažená na lokální disk a nakonci nový kontejner byl nastartován.

Konfigurace a obnova ze zálohy

Nyní už bychom měli být schopní do prohlížeče zadat IP adresu serveru na který jsme image nainstalovali s portem 9443, tj. http://<IP_ADRESA>:9443 a v prohlížeči bychom měli vidět následující screen.

Nová instance Portaineru

Uvidíme dvě možnosti – buď si můžeme nakonfigurovat zbrusu novou instanci včetně přihlašování a nebo můžeme použít nastavení z předchozího Portaineru (ze zálohy).

Já už jsem si vybral možnost druhou a proto bychom už nyní měli mít připravou zálohu.

Klikneme na Restore Portainer from backup, vybereme soubor se zálohou (Select file) z lokálního disku, vyplníme heslo zálohy pokud jsme ho použili a dáme Restore Portainer.

Obnova konfigurace Portaineru ze zálohy

⚠️ Pokud budeme mít příliš velkou časovou prodleva mezi spuštěním Portaineru a kliknutím na Restore Portainer může se stát, že se backup z bezpečnostního důvodu nepovede. Je potřeba pak jen novou instanci Portaineru restartovat (což můžete udělat např. z předchozí verze Portaineru).

Prvotní přihlášení

Pokud jsme provedli obnovení ze zálohy pak můžeme použít stejné přihlašování jako jsme měli v předchozí verzi Portaineru. V opačném případě zadáme přihlašovací údaje nové.

Přihlašovací obrazovka

A máme hotovo – tedy téměř. Máme novou instalaci Portaineru, která bude mít zřejmě novější rozhraní, ale ještě nám přeci jen jeden krok zbývá – Portainer je nyní přístupný pouze interně, ale ne zvenčí.

Nová verze Portaineru
Stará verze Portaineru

Přístup do Portaineru zvenčí

Způsob jak zpřístupnit Portainer zvenčí je defakto totožný s tím, jak zpřístupnit z venčí samotný HomeAssistant.

A zde se může ukázat nevýhoda tohoto řešení. Pokud nemáte veřejnou IP adresu pak je možné že používáte Home Assistant Cloud, který umí zpřístupnit HA a i Portainer běžící jako addon zvenčí. Pokud však budeme mít Portainer mimo dopňky HA pak nám v tomto Home Assistant Cloud moc nepomůže.

Nicméně pojďme zpět ke scénaři, kdy veřejnou IP adresu máme a pak je velká pravděpodobnost, že máme i HA Addon Nginx Proxy Manager, který nám s tímto velice pomůže.

Stačí když si zaregistrujeme nové doménové jméno a spárujeme ho s veřejnou IP adresou (popř. nastavíme správné přesměrování na routeru).

V Nginx Proxy Manageru toto nové jméno přidáme, změníme scheme na https, zadáme IP adresu v lokální síti, kde nám Portainer běží, do portu dáme hodnotu 9443, povolíme Websockets support a můžeme uložit.

Konfigurace v Nginx Proxy Manageru

Odstranění addonu Portainer

Jako úplně poslední krok je odstranění předchozího Portaineru, který jsme měli jako HA Addon. To je velmi jednoduché a stačí si Portainer najít v seznamu Addonů, kliknout na Odinstalovat a je hotovo.

HA Addon Portainer

Řešení pomocí instance Portaineru vytvořeného přímo námi má výhodu zejména v možnosti udržovat je v aktuálních verzích a s pohledu systému je jedná i o lepší řešení, než nutnosti vypínání Ochraného režimu v HomeAssitantovi.

A co vy používáte pro správu docker kontajnerů a image Portainer a nebo máte jiný nástroj?

Add comment

Leave a Reply

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..