Il Re della Stampa in Cloud è Morto… Viva il Re della Stampa Open Source!!! :p – Parte III :/

Proviamo a Configurare un Server di Stampa CUPS per la Rete Locale…

To my chagrin, after many tests, I must back up that I have not been able to expose over the Internet my printer shared through CUPS… but the challenge with myself is not over yet… 🙂

Para mi disgusto, después de muchas pruebas, debo respaldar que no he podido exponer a través de Internet mi impresora compartida a través de CUPS… pero el desafío conmigo mismo aún no ha terminado… 🙂

Dopo circa 5 giorni di test, tentativi vari e gran mal di testa, devo dire un po’ con sorpresa, di aver raggiunto l’obiettivo solo a metà… 😦

La stampa da remoto attraverso Internet non sono proprio riuscito a farla funzionare, nemmeno configurando CUPS per non chiedere l’autenticazione agli utenti (come suggerito da molti tutorial)… ma capite bene che, anche se avesse funzionato, sarebbe una soluzione improponibile, giusto per mantenere almeno un minimo in sicurezza i dispositivi nella mia LAN…

La cosa positiva che però ne è comunque nata, è che ora tutti i miei dispositivi nella LAN hanno accesso alla stampante (e non solo il mio PC portatile), in quanto il server CUPS che la condivide ha creato una share di rete visibile persino da Windows e dalle altre mie macchine virtuali… e la cosa migliore è che CUPS rende disponibile la stampante in modo che funzioni con un driver generico, permettendomi di usare una stampante molto vecchia anche in quei sistemi Windows che ne hanno rimosso il supporto ufficiale!!! 😀

Altro effetto collaterale positivo, mi sono fatto una cultura più approfondita su Nginx e sui reverse proxy… e come sempre “impara l’arte e mettila da parte” 🙂

Tuttavia, non ho ancora abbandonato l’idea della stampante accessibile da Internet… vediamo dove mi spinge la fantasia creativa da sistemista!!!

Vediamo se una Raspberry Pi mi Salverà…

Una soluzione mi sta già balenando in mente… perché temo che l’inaccessibilità della stampante attraverso Internet possa dipendere dal fatto che sia condivisa attraverso due print server in cascata…

L’idea da esplorare sarebbe quella di eliminare il print server fisico (obsoleto) e la macchina virtuale che esegue CUPS, e sostituirli con un’unico dispositivo autocostruito che svolga la funzione di print server usando direttamente e solo il comunque ottimo CUPS. In particolare, vorrei usare una piccola Raspberry Pi Zero W accoppiata con uno o più HAT che mi permettano di dotarla di una porta ethernet e almeno un paio di porte USB.

E già so che mi toccherà di nuovo mettere mano al saldatore a gas… :p

Morale della favola “non tutto il male viene per nuocere!!!” Naaah, meglio “trova sempre il positivo ovunque, può sempre essere una piacevole sorpresa”

Il Re della Stampa in Cloud è Morto… Viva il Re della Stampa Open Source!!! :p – Parte II

Proviamo a Configurare un Server di Stampa CUPS per la Rete Locale…

In the first part of this tech story, I told about the dead of Google Cloud Print and my idea to replace it using CUPS through the Internet… now we will see how I tryed to reach this result…

En la primera parte de esta historia tecnológica, hablé sobre la muerte de Google Cloud Print y mi idea de reemplazarlo usando CUPS a través de Internet… ahora veremos cómo intenté llegar a este resultado…

All’inizio di luglio avevo iniziato ad introdurre un mio progettino tecnologico per l’estate: sostituire Google Cloud Print con una soluzione home made basata su CUPS, il sistema di stampa di Linux (leggere qui).

Purtroppo, però, durante l’estate il dover adeguare la mia rete di casa per la fibra ottica mi ha allontanato da questo progetto. Ma ora l’ho ripreso in mano, in attesa che TIM si degni di attivarmi la connettività FTTC…

