SCOPI DELLA GUIDA:
CONCETTI AFFRONTATI:
|
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI:
DISPOSITIVI FISICI UTILIZZATI: |
GUIDA INDICATA PER: |
|
NOTE E DISCLAIMER
|
|
Revisione guida: 1.1 |
Abstract
Per qualsiasi implementazione per la propria domotica personale che preveda l’utilizzo del protocollo Message Queue Telemetry Transport (MQTT), è necessario che sulla rete sia disponibile un broker MQTT, ovvero un “instradatore” dei messaggi generati tramite questo protocollo. In questa guida affronteremo la procedura di installazione su Raspberry Pi di Eclipse Mosquitto, uno dei broker opensource più diffusi.
In questa guida ci concentriamo sulla possibilità di installare Mosquitto su una NAS del brand QNAP adottando un pratico container Docker, il che consente di isolare i processi del server, di essere facilmente aggiornato e molto altro.
Procedimento
Assunti
Questa guida è dedicata a chi abbia già un QNAP in uso.
Si assume che il sistema operativo del QNAP sia aggiornato, così come le componenti Docker, File Station e Container Station che andremo ad utilizzare; è necessario che QNAP sia ovviamente collegato in rete e che la rete gli consenta libero accesso alla rete Internet. Altra assunzione è la presenza di almeno un hard disk presente nella NAS correttamente configurato.
Per istanziare il container docker di Eclipse Mosquitto utilizzeremo l’interfaccia Container Station di QNAP, mentre utilizzeremo File Station per indicare alla NAS dove salvare i file di configurazione e di storage.
Definizione configurazione
Prima cosa, aprire un qualsiasi editor di testo e creare un file chiamato mosquitto.conf che contenga il seguente codice:
persistence true
persistence_location /mosquitto/data
listener 1883
log_dest file /mosquitto/log/mosquitto.log
log_timestamp_format %Y-%m-%dT%H:%M:%S
Tale file verrà poi copiato sul NAS e verrà utilizzato come file di configurazione dell’istanza Mosquitto che andremo a creare.
File Station
Definita la propria configurazione, il passo seguente da eseguire è quello di definire un percorso presso lo storage nel quale salvare i file di configurazione di cui sopra.
Dall’interfaccia web della NAS QNAP avviamo quindi l’applicazione File Station.
Selezionare il volume prescelto per ospitare i file di Eclipse Mosquitto (nel nostro caso “Volume1“) cliccando sui tre puntini in alto a destra, selezionando poi “Crea cartella condivisione“:
Nel nostro caso abbiamo deciso di creare una directory principale (“domotica-indomus“) nella quale posizionare tutte le sotto-directory relative ai progetti dedicati alla domotica. Gli altri parametri possono esser lasciati così come sono, di default:
Creare quindi una sotto-directory dedicata a Eclipse Mosquitto. Per farlo, cliccare sull’icona della cartella con il “+” selezionando poi “Cartella/e“:
Chiamiamola, con poca fantasia, “mosquitto“:
A questo punto è necessario caricare i propri file di configurazione. Portiamoci sulla directory appena creata e clicchiamo sull’icona per l’upload dei file (“freccia verso l’alto”), selezioniamo “File” e carichiamo il file mosquitto.conf creato in precedenza sul proprio computer d’appoggio.
A questo punto siamo pronti a istanziare il container di Eclipse Mosquitto tramite Container Station.
Container Station
In questo passaggio – cardinale – si andrà a istanziare Eclipse Mosquitto come container Docker presso Container Station: dall’interfaccia web della NAS QNAP avviare quindi tale applicazione.
Cercare quindi “eclipse mosquitto” nell’elenco delle immagini disponibili (consultate da QNAP su Internet) selezionando come fonte “Docker Hub“.
Cliccando quindi su “Installa” verrà mostrato un menu a tendina da cui scegliere la versione da utilizzare.
Selezioniamo la “Latest“. Apparirà un warning relativo alla fonte dell’immagine. Non preoccuparsene e andare avanti.
Nella schermata successiva si attribuirà un nome al container:
Si seleziona quindi “Impostazioni avanzate” > “Rete“.
Impostare “NAT” quale modalità di rete, avendo poi cura di configurare le porte come da immagine che segue:
Portandosi poi alla voce “Cartelle Condivise“, andrà selezionato:
1) a sinistra, la directory di configurazione dell’host da utilizzare per la configurazione (definita in precedenza);
2) a destra, la directory di configurazione di HA prevista nella configurazione dell’immagine Docker di Mosquitto, ovvero “/mosquitto/config” assicurandosi di fornire permessi di lettura e scrittura:
Infine, cliccare su “Crea“: verrà mostrato il riepilogo della configurazione.
Premendo su “OK” verrà avviata la creazione del container e, dopo qualche momento, si completerà positivamente.
Una volta completato il processo, cliccando sulla voce “Panoramica” del menù si potrà apprezzare l’esistenza del nuovo container di Eclipse Mosquitto. L’interfaccia ci permetterà, alla bisogna, di riavviare, fermare, eliminare o modificare il container:
Creazione pwfile
Sebbene non obbligatorio, consigliamo l’adozione di un cosiddetto file pwfile che consente, in pratica, di attivare l’autenticazione presso il broker MQTT.
Dalla schermata “Panoramica” vista poc’anzi, cliccare sul container relativo a Eclipse Mosquitto e poi, nella schermata seguente, su “Terminale“. Nel box successivo ci verrà chiesto di digitare il comando, che sarà quello della shell linux, ovvero “sh“:
Ci ritroveremo in un nuovo tab del browser dove vedremo la shell. Trovandoci de facto all’interno del container potremo digitare il comando per la generazione del file. Nel nostro caso abbiamo utilizzeeremo l’username “indomus“:
mosquitto_passwd -c /mosquitto/config/pwfile indomus
Digitato il comando verrà chiesto di immettere la password (una propria, di fantasia, segnandosela da parte per gli usi futuri) e poi di confermarla. Fatto questo provvederemo a modificare il file di configurazione mosquitto.conf creato e caricato in precedenza.
Questo sarà possibile farlo direttamente dalla shell all’interno del container utilizzando l’editor “vi“:
vi /mosquitto/config/mosquitto.conf
oppure tramite l’interfaccia del QNAP a patto di installare “Text Editor” (o un’applicazione similare) dall’App Center.
La nuova configurazione di mosquitto.conf dovrà essere similare alla seguente:
persistence true
persistence_location /mosquitto/data
listener 1883
log_dest file /mosquitto/log/mosquitto.log
log_timestamp_format %Y-%m-%dT%H:%M:%S
allow_anonymous false
password_file /mosquitto/config/pwfile
aggiungendo così l’impostazione che forza l’uso del pwfile e disabilitando l’accesso anonimo.
Infine, uscire dalla shell tramite:
exit
Aprendo “File Station” e consultando la nostra directory troveremo il pwfile appena creato.
Per concludere, presso “Container Station” cliccheremo nuovamente sul container cliccando poi “Arresto” e, infine, su “Avvio“, per far sì che il container venga riavviato, questa volta adottando le nuove impostazioni.
Aggiornamento
Per aggiornare Eclipse Mosquitto implementato come container Docker su Container Station è sufficiente rimuovere il container per poi crearlo nuovamente.
Ovviamente, è necessario conoscere prima le modalità con cui era stato creato. Se si è seguita questa nostra guida, è sufficiente rimuoverlo e rifare la procedura; differentemente, assicurarsi prima di avere tutte le coordinate necessarie. Comunque sia è difficile “far danni”: la cartella contenente la configurazione non viene toccata dalla rimozione del container, quindi è facile ricrearlo puntando ad essa e ritrovare perfettamente funzionante il proprio broker MQTT.
Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa. |