Qualche anno fa avevo fatto un articolo dove mostravo la Oracle Cloud Infrastructure (OCI) e la possibilità di avere un Virtual Private Server gratuito. Oggi ci sono ancora delle risorse gratuite ma non come quelle offerte al tempo.
Ad ogni modo dopo anni è arrivato il momento di aggiornare Ubuntu, nel mio caso da una 22.04 alla 24.04. Non ci sarebbe nulla di complicato, il comando da dare è il classico:
do-release-upgrade
BashMa per ovvie ragioni, questo comando lo dobbiamo dare dalla console, e non da una connessione SSH. Fortunatamente lo script di aggiornamento stesso vi avverte della cosa, potrebbe anche funzionare ma potreste ritrovarvi tagliati fuori mentre completa i processi. E siccome questo può prevedere delle domande verso l’operatore, si può comprendere come l’utilizzo della console sia sostanzialmente mandatorio.
Nel caso specifico siamo dentro un sistema Infrastrutturale piuttosto complesso, anche perché Oracle oltre alle Istanze VPS, offre una miriade di altri servizi, tali per cui vi potreste costruire un datacenter virtuale decisamente sofisticato. Nel caso specifico trovare la console di fatto non è stato difficile, ma la documentazione era delirante, poiché prevedeva tutta una serie di complicazioni per situazioni e contesti aziendali che poco ci interessano. Quindi di seguito vi dico come si procede nella via più semplice.
Per prima cosa sarà necessario creare un nuovo utente dentro Linux. Un utente che useremo solo per il processo di aggiornamento del sistema, poi lo disabiliteremo. Questo si rende necessario perché OCI in fase di installazione prepara un utente, ma questo è vincolato all’obbligatorio uso delle chiavi SSH. Quindi di suo non ha una password di console, e sconsiglio di aggiungerla allo stesso. Meglio, appunto come detto sopra, creare un utente specifico, che possiamo chiamare ad esempio “ociupgrade”.
adduser ociupgrade
Adding user `ociupgrade' ...
Adding new group `ociupgrade' (1005) ...
Adding new user `ociupgrade' (1005) with group `ociupgrade' ...
Creating home directory `/home/ociupgrade' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for ociupgrade
Enter the new value, or press ENTER for the default
Full Name []: ociupgrade
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
BashQuesto passaggio ci permetterà di saltare tutta la parte delle chiavi nella Cloud Shell Console, che andremo ad utilizzare a breve, sarebbe altrimenti piuttosto (inutilmente) complicato.
Prima di questo passaggio però è necessario fare un Backup preventivo che avevo già coperto in questo articolo. Ripeto qui di seguito brevemente i comandi per semplicità. Dalla interfaccia Web di OCI, nel menu ad Hamburger in alto a destra, scegliamo “Compute” e quindi il sottomenu “Instances”. Una volta raggiunta la nostra istanza, ci clicchiamo sopra per accedere ai dettagli. Sul fondo della pagina, sotto la sezione “Resources” vedremo la voce “Boot Volume”. Se ci clicchiamo vediamo l’istanza di Boot Volume, cliccando sulla stessa accediamo ai dettagli. Sul fondo avremo la voce “Boot Volumes Backups”, dove appariranno quelli attivi, e il tasto “Create Boot Volume Backup“. Faremo ovviamente un backup di tipo manuale e di tipo Full. A seconda dello spazio occupato ci metterà più o meno tempo.
Questa sarà anche la pagina nel caso doveste optare per il restore, infatti dentro ogni backup è presente il tasto per fare il ripristino della risorsa.
A questo punto siamo pronti per raggiungere finalmente la nostra Shell.
Dobbiamo tornare alla nostra Istanza di computazione (Compute – Instances) e sotto al menu Boot Volume visto in precedenza, c’è la voce “Console Connection“. Questa sarà vuota e presenta due tasti, quello che ci interessa è “Launch Cloud Shell Connection“. Si apre una sezione sul fondo del browser dove appare una shell. Attraverso i tasti posti sulla destra, possiamo allargarla a pieno schermo. A questo punto dopo un attimo di lavoro di preparazione da parte della Cloud Shell, apparirà la schermata di login. Metteremo “ociupgrade” o l’utente che avete creato, con relativa password.
Possiamo scalare ad utente Root ed avviare il programma di aggiornamento di Ubuntu come da prassi. Il server nel mio caso è stato parecchio veloce e ci ha messo circa 20 minuti ad effettuare il salto di versione. Al termine ho reimpostato gli APT di Docker, per aggiornarli alla versione in essere. Mentre tutta la parte di Oracle Cloud si è auto-impostata da sola, senza dover fare nulla.
Una volta testato l’accesso in SSH da remoto, e controllato che tutti i servizi fossero funzionanti, si può uscire dalla console con un logout e terminare la sessione di console, tramite il menu “terminate” nascosto sotto il menu a tre puntini nella riga della console attiva. Ad ogni modo se non fate nulla questo si auto disattiva dopo un certo tempo.
Rimane solo la buona norma di disabilitare l’utente “ociupgrade” affinché non sia utilizzabile come superficie di attacco informatico. Per fare ciò basta dare il comando:
usermod -L ociupgrade
BashSe invece è necessario riabilitarlo basterà dare il comando
usermod -U ociupgrade
BashConclusioni
Quanto sopra pare persino banale, ma di fatto non lo è, poiché in fase di analisi vengono proposte delle documentazioni di Oracle che portano decisamente fuori strada. O meglio, verso una strada alquanto complicata. Si può infatti attivare la console in altri modi, che però prevedono l’utilizzo di chiavi, proxy SSH, aperture di Firewall, eccetera… insomma forse un po’ troppo per un’operazione estemporanea da farsi ogni 2-3 anni.