Così mi sono messo di buon sbuzzo a cercare una soluzione elegante e flesdibile per esporre la mia stampante su Internet, in modo da trasformarla in una stampante in cloud.

Creiamo una Virtual Machine leggera

Il primo passo è stato quello di creare una macchina virtuale sul all’interno del piccolo server che ospita in NAS di casa: gli strumenti messi a disposizione da TrueNAS sono veramente efficaci e semplici da utilizzare.

La macchina virtuale in questione non necessita di eccessive risorse… le basta una CPU Dual Core, 1GB di RAM, uno storage da 16GB e una scheda di rete con bridge (in modo da essere direttamente integrata nella mia LAN domestica, e quindi con un indirizzo IP raggiungibile da tutti gli altri dispositivi nella stessa LAN).

Per amore di leggerezza, il sistema operativo che ho caricato nella macchina virtuale è una distribuzione Linux estremamente leggera: DietPi.
Questa “distro” è stata concepita per il single board computer più famoso al mondo, il Raspberry Pi, ma ne esistono tante altre incarnazioni che ben si adattano ad una vasta varietà di dispositivi.

Installiamo e Configuriamo CUPS

Una volta pronta la macchina virtuale, alla quale deve essere assegnato un indirizzo IP statico nella LAN (di solito lo faccio impostando una reservation nel server DHCP), si deve pasare ad installare tutti i pacchetti software necessari: CUPS, il tool HPLIP e i driver per stampanti HP (hpcups, hpijs e gutenprint nel mio caso).
Per raggiungere lo scopo, con DietPi (e tutte le distribuzione basate su Debian), si utilizza il comando apt usando un utente con i privilegi amministrativi oppure l’utente root (trattandosi di un server non vi è interfaccia grafica):

Bene! Ora bisogna solo configurare il server di stampa e aggiungere la propria stampante… Nulla di più facile!!!
Basta aprire il proprio web browser preferito e collegarsi all’indirizzo IP della macchina virtuale, specificando la porta 631 al termine dell’indirizzo:

Da qui, facendo click sulla scheda Administration, si dovranno impostare le opzioni per la condivisione delle stampanti (anche attraverso Internet se vogliamo stampare sulla nostra stampante anche quando siamo lontani da casa) e confermare le modifiche con il pulsante “Change Settings“:

Infine, sempre dalla scheda Administration, bisognerà aggiungere la stampante (o le stampanti), seguendo la procedura guidata, e ricordandosi al termine di renderle stampanti condivise:

Nel mio caso specifico, poi, ho aggiunto a CUPS la stampante che già avevo condivisa nella mia LAN, in quanto già collegata ad un server di stampa, che però, ricordo, è privo di funzioni cloud; tuttavia, la procedura è la medesima se si vuole collegare alla macchina virtuale una qualsiasi stampante USB non dotata di funzioni smart (bisogna solo fare in modo che la stampante USB sia collegata fisicamente al server della macchina virtuale e che sia resa accessibile a quest’ultima tramite l’hypervisor da voi utilizzato).

Ecco! Il gioco è fatto, per lo meno per la condivisione della stampante nella propria LAN… Ma ricordiamoci che lo scopo del gioco è rendere la stampante condivisa attraverso Internet!!!

Configuriamo un Reverse Proxy con Nginx per l’Accesso da Remoto

La soluzione definitiva per raggiungere la stampante attraverso Internet si ottiene grazie all’ottimo web server Nginx, configurato in modalità reverse proxy (ovviamente sempre dopo averlo installato con il comando apt :p ).

Non vi voglio però tediare oltre con una serie infinita di technicalities troppo specifiche per il mio caso… però sappiate che ora ho accesso alla stampante da ogni parte del mondo (a patto che sia accesa, e che si conoscano le credenziali di accesso :p )… non resta che provare se tutto funziona al momento di stampare… ma ve ne parlerò in un altro breve post dopo aver fatto i test!!!

Speriamo di aver fatto anche stavolta un buon lavoro 🙂

Progetta un sito come questo con WordPress.com
Comincia ora