Cosa fa questo modulo #
Ogni volta che avvii un server bisogna mettere a posto la base: installare gli aggiornamenti in sospeso, decidere la lingua in cui parlano i programmi, impostare il fuso orario corretto, dare un nome alla macchina e assicurarsi che l'orologio sia in orario. Sono operazioni piccole ma ripetitive, e ognuna ha il suo comando Linux con la propria sintassi.
Il modulo os le riunisce tutte dietro un'interfaccia coerente. Aggiorna il sistema (o solo la parte di sicurezza) e ti dice se è necessario riavviare; attiva i non presidiati affinché gli aggiornamenti di sicurezza si applichino da soli; imposta il locale, il fuso orario e l'hostname in modo idempotente; e gestisce la sincronizzazione NTP perché l'ora non si scosti mai. Ogni azione è sicura da ripetere: se è già nello stato desiderato, non tocca nulla.
I sottocomandi che modificano qualcosa (aggiornare, impostare locale, fuso, hostname o NTP) scrivono sul sistema e richiedono privilegi di root: lanciali con sudo. Quelli che si limitano a consultare (status, list, check) non lo richiedono.
Operazioni comuni #
Scegli cosa vuoi fare. Ogni ricetta porta il comando già scritto — cambia solo i valori d'esempio con i tuoi e premi Copia.
1
Vedere e applicare gli aggiornamenti
Controlla cosa c'è in sospeso e mettiti in pari in un attimo.
Prima guarda lo stato generale e quali aggiornamenti sono in attesa:
$ imaxe os status
$ imaxe os checkApplica quanto in sospeso. Se vuoi solo quelli di sicurezza e che riavvii se necessario, aggiungi le flag:
$ sudo imaxe os update --security-only --reboot-if-neededimaxe os reboot-required (codice 0 = sì, serve).2
Mettere quelli di sicurezza in automatico
Che gli aggiornamenti di sicurezza si applichino da soli, senza che tu debba starci sopra.
Attiva i non presidiati. Questo genera la configurazione di unattended-upgrades per te:
$ sudo imaxe os autoupdate enableConferma che è attivo e quando sarà la prossima esecuzione:
$ imaxe os autoupdate statussudo imaxe os autoupdate disable.3
Impostare il fuso orario e l'ora
Imposta il tuo fuso IANA e assicurati che l'orologio si sincronizzi via NTP.
Se non ricordi il nome esatto del tuo fuso, filtralo prima:
$ imaxe os timezone list EuropeImposta il fuso (è idempotente) e abilita la sincronizzazione dell'ora:
$ sudo imaxe os timezone set Europe/Madrid
$ sudo imaxe os timesync enableimaxe os timesync status.4
Fissare la lingua del sistema
Definisci il LANG e genera il locale se ancora non esiste.
Fissa la lingua del sistema. Il comando genera il locale e installa il pacchetto locales se manca:
$ sudo imaxe os locale set es_ES.UTF-8Ti servono più lingue disponibili senza cambiare il LANG? Generale a parte:
$ sudo imaxe os locale generate es_ES.UTF-8 en_US.UTF-8imaxe os locale status.5
Cambiare il nome della macchina
Imposta un hostname chiaro e mantieni coerente /etc/hosts.
/etc/hosts.Assegna l'hostname. Sono ammessi solo lettere, numeri e trattini, fino a 63 caratteri:
$ sudo imaxe os hostname set web-01/etc/hosts aggiornato in coerenza. Verificalo con imaxe os hostname status.Se l'istanza è gestita da cloud-init, questo può riscrivere l'hostname a ogni avvio. Per questo os.yml lascia il campo hostname vuoto per impostazione predefinita: impostalo solo se sai che cloud-init non lo sovrascriverà.
Sinossi #
imaxe os <subcomando> [<acción>] [<argumento>...] [flags]I sottocomandi che modificano il sistema (aggiornare, non presidiati, locale, fuso orario, hostname, NTP) richiedono privilegi di root (usa sudo). Aggiungi --json a qualsiasi status o check per ottenere output leggibile dalla macchina, adatto allo scripting.
Sottocomandi #
| Sottocomando | Cosa fa | Azioni / flag |
|---|---|---|
| status | Riepilogo dello stato degli aggiornamenti del sistema. | --json |
| update | Applica ora gli aggiornamenti in sospeso. | --security-only, --reboot-if-needed |
| check | Elenca gli aggiornamenti in sospeso senza applicarli. | --json |
| reboot-required | Indica se c'è un riavvio in sospeso (exit 0 = sì, 1 = no). | --json |
| autoupdate | Gestisce gli aggiornamenti automatici non presidiati. | enable · disable · status |
| locale | Gestisce il locale del sistema (genera e installa il necessario). | status · list · set · generate |
| timezone | Mostra o cambia il fuso orario del sistema. | status · list · set |
| hostname | Mostra o cambia l'hostname (coerente con /etc/hosts). | status · set |
| timesync | Gestisce la sincronizzazione dell'ora (NTP). | status · enable · disable |
Argomenti e flag #
| Argomento / flag | Tipo | Dove si applica | Descrizione |
|---|---|---|---|
| --json | bool | status · check | Emette il risultato come JSON strutturato in stdout, adatto allo scripting. |
| --security-only | bool | update | Applica solo gli aggiornamenti di sicurezza. |
| --reboot-if-needed | bool | update | Riavvia automaticamente se il sistema lo richiede dopo l'aggiornamento. |
| <locale> obbl. | string… | locale set · locale generate | Locale nel formato es_ES.UTF-8. In set è uno (il LANG del sistema); in generate, uno o più da generare. |
| <zona> obbl. | string | timezone set | Fuso orario IANA, ad es. Europe/Madrid. |
| <filtro> | string | timezone list | Filtro opzionale per restringere l'elenco dei fusi (ad es. Europe). |
| <nuevo> obbl. | string | hostname set | Nuovo hostname: minuscole a-z, cifre 0-9 e trattini, massimo 63 caratteri. |
File e percorsi #
| Percorso | Contenuto |
|---|---|
| /etc/imaxe/os.yml | Configurazione del modulo: non presidiati, politica di aggiornamento, locale, fuso orario, hostname e NTP. |
| /var/log/imaxe/os.log | Registro strutturato di ogni aggiornamento e modifica di configurazione del sistema. |
| /etc/apt/apt.conf.d/20auto-upgrades | Config generata da autoupdate enable che attiva i non presidiati. |
| /etc/apt/apt.conf.d/50unattended-upgrades | Regole di unattended-upgrades (cosa si aggiorna, finestra di riavvio, elenco di esclusioni). |
Esempio di os.yml:
unattended:
enabled: true
security_only: true
automatic_reboot: false
automatic_reboot_time: "03:00"
blacklist: []
update:
default_security_only: false
locale:
lang: es_ES.UTF-8
generate: [es_ES.UTF-8, en_US.UTF-8]
timezone: Europe/Madrid
hostname: ""
ntp:
enabled: trueI campi vuoti ("") significano «non toccare»: il modulo lascia quell'impostazione così com'è. Per questo hostname arriva vuoto — l'istanza di solito lo gestisce tramite cloud-init.
Codici di uscita e log #
Ogni esecuzione restituisce un codice che puoi verificare con echo $? — utile per concatenare negli script:
reboot-required usa il codice di uscita come risposta: 0 significa «sì, serve riavviare» e 1 significa «no». Così puoi concatenarlo direttamente in uno script senza fare il parsing del testo.
Segui il log in diretta mentre esegui il debug:
$ sudo tail -f /var/log/imaxe/os.logRisoluzione dei problemi #
| Sintomo | Causa probabile | Soluzione |
|---|---|---|
| Esce USAGE (codice 2) | Manca un argomento obbligatorio (locale, fuso o hostname) o il formato non è valido. | Controlla la tabella degli argomenti: l'hostname ammette solo a-z0-9 e trattini (≤63). |
| L'hostname torna a cambiare dopo il riavvio | cloud-init riscrive l'hostname a ogni avvio. | Disabilita la gestione dell'hostname in cloud-init, oppure lascia il campo in os.yml vuoto e non impostarlo a mano. |
locale set è lento o fallisce | Il pacchetto locales non c'è e bisogna installarlo/generarlo. | Riprova con il sistema aggiornato (imaxe os update); il modulo installa locales e genera il locale da solo. |
| L'ora resta sfasata | La sincronizzazione NTP è disabilitata. | Attivala con sudo imaxe os timesync enable e verifica con imaxe os timesync status. |
| I non presidiati non si applicano | I non presidiati non sono mai stati attivati su questa macchina. | Lancia sudo imaxe os autoupdate enable e conferma con imaxe os autoupdate status. |
Bloccato con il modulo Sistema?
Scrivici allegando l'output di «imaxe <module> status --json» e ti rispondiamo in fretta.