Questo tutorial ti guiderà nella costruzione e nella configurazione di un dispositivo che ti permetterà di gestire server o workstation da remoto indipendentemente dallo stato del sistema operativo o dal fatto che ne sia installato uno.
Si tratta di un vero accesso a livello hardware che non dipende da porte, protocolli o servizi remoti!
In pratica un alternativa alle seguenti soluzioni:
iLO (Integrated Lights-Out ): è una tecnologia di gestione proprietaria integrata nei prodotti HPE che consente il controllo remoto dell’accesso ai server ProLiant, anche in mancanza di connessione alla rete principale dell’organizzazione (da qui il nome “Lights Out”).
iDRAC (Integrated Dell Remote Access Controller): progettato per la gestione sicura dei server in locale e da remoto, gli amministratori IT implementano, aggiornano e monitorano i server PowerEdge ovunque e in qualsiasi momento.
Lenovo XClarity Administrator: è possibile aprire una sessione di controllo remoto su un server ThinkSystem o ThinkAgile gestito come se ci si trovasse in una console locale. È possibile utilizzare la sessione di controllo remoto per eseguire operazioni di alimentazione e montare logicamente un’unità locale o di rete.
iRMC S5 (Remote Management Controller): integrato in ServerView, i clienti possono garantire un ambiente IT sicuro e protetto. La gestione remota fornisce il monitoraggio e la gestione dei server Fujitsu PRIMERGY e PRIMEQUEST indipendentemente dallo stato del sistema, anche in caso di funzionamento out-of-band
INFO SU PIKVM
PiKVM è un dispositivo KVM over IP basato su Raspberry Pi, open source, ricco di funzionalità, di livello produttivo.
PiKVM consente di accendere/spegnere o riavviare il computer, configurare UEFI/BIOS, reinstallare il sistema operativo utilizzando il CD-ROM virtuale o l’unità flash e molto altro ancora! Tutto funziona come se si stesse lavorando direttamente su un sistema remoto.
Facile da costruire: un sistema operativo pronto all’uso e un ambiente di compilazione intuitivo. L’hardware può essere realizzato in mezz’ora e senza saldatura.
Latenza: video molto bassa~100 millisecondi di latenza video. Questo è il ritardo più piccolo di tutte le soluzioni esistenti.
Interfaccia utente Web e VNC extra leggeri: Nessun strano client proprietario. Niente brutte applet. Basta usare il tuo browser preferito per connetterti al PiKVM. Nemmeno i plugin flash! Ah, e anche VNC è supportato.
Tastiera e mouse: L’utilizzo del mouse funziona direttamente nel browser. L’emulatore di tastiera supporta la visualizzazione dello stato dei LED della tastiera.
Unità di archiviazione di massa: Su Raspberry Pi 4 e Zero 2 W, PiKVM può emulare un CD-ROM virtuale o un’unità flash. È possibile caricare un’immagine live per avviare il server collegato.
Gestione dell’alimentazione ATX: Con un circuito molto semplice che può essere assemblato su una breadboard, il pulsante di accensione del server collegato può essere controllato utilizzando le intestazioni dei pulsanti ATX sulla scheda madre.
Sicurezza: PiKVM può essere aperto a Internet e nessuno avrà accesso senza l’autorizzazione. SSL viene utilizzato per proteggere il traffico dall’intercettazione da parte di terzi.
Monitoraggio locale: PiKVM monitora lo stato di salute della scheda Raspberry Pi e ti avviserà se fa troppo caldo o non riceve energia sufficiente.
Gestione GPIO: È possibile controllare i relè GPIO e USB tramite l’interfaccia web. L’interfaccia estensibile ti consente di ricavarne qualsiasi cosa.
Il sistema operativo PiKVM è basato su Arch Linux ARM e può essere personalizzato per qualsiasi esigenza. Migliaia di pacchetti binari precompilati sono al tuo servizio e può essere aggiornato con un solo comando!
Filesystem di sola lettura: Per impostazione predefinita, il sistema operativo viene eseguito in modalità di sola lettura, come dovrebbe fare un sistema embedded. In questo modo si evitano danni alla scheda di memoria a causa di un’improvvisa interruzione di correntetage.
Server VNC: È possibile accedere al server gestito e al relativo BIOS utilizzando un normale client VNC che supporta la compressione JPEG.
IPMI BMC/SoL e Redfish: Utilizzate ipmitool, ipmiutil o qualsiasi infrastruttura di rete esistente che supporti IPMI per gestire l’alimentazione del server e l’accesso alla porta seriale tramite LAN. Anche Redfish e redfishtool sono supportati.
Wake-on-LAN: PiKVM può essere configurato per alimentare un server gestito utilizzando WoL. Questa funzione sarà disponibile nel menu Web.
È possibile configurare più PiKVM per l’utilizzo di un servizio di autorizzazione comune. PAM e i suoi ricchi meccanismi di autorizzazione possono essere utilizzati anche per integrare PiKVM nel tuo Infrastruttura di autenticazione.
Script macro: Se è necessario eseguire azioni ripetitive sul server collegato (o su più server diversi), Una macro può essere registrata con le azioni della tastiera e del mouse e può essere riprodotta più volte.
Al seguente link trovate tutta la documentazione relativa al progetto PiKVM
HARDWARE DA ACQUISTARE
Per la costruzione del nostro KVM over IP è necessario acquistare il seguente hardware:
1 x Raspberry Pi 4 Modello B (4GB o 2GB) – 67,53 Euro
1 x Alimentatore USB-C 5.1V 3A – Bianco – per Raspberry Pi 4 Modello B (1873421) – 8,51 Euro
1 x SanDisk Ultra Scheda di Memoria MicroSDHC da 16 GB, con A1 App Performance, Velocità fino a 98 MB/sec, Classe 10, U1, FFP – 25,50 Euro
1 x Geekworm KVM-A3 – Kit per Raspberry Pi 4 Open-Source KVM Over IPca – 81,89 Euro
1 x HDMI KVM Switch USB 3.0 4 porte con Hotkey 4K 60Hz 18Gbps Condividi 4 computer con una tastiera Mous HDR D-olby Vision HDCP2.2 Telecomando USB3.0 CableX4 – 159,99 Euro
1 x Cavo Micro USB in Nylon intrecciato 1M Carica rapida – 10,99 Euro
1 x Lettore di schede USB 3.0 2 in 1 SD Card Reader per SD/Micro SD/TF/SDHC/SDXC/MMC, compatibile con Windows/Mac/OS – 13,99 Euro
Totale Spesa: 67,53 + 8,51 + 25,50 + 81,89 + 159,99 + (11,99×4) + 10,99 = 416,36 Euro
ATTENZIONE: per comodità ho preso gli artiucoli su Amazon ma è possibile acquistare il tutto su siti differenti magari a prezzi inferiori
ASSEMBLAGGIO KVM OVER IP
Aprire la confezione Geekworm KVM-A3 – Kit per Raspberry Pi 4
Verificare che all’interno sia presente quato mostrato nell’immagine sovrastante
Nello specifico la scheda X630-A3 che va montata sulla Raspberry
Successivamente montare l’adattatore HDMI X630
Al termine dell’assemblaggio dovremmo avere una situazione come mostrato nell’immagine sovrastante
Ulitmo step è il montagio della scocca in metallo per proteggere il tutto.
Per aiutarvi nel montaggio passo passo aprire il seguente video
DOWNLOAD E INSTALLAZIONE DI RASPBERRY PI IMAGER
Raspberry Pi Imager
è il modo semplice e veloce per installare Raspberry Pi OS e altri sistemi operativi su una scheda microSD, pronta per l’uso con il tuo Raspberry Pi.
Richiamare da un qualsiasi browser il seguente link:
https://www.raspberrypi.com/software/
Scaricare il software Raspberry Pi Imager in base al sistema operativo utilizzato quindi installarlo.
ATTENZIONE: predisporre il lettore USB per SD/Micro
DOWNLOAD E INSTALLAZIONE DI PIKVM
Richiamare da un qualsiasi browser il seguente link:
Cliccare su Download
Cliccare su DIY PiKVM platforms quindi See here
Da questa pagine è possibile scaricare l’immagine. Nel mio caso (e nel vostro se avete scelto di acquistare l’hardware elencato precedentemente) scaricare l’immagine PiKVM V3 HAT BOX Image, OLED/FAN preactivated
Eseguire Raspberry Pi Imager quindi cliccare su SCEGLI DISPOSITIVO
Selezionare Raspberry Pi 4 come mostrato nell’immagine sovrastante
Cliccare SCEGLI S.O.
Andare al fondo del menù quindi selezionare l’opzione Use custom come mostrato nell’immagine sovrastante
Selezionare l’immagine scaricata in precedenza quindi cliccare Open
Cliccare su SCEGLI SCHEDA SD
Selezionare la scheda SD collegata al PC
Cliccare Avanti
Cliccare MODIFICA IMPOSTAZIONI
Da questa schermata è possibile preconfigurare:
Nome Host della Raspberry
User e password di accesso
Configurare il WIFI
Impostare il fuso orario e la lingua della tastiera
Cliccare quindi SERVIZI
Da questa schermata è possibile preconfigurare:
Utilizzo della password per l’autenticazione
Utilizzo della chiave pubblica per l’autenticazione
Cliccare quindi OPZIONI
In questa schermata lasciare tutto invariato quindi cliccare SALVA
Cliccare SI per proseguire
Cliccare SI per eliminare i dati dalla scheda SD
Attendere qualche istante per la preparazione alla scrittura della scheda SD
Attendere il termine della scrittura
Attendere il termine della verifica
Cliccare CONTINUA e rimuovere la scheda SD dal lettore
Inserire la scheda SD nella Raspberry quindi alimentarla
Se è tutto OK dovremmo visualizzare sul mini display le info relative all’indirizzo IP e al consumo istantaneo della CPU e della memoria
CONFIGURAZIONE DEL PIKVM
Connettere la Raspberry ad una rete con DHCP attivo in modo che acquisisca un Indirizzo IP.
Dal monitor OLED è possibile visualizzare l’indirizzo IP assegnato
Richiamare da un qualsiasi browser:
https://IP-RASPBERRY
Inserire le seguenti credenziali di default
USER: admin
PASSWORD: admin
Cliccare Login
Selezionare l’opzione Terminal
Se è tutto OK dovremmo visualizzare la console del nostro PiKVM
La prima cosa da fare è cambiare le password all’utente root e all’utente admin della Web GUI
Per cambiare le password collegarsi in SSH alla Raspberry
Abilitare la modifica del filesystem con il comando
0 |
rw |
Dovremmo visualizzare il seguente output:
0
1
2
3
|
+ mount -o remount,rw /
+ mount -o remount,rw /boot
+ set +x
=== PiKVM is in Read-Write mode ===
|
Per modificare la password di root digitare il comando:
0 |
passwd root
|
Di seguito l’output:
0
1
2
|
New password:
Retype new password:
passwd: password updated successfully
|
Inserire due volte la nuova password
Per modificare la password di admin della Web GUI digitare il comando:
0 |
kvmd-htpasswd set admin
|
Di seguito l’output quindi inserire due volte la password:
0
1
2
3
4
5
6
7
8
9
10
|
[root@pikvm kvmd-webterm]# kvmd-htpasswd set admin
Password:
Repeat:
# Note: Users logged in with this username will stay logged in.
# To invalidate their cookies you need to restart kvmd & kvmd-nginx:
# systemctl restart kvmd kvmd-nginx
# Be careful, this will break your connection to the PiKVM
# and may affect the GPIO relays state. Also don't forget to edit
# the files /etc/kvmd/{vncpasswd,ipmipasswd} and restart
# the corresponding services kvmd-vnc & kvmd-ipmi if necessary.
|
A questo punto è possibile mettere in Read Only il filesystem con il comando:
0 |
ro |
Dovremmo visualizzare il seguente output:
0
1
2
3
|
+ mount -o remount,ro /
+ mount -o remount,ro /boot
+ set +x
=== PiKVM is in Read-Only mode ===
|
CONFIGURAZIONE DEL NETWORK DA DHCP A IP STATICO
Per la configurazione del network basta editare il file eth0.network
Abilitare la modifica del filesystem con il comando
0 |
rw |
Quindi editare il file eth0.network con il comando:
0 |
nano /etc/systemd/network/eth0.network
|
Dovremmo visualizzare la seguente configurazione:
0
1
2
3
4
5
6
7
8
9
10
11
|
[Match]
Name=eth0
[Network]
DHCP=yes
DNSSEC=no
[DHCP]
# Use same IP by forcing to use MAC address for clientID
ClientIdentifier=mac
# https://github.com/pikvm/pikvm/issues/583
RouteMetric=10
|
Sostituire tutto con la seguente configurazione:
0
1
2
3
4
5
6
7
8
|
[Match]
Name=eth0
[Network]
Address=<yourip>/<your cidr mask IE 24>
Gateway=<your gateway>
DNS=<your dns>
DNS=<your backup dns>
DNS=<your backup dns>
|
Salvare e chiudere il file di configurazione
Riavviare PiKVM con il comando:
0 |
reboot |
AGGIORNAMENTO DI PIKVM OS
Per aggiornare il PiKVM accedere con l’utenza di root quindi eseguire il comando:
0 |
pikvm-update
|
Se dopo l’esecuzione del comando pikvm-update visualizziamo il seguente errore:
0 |
bash: pikvm-update: command not found
|
È molto probabile che la versione del sistema operativo sia vecchia. E’ possibile aggiornare il sistema operativo con i seguenti comandi:
0
1
2
3
|
[root@pikvm ~]# rw
[root@pikvm ~]# pacman -Syy
[root@pikvm ~]# pacman -S pikvm-os-updater
[root@pikvm ~]# pikvm-update
|
Dalla prossima volta sarà possibile aggiornare il sistema operativo con il comando pikvm-update.
COLLEGAMENTO CONFIGURAZIONE DELLO SWITCH KVM
Di seguito uno schema di collegamento dello switch KVM al Raspberry
Collegare tutto come da schema quindi alimentare sia il Raspebrry che lo Switch KVM
- Collegare il cavo USB-C dalla porta OTG del Raspberry Pi alla porta USB 3 dell’interruttore ezCoo sulla parte anteriore o alla porta USB 1 sul retro dello switch. NOTA: Se questo cavo è collegato alla porta della tastiera (USB 2) dell’interruttore ezCoo, il mouse non sarà presente.
- Collegare l’uscita HDMI dall’interruttore ezCoo al Raspberry Pi CSI-2 all’ingresso HDMI. Altri utenti hanno segnalato che i dongle USB dell’encoder HDMI funzionano correttamente.
- Collega un cavo da USB-A a Micro USB dal Raspberry Pi alla porta di gestione sul lato dello switch ezCoo.
- Collegare i cavi host, USB e HDMI dallo switch ezCoo alle macchine da gestire secondo le istruzioni dello switch.
A questo punto lo switch KVM dovrebbe essere presente come dispositivo sul PiKVM.
Richiamare da un qualsiasi browser:
https://IP-RASPBERRY
Inserire le credenziali di accesso qundi cliccare Login
Cliccare KVM
Se abbiamo collegato tutto correttamante dovremmo visualizzare la console del Server collegato come mostrato nell’ìimmagine sovrastante
Lo switch gestito ezCoo può essere controllato da PiKVM per consentirgli di connettersi a più host. Uno scenario tipico è un singolo dispositivo PiKVM in grado di controllare e passare da un host all’altro o da un server all’altro utilizzando lo switch ezCoo. Gli elementi dell’interfaccia utente possono essere aggiunti all’elenco a discesa GPIO per consentire il passaggio da un host all’altro dalla pagina Web PiKVM.
Per abilitare questa funzione collegarsi in SSH al Raspberry ed individuare i dispostivi USB collgati con il comando:
0 |
ls /dev/ttyUSB*
|
Se i collegamenti sono OK dovremmo visualizzare il seguente output:
0 |
/dev/ttyUSB0
|
Abilitare la modifica del filesystem con il comando
0 |
rw |
Quindi editare il file override.yaml con il comando:
0 |
nano /etc/kvmd/override.yaml
|
Cancellare tutto il contenuto del file ed inserire il seguente listato:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#>
# >
# Override KVMD settings. >
# >
# * https://docs.pikvm.org/first_steps/#structure-of-configuration-files >
# >
# This file uses YAML syntax. All overridden parameters will be applied >
# AFTER other configs and "!include" directives, and BEFORE validation. >
# Values should be combined under common sections. >
# >
#>
#
#
# Wrong #
#
kvmd:
gpio:
drivers:
ez:
type: ezcoo
protocol: 2
device: /dev/ttyUSB0
scheme:
ch0_led:
driver: ez
pin: 0
mode: input
ch1_led:
driver: ez
pin: 1
mode: input
ch2_led:
driver: ez
pin: 2
mode: input
ch3_led:
driver: ez
pin: 3
mode: input
ch0_button:
driver: ez
pin: 0
mode: output
switch: false
ch1_button:
driver: ez
pin: 1
mode: output
switch: false
ch2_button:
driver: ez
pin: 2
mode: output
switch: false
ch3_button:
driver: ez
pin: 3
mode: output
switch: false
view:
table:
- ["#Host 1", ch0_led, ch0_button]
- ["#Host 2", ch1_led, ch1_button]
- ["#Host 3", ch2_led, ch2_button]
- ["#Host 4", ch3_led, ch3_button]
|
Salvare e chiudere il file di configurazione
NOTA BENE: Modificare Input X con il nome che si intende visualizzare nella Web Gui di PiKVM
Tornare quindi alla modalità di sola lettura con il comando:
0 |
ro |
Quindi riavviare il servizio kvmd con il comando:
0 |
systemctl restart kvmd
|
Ricollegarsi alla Web Gui richiamando il link:
https://IP-RASPBERRY
Se è andato tutto a buon fine dovremmo visualizzare un nuovo menù chiamato GPIO con i 4 Host collegati allo switch KVM
A questo punto per visualizzare la console di un determinato host basterà cliccare su click.
OPZIONI DI PIKVM
In questa sezione analizzerò tutte le opzioni presenti nell’interfaccia web dei PiKVM
MENU’ SHORTCUT
Attualmente le scorciatoie da tastiera sono disponibili solo per Windows e sono le seguenti:
Sopra un immagine che mostra tutte le scorciatoie da tastiera utilizzabili
MENU’ TEXT
In questa sezione è possibile incollare del testo al Target o utilizzando l’OCR, è possibile copiare dal target. L’OCR può commettere errori, rivedere il tutto prima di finalizzare
In questa sezione è possibile caricare o scaricare gli scripts.
Nella sezione in alto è possibile incollare il testo.
MENU’ MACRO
In questa sezione è possibile programmare delle macro
Come è possibile vedere dal menù Macro è possibile registrare le azioni e uplodare degli scripts
MENU’ DRIVE
In questo menù è possibile agganciare Immagini ISO emulando un CD-ROM o un unità Flash
Per caricare un immagine ISO cliccare su Select Image to upload
Cliccare su Scegli il file
Selezionare la ISO da caricare quindi cliccare Apri
Cliccare Upload
Attendere il termine del caricamento dell’immagine sulla Raspberry
ATTENZIONE: in questa fase non chiudere il browser. Se la velocità di upload è bassa provare a chiudere la finestra di stream del video.
Al termine dell’upload cliccare sulla freccia in basso come mostrato nell’immagine sovrastante
Selezionare l’immagine ISO da agganciare
Cliccare Connect drive to Server
Se il collegamento è andato a buon fine dovremmo vedere una schermata come quella sovrastante
In base al server/PC premere il tasto per le impostazioni di Boot. Nel mio caso essendo un PC Dell ho premuto il tasto F12 e come è possibile vedere dalla schermata sovrastante tra i Dervices di Boot è presente UEFI PiKVM Composite KVM Device CAFEBABE
Premere Invio per far partire il server/pc
Premere un qualsiasi tasto per avviare l’installazione di Windows Server
Al termine dell’installazione disconnettere l’immagine cliccando su Disconnect
Se non si ha molto spazio disponibile sulla SD della Raspberry cancellare l’immagine cliccando sulla X
Cliccare su OK
MENU’ ATX
Questa è l’interfaccia per il controllo dell’ATX, funzionerà SOLO se cablata correttamente
Da questo menù è possibile Spegnere e Accendere il Server/PC
MENU’ SYSTEM
Da questo menù è possibile modificare le impostazioni del sistema
E’ possibile modificare da questo menù le seguenti opzioni:
Qualità dell’immagine
Frame per Secondo
kbps dell’H.264
Tipologia di Video
Orientamento del Video
Fare degli screenshot del video
Fare il reset dello stream
Modificare le impostazioni relative al Mouse e Tastiera
Visualizzare la tastiera grafica
Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi.
Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare.
Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.
0 Comments