Installare Portainer su NAS Synology

 

In questa guida cerco di spiegare passo-passo (diciamo per principianti) come installare Portainer (gestore di container) su NAS Synology con DSM 7. Come sempre cercherò di scrivere un articolo come piace a me: inserirò le informazioni necessarie senza dilungarmi troppo, senza continue ripetizioni (in stile SEO) e andando al punto, ma inserendo le informazioni che è necessario sapere (per capire cosa si sta facendo).

Come prima cosa, naturalmente, dovete avere un NAS Synology configurato e attivo, che supporti l’installazione di container Docker. Poi è consigliabile avere un minimo di infarinatura base su Docker e su cosa sono/come funzionano i Container.

 

1.    Configurazione tipo (HW/SW)

Nel mio caso mi trovo nella seguente situazione (cioè, se avete la mia stessa configurazione e seguite la guida, vi garantisco che funziona):

  • Synology DS-1522+
  • DSM 7.2.1 Update3
  • Portainer CE 2.19.4

 

2.    Prerequisiti

Come detto dovete naturalmente avere:

 

3.    Breve introduzione/spiegazione

Spiego molto brevemente e a grandi linee cos’è Portainer e perché è utile averlo, invece di usare il Container Manager stock.

Innanzitutto i Container sono un modo attuale per la gestione stand-alone e isolata delle applicazioni. Non sono altro che delle Virtual Machine (generalmente con una distribuzione molto leggera di Linux), in cui lo sviluppatore installa tutto il necessario per il funzionamento della sua applicazione, e che poi viene distribuita come un pacchetto “pronto all’uso” (si chiama Immagine) che gira in una sandbox.
Sul nostro server, un software orchestrator (Docker, nel nostro caso) si occupa di eseguire e gestire i vari Container.
Da una Immagine possono essere creati infiniti Container, cioè la stessa versione specifica della Virtual Machine può avere n copie (Container) che girano sul nostro sistema (ogni Container ha la sua configurazione).
Chiaramente ogni Container necessita di configurazioni specifiche o di mappare delle directory fisiche su cui salvare i dati (che altrimenti andrebbero persi ogni volta che si applica una nuova versione dell’Immagine). Perciò ogni volta che si crea un nuovo Container, è necessario inserire queste configurazioni.

Portainer è un software (che già a sua volta in un Container) che permette di gestire facilmente i vari container, controllando anche più orchestrator (o “Nodi”; nella versione CE - Community Edition, che è gratuita, sono gestibili fino a 3 Nodi), ma soprattutto permettendo di controllare facilmente il “versioning”.
Il Container Manager di Synology include già la sua implementazione di Docker Compose, ma “Stack” (l’implementazione di Portainer) secondo me è decisamente superiore. Chiramente non è l’unico aspetto che fa preferire (a me e a molti altri) Portainer rispetto al manager base.

Visto che provare non vi costa nulla (se non un po’ di tempo), vi consiglio di fare un tentativo per vedere come vi trovate.

 

4.    Installazione del Container Manager

Come prima cosa è necessario installare il pacchetto “Container Manager” sul nostro NAS.
Se lo avete già installato, potete passare al punto successivo.

 

Aprire la pagina web di gestione del vostro NAS, quindi lanciare l’applicativo “Package Center” che si trova sul Desktop.


Se non lo avete sul Desktop, aprire il menu in alto a sinistra e lo troverete come prima voce.

 


Si aprirà la pagina con tutti i pacchetti ufficiali installati e installabili.

Nella barra di ricerca scrivere “container” e premere invio per effettuare la ricerca

 


Cliccare su “Container Manager” per aprire la pagina di dettaglio del pacchetto

 


Cliccare sul tasto “Install”

 


Attendere che termini la procedura di installazione. Al termine lo stato del pacchetto sarà “Running”

 


5.    Creare la directory persistente dei file

E’ necessario creare una cartella sul NAS che permetta la persistenza dei file (che altrimenti andrebbero persi ad ogni aggiornamento del Container), in modo che sia anche possibile effettuare (e ripristinare, all’occorrenza) i backup periodici.

Aprire quindi “File Station” (dal Desktop o dal menu in alto a sinistra)

 


Cliccare sul tasto “Create” e quindi scegliere “Create shared folder”


Nella finestra che si apre, inserire “docker” (tutto minuscolo!) come nome, e cliccare su “Next”


 

Proseguire cliccando su “Next”

 


Di nuovo cliccare su “Next”

 


Al riepilogo, proseguire cliccando ancora su “Next”

 


Senza modificare le impostazioni dei permessi (non serve), confermare cliccando su “Apply”

 


Tornare su “File Station” e selezionare la cartella “docker” appena creata

 


Cliccare quindi sul bottone “Create” e scegliere la voce “Create folder”

 


Chiamare la nuova cartella “portainer” (tutto minuscolo, è importante!) e cliccare su “OK”

 


 

6.    Preparare lo script

Ora che la directory per il salvataggio dei dati è pronta e il Container Manager installato, possiamo preparare lo script per l’installazione di Portainer.

Lo script serve perché Portainer deve essere installato con privilegi alti (per poter gestire i container, deve poter girare come root), per cui anche lo script di installazione deve essere eseguito con l’utente root.
Per fare ciò ci sono 2 possibilità:

  • Collegarsi in SSH e lanciare i comandi da console
  • Creare un Task che giri con i permessi di root ed esegua lo script

