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.

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

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