L’aggiornamento del sistema operativo, kernel compreso, senza riavvio


Se c’è una cosa che i sistemi GNU/Linux erano decenni avanti rispetto alla controparte Windows è la gestione del patching.
Un sistemista Windows passava nottate intere a fare il cosidetto WSUS, ossia l’applicazione delle patch di sicurezza e funzionalità, di Windows; senza contare che ogni tot numero di patch installate si doveva riavviare il sistema.

Organizzandosi in una pianificazione trimestrale o semestrale, si finiva per installare oltre la decina di aggiornamenti alla volta riguardanti solo il software Microsoft: Office, Silverlight, .Net Framework, SQL server, Exchange e ovviamente anche quelli relativi il sistema operativo. Poi rimanevano i programmi di terze parti come Adobe, Java. Un incubo.

Con le distribuzioni GNU/Linux tutto è molto più semplice, l’operazione di upgrade è molto rapida: potendo utilizzare un repository software interno, la discriminante la fa la CPU del server e la velocità del disco rigido. Un tempo sicuramente inferiore a quello del patching di Windows a parità di hardware.
Quindi il sistemista Linux rispetto a quello Windows specialmente per sistemi critici da presidiare, lavora meno ore.

L’unica cosa che probabilmente era migliorabile nelle distribuzioni del pinguino era la necessità di dover riavviare la macchina dopo l’installazione di un nuovo kernel.
Un unico riavvio, a fonte dei multipli riavvii necessari a Windows, che però era migliorabile ed eliminabile con un po’ di sforzo; tutto questo per portare l’uptime dei sistemi verso quell’agognato 99,99% su base annua che significa un downtime complessivo di poco inferiore ai 53 minuti all’anno. Possibile?

Oggi, nel 2019, installare le patch di sicurezza e di funzionalità in sistemi GNU/Linux è possibile anche senza riavvio, pur aggiornando il kernel.

Storicamente la prima soluzione, nata circa 10 anni fa, che consente di aggiornare il kernel di un server Linux senza interrompere i processi del sistema e senza riavvio, è Ksplice.
La tecnologia Ksplice fu acquisita da Oracle nel 2011 e implementata, a pagamento, sulla distribuzione Oracle Linux, derivata da Red Hat. Questo ha fatto sì che i maggiori produttori di distribuzioni Linux commerciali Red Hat e SuSE si mettessero in corsa per trovare una loro soluzione. Così sono nati Kpatch (di Red Hat) e Kgraph (di SuSE).
Dalle due soluzioni, ovviamente opensource, come sintesi nel 2016 è nata la versione di Canonical Ubuntu chiamata Livepatch.
Livepatch è gratuita per uso personale fino a 3 sistemi ed è attivabile tramite registrazione sul sito di Ubuntu: https://auth.livepatch.canonical.com/. In seguito è arrivata KernelCare di CloudLinux che ha permesso di attivare la tecnologia su CentOS, Debian e altre distribuzioni.

It’s time for back up!

Fermati un attimo, è il momento di fare un backup!

Quando hai fatto l’ultima volta il backup dei tuoi dati, foto/video o del tuo sito web? Il backup che hai fatto è al sicuro su un altro disco, vero?

Non dimentichiamoci di fare un backup dei nostri dati più importanti per cui questo può essere un buon momento per fare un salvataggio e messa in sicurezza delle tue informazioni.

Facciamo il backup di una cartella con Linux

Se usi linux puoi montare un disco usb esterno al tuo PC/server e lanciare un comando simile:

# cd /var/www
# tar --exclude='./logs' -jcf /var/backup/backup-mio-sito_2019_ottobre.tar.bz2 .

Questo comando consente di creare un archivio compresso chiamato backup-mio-sito_2019_ottobre.tar.bz2 che sarà posto in /var/backup/, questo archivio contiene il contenuto di /var/www e sottocartelle. Il comando inoltre ci consentirà anche di escludere il contenuto della directory /var/www/logs, ottima idea escludere magari file già salvati in backup precedenti.

Installare influxdb su Debian Buster

E’ alquanto facile installare influxdb su Debian Buster, probabilmente più semplice che installare MySQL.

Basta infatti installare i pacchetti:

# apt install influxdb influxdb-client

Ed è già stato fatto il più. A questo punto basta collegarsi ad influxdb, via commanline lanciando il comando:

