Qué hace este módulo #
Cada vez que arrancas un servidor hay que dejar la base en su sitio: instalar las actualizaciones pendientes, decidir el idioma en el que hablan los programas, poner la zona horaria correcta, darle un nombre a la máquina y asegurarte de que el reloj está en hora. Son tareas pequeñas pero repetitivas, y cada una tiene su propio comando de Linux con su propia sintaxis.
El módulo os las reúne todas detrás de una interfaz coherente. Actualiza el sistema (o solo la parte de seguridad) y te dice si hace falta reiniciar; activa los desatendidos para que las actualizaciones de seguridad se apliquen solas; fija el locale, la zona horaria y el hostname de forma idempotente; y gestiona la sincronización NTP para que la hora nunca se desvíe. Cada acción es segura de repetir: si ya está en el estado deseado, no toca nada.
Los subcomandos que cambian algo (actualizar, fijar locale, zona, hostname o NTP) escriben en el sistema y necesitan privilegios de root: lánzalos con sudo. Los que solo consultan (status, list, check) no lo requieren.
Tareas comunes #
Elige lo que quieres hacer. Cada receta trae el comando ya escrito — solo cambia los valores de ejemplo por los tuyos, y pulsa Copiar.
1
Ver y aplicar actualizaciones
Comprueba qué hay pendiente y ponte al día en un momento.
Primero mira el estado general y qué actualizaciones esperan:
$ imaxe os status
$ imaxe os checkAplica lo pendiente. Si solo quieres las de seguridad y que reinicie si hace falta, añade los flags:
$ sudo imaxe os update --security-only --reboot-if-neededimaxe os reboot-required (código 0 = sí hace falta).2
Dejar las de seguridad en automático
Que las actualizaciones de seguridad se apliquen solas, sin que estés encima.
Activa los desatendidos. Esto genera la configuración de unattended-upgrades por ti:
$ sudo imaxe os autoupdate enableConfirma que está activo y cuándo será la próxima ejecución:
$ imaxe os autoupdate statussudo imaxe os autoupdate disable.3
Poner la zona horaria y la hora
Fija tu zona IANA y asegúrate de que el reloj se sincroniza por NTP.
Si no recuerdas el nombre exacto de tu zona, fíltrala primero:
$ imaxe os timezone list EuropeFija la zona (es idempotente) y habilita la sincronización de hora:
$ sudo imaxe os timezone set Europe/Madrid
$ sudo imaxe os timesync enableimaxe os timesync status.4
Fijar el idioma del sistema
Define el LANG y genera el locale si aún no existe.
Fija el idioma del sistema. El comando genera el locale e instala el paquete locales si falta:
$ sudo imaxe os locale set es_ES.UTF-8¿Necesitas más idiomas disponibles sin cambiar el LANG? Genéralos aparte:
$ sudo imaxe os locale generate es_ES.UTF-8 en_US.UTF-8imaxe os locale status.5
Cambiar el nombre de la máquina
Pon un hostname claro y mantén coherente /etc/hosts.
/etc/hosts.Asigna el hostname. Solo se admiten letras, números y guiones, hasta 63 caracteres:
$ sudo imaxe os hostname set web-01/etc/hosts actualizado en coherencia. Verifícalo con imaxe os hostname status.Si la instancia la gestiona cloud-init, este puede reescribir el hostname en cada arranque. Por eso os.yml deja el campo hostname vacío por defecto: fíjalo solo si sabes que cloud-init no lo va a sobrescribir.
Sinopsis #
imaxe os <subcomando> [<acción>] [<argumento>...] [flags]Los subcomandos que cambian el sistema (actualizar, desatendidos, locale, zona horaria, hostname, NTP) requieren privilegios de root (usa sudo). Añade --json a cualquier status o check para obtener salida legible por máquina, apta para scripting.
Subcomandos #
| Subcomando | Qué hace | Acciones / flags |
|---|---|---|
| status | Resumen del estado de actualizaciones del sistema. | --json |
| update | Aplica ahora las actualizaciones pendientes. | --security-only, --reboot-if-needed |
| check | Lista las actualizaciones pendientes sin aplicarlas. | --json |
| reboot-required | Indica si hay un reinicio pendiente (exit 0 = sí, 1 = no). | --json |
| autoupdate | Gestiona las actualizaciones automáticas desatendidas. | enable · disable · status |
| locale | Gestiona el locale del sistema (genera e instala lo necesario). | status · list · set · generate |
| timezone | Muestra o cambia la zona horaria del sistema. | status · list · set |
| hostname | Muestra o cambia el hostname (coherente con /etc/hosts). | status · set |
| timesync | Gestiona la sincronización de hora (NTP). | status · enable · disable |
Argumentos y flags #
| Argumento / flag | Tipo | Dónde aplica | Descripción |
|---|---|---|---|
| --json | bool | status · check | Emite el resultado como JSON estructurado en stdout, apto para scripting. |
| --security-only | bool | update | Aplica solo las actualizaciones de seguridad. |
| --reboot-if-needed | bool | update | Reinicia automáticamente si el sistema lo requiere tras actualizar. |
| <locale> req. | string… | locale set · locale generate | Locale en formato es_ES.UTF-8. En set es uno (el LANG del sistema); en generate, uno o más a generar. |
| <zona> req. | string | timezone set | Zona horaria IANA, p. ej. Europe/Madrid. |
| <filtro> | string | timezone list | Filtro opcional para acotar el listado de zonas (p. ej. Europe). |
| <nuevo> req. | string | hostname set | Nuevo hostname: minúsculas a-z, dígitos 0-9 y guiones, máximo 63 caracteres. |
Ficheros y rutas #
| Ruta | Contenido |
|---|---|
| /etc/imaxe/os.yml | Configuración del módulo: desatendidos, política de actualización, locale, zona horaria, hostname y NTP. |
| /var/log/imaxe/os.log | Registro estructurado de cada actualización y cambio de configuración del sistema. |
| /etc/apt/apt.conf.d/20auto-upgrades | Config generada por autoupdate enable que activa los desatendidos. |
| /etc/apt/apt.conf.d/50unattended-upgrades | Reglas de unattended-upgrades (qué se actualiza, ventana de reinicio, lista de exclusiones). |
Ejemplo de 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: trueLos campos vacíos ("") significan «no tocar»: el módulo deja ese ajuste tal como esté. Por eso hostname viene vacío — la instancia suele gestionarlo por cloud-init.
Códigos de salida y logs #
Cada ejecución devuelve un código que puedes comprobar con echo $? — útil para encadenar en scripts:
reboot-required usa el código de salida como respuesta: 0 significa «sí hace falta reiniciar» y 1 significa «no». Así puedes encadenarlo directamente en un script sin parsear texto.
Sigue el log en vivo mientras depuras:
$ sudo tail -f /var/log/imaxe/os.logResolución de problemas #
| Síntoma | Causa probable | Solución |
|---|---|---|
| Sale USAGE (código 2) | Falta un argumento obligatorio (locale, zona o hostname) o el formato no es válido. | Revisa la tabla de argumentos: el hostname solo admite a-z0-9 y guiones (≤63). |
| El hostname vuelve a cambiar tras reiniciar | cloud-init reescribe el hostname en cada arranque. | Deshabilita la gestión de hostname en cloud-init, o deja el campo en os.yml vacío y no lo fijes a mano. |
locale set tarda o falla | El paquete locales no está y hay que instalarlo/generarlo. | Reintenta con el sistema al día (imaxe os update); el módulo instala locales y genera el locale solo. |
| La hora sigue desviada | La sincronización NTP está deshabilitada. | Actívala con sudo imaxe os timesync enable y verifica con imaxe os timesync status. |
| Los desatendidos no se aplican | Nunca se activaron los desatendidos en esta máquina. | Lanza sudo imaxe os autoupdate enable y confirma con imaxe os autoupdate status. |
¿Te atascaste con el módulo Sistema?
Escríbenos con la salida de «imaxe <módulo> status --json» y te respondemos rápido.