Visto che il secondo modo è di gran lunga il più semplice, vi spiegherò quello.

 

Prima di tutto occorre aprire il “Control Panel” dal Desktop o dal menu in alto a sinistra

 


Aprire “Task Scheduler”

 


In questo tool troviamo tutto ciò che è schedulato sul NAS, compresi i backup di “Hyper Backup” il check SMART dei dischi.
Andiamo quindi a creare un nuovo task schedulato (che eseguiremo solo a comando) per la nostra installazione.

Cliccare su “Create” à “Scheduled Task” à “User-defined script”

 


Nella finestra che si apre, inserire “Install Portainer” (o il nome che preferite) come nome del Task.
Selezionare “root” come utente.
Togliere la spunta al flag “Enabled”

 


Passare al tab “Schedule” e selezionare l’opzione “Run on the following date”

 


Passare al tab “Task Settings” e inserire quanto segue:

  • Mettere la spunta a “Send run details by email” (per essere avvisati via mail quando il task termina e sapere se è riuscito oppure è andato in errore)
  • In “Email” inserire il vostro indirizzo email
  • In “User-defined script” inserire il seguente codice:

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

Dove “/volume1/docker/portainer” è il percorso della cartella creata nel passaggio precedente (se l'avete creata secondo la procedura non dovete modificare nulla, altrimenti aggiustate questo percorso in base alla vostra configurazione).

Cliccare su “OK” per salvare il Task.

 


Comparirà a questo punto un messaggio di alert. Confermare cliccando su “OK”

 


Inserire la password amministrativa e cliccare su “Submit”

 


Attendere qualche istante e il nostro script sarà pronto

 

7.    Eseguire lo Script

Selezionare lo script appena creato

 


Cliccare sul bottone “Run”

 


E ora non rimane che attendere l’esecuzione dello script. Potrebbe volerci qualche minuto per il download dell’immagine, ma vi arriverà la mail appena terminato tutto.

Se tutto è andato a buon fine, potete verificare che il container di Portainer sia attivo e funzionante, aprendo il tool “Container Manager” e selezionando la sezione “Container”


 

8.    Collegarsi a Portainer

Per collegarsi alla pagina web di Portainer è sufficiente aprire il browser e digitare l’indirizzo

http://192.168.x.x:9000

dove “192.168.x.x” è l’IP del vostro NAS.

Si aprirà una pagina che richiede la configurazione dell’utente amministrativo. Inserire il nome utente che preferite e una password a vostra scelta, quindi cliccare su “Create user”

 


Comparirà una schermata con un Wizard che permette la scelta dell’ambiente a cui collegarsi. Nel nostro caso vogliamo gestire l’installazione docker su cui è installato anche Portainer, quindi scegliamo l’opzione “Get Started”

 


FINE!

L’installazione è completata, ora è possibile gestire l’istanza docker del NAS Synology direttamente da Portainer, selezionando l’ambiente appena creato

 


 

9.    Conclusioni

Gestire i Container e le Immagini docker da Portainer è molto più comodo e immediato. Giocandoci un po’ ve ne accorgerete subito.

Una funzionalità che mi sento di consigliarvi caldamente è di usare gli Stack (l’implementazione Portainer di docker-compose) per tutto. E’ decisamente meglio rispetto alla funzionalità Project del Container Manager di Synology, e permette la creazione di nuovi Stack usando il Web Editor integrato, caricando un file YML, puntando a un file docker-compose presente in un repository su Git oppure usando un template personalizzato realizzato da voi.
Trovate più info se guardate la documentazione di Portainer.

Un altro accorgimento che mi sento di consigliarvi caldamente è di puntare sempre ad una versioen specifica dell’immagine, quando create un container (ad esempio “cloudflare/cloudflared:2024.1.4” e non “cloudflare/cloudflared:latest”), perché ciò vi permette di aggiornare ogni container solo quando volete, e di poter tenere senza problemi 2 versioni (ad esempio se avete un container di “produzione” e uno di “test”) diverse senza il rischio di aggiornare involontariamente anche altri container. Ci sono strumenti per ricevere notifiche in caso di pubblicazione di nuove versioni delle immagini (ad esempio “What’s up docker?”, su cui pubblicherò un post nei prossimi giorni).

Analizzerò più nel dettaglio questi aspetti nei prossimi post, dove mostrerò la procedura di installazione e configurazione di alcuni container utili.

Commenti

Post popolari in questo blog

Creare un sensore weather (previsioni del tempo) da Meteo & Radar in Home Assistant

Home Assistant - Recuperare informazioni aggiuntive da Netatmo (termostato)

Installare Frigate su Raspberry Pi con HAssOS

Creare un sensore del prezzo del gas (PSBIL_BUY) in Home Assistant

Esporre UPS da NAS Synology verso Home Assistant (NUT)

Creare MQTT Server (broker) in Home Assistant (HASSIO)

Ricevere la posizione GPS quando si parcheggia l'automobile (con Home Assistant)

Tasmota (via OTA) su BlitzWolf BW-SHP10 (e su Tuya ESP in generale)

JC vs Khaby Lame