influx

Per creare un database, un utente con relativa password e autorizzarlo alla gestione del suo DB, lanciare questi comandi:

CREATE DATABASE mydatabase
CREATE USER myuser WITH PASSWORD ‘.SecretPWD’
GRANT ALL ON mydatabase TO myuser

Notare che non sono terminati con il punto e virgola, se non viene restituito alcun messaggio significa infatti che sono andati a buon fine.

Per uscire dalla command line di influxdb, basta usare il comando EXIT.

Una volta inseriti i dati nel DB è possibile fare delle semplici query usando i comandi:

USE mydatabase
SHOW SERIES FROM mydatabase

Dove mydatabase è il database.

Monitoriamo la qualità dell’aria con Raspberry Pi!

La lotta al riscaldamento globale e al cambiamento climatico passa anche per l’informatica, la sensoristica e la robotica!
Grazie al Raspberry Pi Zero Wireless, la sensor board Enviro Plus (Pimoroni Enviro+) e il rilevatore di particelle PMS5003 è possibile costruire la propria stazione di raccolta di dati sull’inquinamento ambientale.

Questo articolo si rifà ai tutorial di Pimoroni:

L’ideale è quello di riutilizzare un Raspberry Pi che abbiamo a disposizione purchè si scelga un modello versione 2 in su, perchè bisogna sfruttare la GPIO da 40 pin e non quella 26 pin, presente su Raspberry Pi 1.
Se non possedete nessun Raspberry Pi compatibile, potete acquistare la versione Raspberry Pi Zero Wireless con i pin saldati in modo da dover soltanto innestare il modulo sensore Enviro Plus.
La sensor board Enviro Plus, prodotta e commercializzata dalla britannica Pimoroni, mette a disposizione diversi sensori per la raccolta dei dati tra cui temperatura, pressione, umidità, luce, prossimità, rumore, riduzione del monosido di carbonio, ossidazione del diossido di azoto, ammoniaca, idrogeno, etanolo e idrocarburi.
Aggiungendo al Pimoroni Enviro+, il rilevatore di particolato PMS5003 è possibile rilevate anche le famose PM 10 e altre microparticelle.

Procuriamoci una scheda microSD da 16 GB, anche 8GB sono sufficienti, e carichiamo il software Raspbian. E’ sufficiente prelevare la versione Raspbian Buster Lite che non mette a disposizione un desktop ed è più compatta.
L’immagine può essere scritta sulla microSD utilizzando un software come balena Etcher. Se non disponete di un adattatore miniHDMI per collegare un monitor al vostro Raspberry Pi Zero Wireless, potete seguire la procedura di questo video.

Una volta che il Raspberry Pi è raggiungibile via rete (wireless o LAN) è necessario installare alcuni software e componenti nonchè installare gli ultimi aggiornamenti del sistema operativo.

sudo apt update
sudo apt upgrade

sudo apt install git spidev

sudo pip install requests

A questo punto si può clonare, ossia copiare, da Internet la cartella degli script già pronti sul proprio Raspberry Pi.

git clone https://github.com/pimoroni/enviroplus-python
cd enviroplus-python
sudo ./install.sh

Al termine dell’installazione è necessario riavviare il Raspberry Pi.

sudo reboot

Una volta riavviato il Raspberry Pi si possono lanciare gli script in Python già predisposti che si trovano nella propria home:

cd enviroplus-python/examples
ls

Per ulteriori informazioni, rimando al tutorial:
https://learn.pimoroni.com/tutorial/sandyj/getting-started-with-enviro-plus

Se vogliamo contribuire al database di raccolta dati sulla qualità dell’aria Luftdaten, possiamo registrarci seguendo le note dell’articolo https://learn.pimoroni.com/tutorial/sandyj/enviro-plus-and-luftdaten-air-quality-station

Se ci sono dubbi, fatemi sapere!

Installare Tomcat su CentOS 8

CentOS 8 è l’ultima versione di CentOS uscita appena qualche giorno fa. Vediamo in questo articolo come instalare Tomcat su CentOS 8.

Tomcat è il famoso application server per eseguire applicazioni, war, scritte in Java.

La prima cosa da fare, se non l’avete già fatto, è installare il java developer kit (o JDK) su CentOS. Si può optare per la versione openJDK oppure per la versione ufficiale di Oracle.

In questo tuttorial scegliamo la versione open. A sua volta possiamo scegliere fra openJDK 8 e l’ultima versione LTS openJDK 11. La scelta va fatta in base alle vostre esigenze e al vostro codice.

Continua a leggere

PMBOK vs PRINCE 2 vs AGILE

Rapida carrellata sui metodi di project management più diffusi.

PMBOK lo possiamo definire come uno standard, PRINCE2 come una serie di guide linea mentre AGILE come una metodologia snella.

La gestione di un progetto (project management) in qualsiasi ambito della nostra vita, lavorativo o privato, non è una questione da poco.
Gestire di un progetto non è facile specialmente se coloro che sono coinvolti non hanno un’attitudine per l’ordine, la precisione e il rispetto delle scadenze.
Alcuni si trovano con una dote innata per tenere tutto sotto controllo e portare le cose al termine ma spesso ci troviamo in situazioni in cui siamo insabbiati, anche chi è piuttosto bravo in questi aspetti.
Ecco che a partire dagli anni ottanta, sono nati degli standard e raccolta di guide linea (tipicamente dal gusto anglosassone) per regolare la gestione di un progetto.

La Project Management Body of Knowledge (PMBOK) è una guida pubblicata dal Project Management Institute (PMI) ossia uno standard, nato degli Stati Uniti, per tracciare un percorso per la realizzazione di un progetto attraverso una sequenza di processi avendo ben chiaro degli aspetti (aree di conoscenza) come il rispetto dei tempi, lo sviluppo delle risorse umane, la valutazione dei rischi, contenimento dei costi…

Dall’altra parte dell’Atlantico, nel Regno Unito è nato PRINCE (PRojects IN Controlled Environments) e la sua evoluzione PRINCE2. PRINCE2 è una raccolta di guide linea riguardanti il processo di nascita, sviluppo e conclusione di un progetto. A differenza di PMBOK che si focalizza molto sul “come” fare, PRINCE2 è orientato al “cosa” fare; non fornisce degli strumenti ma piuttosto indica un percorso da seguire con delle demarcazioni ben precise.

Sia PMBOK sia PRINCE2 sono raccolti in guide e libri i cui concetti sono ben codificati tanto da avere delle rispettive certificazioni: sì, ci si può certificare (in diversi gradi) come esperto in PMBOK e PRINCE2.

E poi c’è AGILE. Agile è un metodo di gestione dei progetti nato in occasione della pubblicazione del manifesto Agile (Manifesto for Agile Software Development) e raccoglie un piccolo elenco di aspetti che sono importanti:

Gli individui e le interazioni, più che i processi e gli strumenti
Il software funzionante, più che la documentazione esaustiva
La collaborazione col cliente, più che la negoziazione dei contratti
Rispondere al cambiamento, più che seguire un piano

Questi principi che negli anni si sono evoluti, ma non in maniera rigida e codificata, sono il riferimento per un project management molto snello fatto di rapide e ben cadenzate release, ottima metodologia per rilasciare software in ambienti molto dinamici ma forse non così adatta per l’organizzazione di un matrimonio!

Installare Nagios su Debian Buster


Nagios è un programma per il monitoraggio dell’infrastruttura come server, applicazione, database, log, banda e anche prestazioni del sistema.
Da leader di mercato, Nagios è un software molto popolare anche se non è così semplice da usare, tuttavia l’installazione di Nagios è abbastanza semplice.
In questo articolo andremo ad installare Nagios 4 su Debian Buster.

In questo tutorial si assume che sia stato installato il sistema in modalità minimal. A questo punto occorre aggiunger un IP statico al sistema o riservare un IP sul proprio DHCP per il server Nagios.
L’ultima cosa da fare, prima di procedere, è attribuire permanentemente un hostname di tipo fully qualified.

Aggiorniamo il sistema operativo al’ultima versione

apt update && apt upgrade

Installiamo alcuni tool che ci aiuteranno in seguito:

apt install unzip zip net-tools

Installiamo HTTP Deamon (Apache 2) e PHP

apt install apache2 libapache2-mod-php php7.3

Abilitiamo dei monduli di Apache necessari all’esecuzione di Nagios

a2enmod rewrite headers cgi auth_digest authz_groupfile

Installiamo i pacchetti di Nagios

apt install nagios4

Durante l’installazione quando appare la seguente finestra, rispondiamo di NO.

Riavviamo Nagios

service apache2 restart

Apriamo la pagina web di Nagios

http://nagios-ip-address/nagios4/

dove nagios-ip-address è l’ip statico del server Nagios o il suo fully qualified domain name.

Mostra lo spazio disco occupato su Linux!

Uno dei mestieri dell’amministratore di sistemi o ad ogni modo di un utente Linux consapevole è quello di gestire lo spazio disponibile sul proprio disco rigido (o SSD).

In Windows i tool visuali aiutano molto ad avere una chiara visione di ciò che occupa spazio veramente, citando Treesize per esempio gratuito e famoso.

In Linux non possono mancare alternative, persino a riga di comando!

Il comando classico per verificare lo spazio utilizzato su un disco in Linux è du. Esso mostra la dimensione dei file contenuti nella cartella e nelle sottocartelle dove è stato lanciato, con unità di misura 1024 bytes

Ncdu

ncdu è uno strumento minimale che consente di ottenere una lista ordinata dei file e cartelle con dimensioni maggiori partendo dalla cartella in cui è stato lanciato il comando, per esempio nella /root, il tutto in maniera ricorsiva.

root@java:~# ncdu

Se ncdu non è installato sul nostro sistema, possiamo installarlo facilmente senza dipendenze da soddisfare.

# apt install ncdu

Per controllare tutto il contenuto del disco, basta salire fino alla radice e lanciare il comando.

In alternativa a ncdu, c’è diskus.

Diskus

Diskus non ha interfaccia grafica, ma consente di avere molto più velocemente, rispetto al classico du, lo spazio utilizzato da un disco o da una cartella. Diskus è scaricabile da github perchè al momento non è disponibile fra i pacchetti di Debian e Ubuntu (chissà forse in futuro).

wget "https://github.com/sharkdp/diskus/releases/download/v0.5.0/diskus_0.5.0_amd64.deb"
sudo dpkg -i diskus_0.5.0_amd64.deb

Lanciando il comando diskus senza opzioni ci comparirà il totale dello spazio occupato su disco.

Per analizzare lo spazio occupato da una directory ben specifica si può usare il comando seguito dal path.

SMB1 è disabilitato di default da Samba 4.11

Forse una notizia che non fa molto clamore e può passare inosservata, salvo quando si presenterà l’occasione di usare Samba 4.11 con qualche vecchia versione di Windows.
E’ proprio così. A partire dalla versione 4.11 di Samba, la suite di strumenti per interagire con il mondo di Windows, non sarà possibile accedere ad una cartella condivisa utilizzando il vetusto protocollo SMB1 (altrimenti detto SMBv1), come è scritto nel documento di presentazione di samba-4.11.0rc1.
Quindi, di default, sarà possibile accedere solo a share presentate da Windows Vista e Windows Server 2008 in poi.
La scelta non è senza polemiche, però ci sono ragioni alquanto valide per procedere in tal senso: Windows 10, a partire dal Fall Creators Update versione 1803, ha già disabilitato SMB1 e la sua riattivazione è fattibile sì, ma va fatta a mano.
SMB1 è ormai presente solo su sistemi obsoleti, ossia la cui manutenzione è cessata da anni: Windows XP, Windows Server 2003: tutti gli altri sistemi più recenti supportano almeno SMB2.
Ad eccezione dei sistemi Microsoft obsoleti, il protocollo SMB1 però è ancora utilizzato su vecchi NAS e questo è uno dei problemi che possono interessare l’utente domestico.
Chi deve ancora utilizzare SMB1 dovrà attivarlo a mano usando per esempio --option='client min protocol=NT1', tuttavia il passaggio perlomeno a SMB2 è auspicabile al fine di evitare i vari malware tipo Cryptolocker, WannaCry.

Installare Kubernetes in Debian 9

Kubernetes è uno strumento di gestione (orchestrazione) di container che consente l’amministrazione di gruppi di container dislocati anche su più server.
Esistono tecnologie simili a Kubernetes, ma esso è diventato un riferimento di mercato e uno dei prodotti meglio documentati e semplici da utilizzare.
Kubernetes si avvale di Docker, e per questo motivo, prima di installare Kubernetes è conveniente installare Docker CE (Community Edition).

Continua a leggere