O que faz este módulo #
Sempre que arrancas um servidor tens de deixar a base em ordem: instalar as atualizações pendentes, decidir o idioma em que falam os programas, definir o fuso horário correto, dar um nome à máquina e garantir que o relógio está certo. São tarefas pequenas mas repetitivas, e cada uma tem o seu próprio comando de Linux com a sua própria sintaxe.
O módulo os reúne-as todas atrás de uma interface coerente. Atualiza o sistema (ou apenas a parte de segurança) e diz-te se é preciso reiniciar; ativa as atualizações desassistidas para que as atualizações de segurança se apliquem sozinhas; define o locale, o fuso horário e o hostname de forma idempotente; e gere a sincronização NTP para que a hora nunca se desvie. Cada ação é segura de repetir: se já estiver no estado desejado, não toca em nada.
Os subcomandos que alteram algo (atualizar, definir locale, fuso horário, hostname ou NTP) escrevem no sistema e precisam de privilégios de root: executa-os com sudo. Os que apenas consultam (status, list, check) não o requerem.
Tarefas comuns #
Escolhe o que queres fazer. Cada receita traz o comando já escrito — basta trocar os valores de exemplo pelos teus e clicar em Copiar.
1
Ver e aplicar atualizações
Verifica o que está pendente e fica em dia num instante.
Primeiro olha para o estado geral e para as atualizações que aguardam:
$ imaxe os status
$ imaxe os checkAplica o que está pendente. Se só quiseres as de segurança e quiseres que reinicie se for preciso, adiciona as flags:
$ sudo imaxe os update --security-only --reboot-if-neededimaxe os reboot-required (código de saída 0 = sim, é necessário).2
Pôr as atualizações de segurança em piloto automático
Deixa que as atualizações de segurança se apliquem sozinhas, sem teres de andar a vigiá-las.
Ativa as atualizações desassistidas. Isto gera-te a configuração do unattended-upgrades:
$ sudo imaxe os autoupdate enableConfirma que está ativo e quando será a próxima execução:
$ imaxe os autoupdate statussudo imaxe os autoupdate disable.3
Definir o fuso horário e a hora
Define o teu fuso IANA e garante que o relógio sincroniza por NTP.
Se não te lembras do nome exato do teu fuso, filtra-o primeiro:
$ imaxe os timezone list EuropeDefine o fuso (é idempotente) e ativa a sincronização de tempo:
$ sudo imaxe os timezone set Europe/Madrid
$ sudo imaxe os timesync enableimaxe os timesync status.4
Definir o idioma do sistema
Define o LANG e gera o locale se ainda não existir.
Define o idioma do sistema. O comando gera o locale e instala o pacote locales se faltar:
$ sudo imaxe os locale set es_ES.UTF-8Precisas de mais idiomas disponíveis sem mudar o LANG? Gera-os em separado:
$ sudo imaxe os locale generate es_ES.UTF-8 en_US.UTF-8imaxe os locale status.5
Mudar o nome da máquina
Define um hostname claro e mantém o /etc/hosts consistente.
/etc/hosts consistente.Atribui o hostname. Só são permitidas letras, números e hífens, até 63 caracteres:
$ sudo imaxe os hostname set web-01/etc/hosts é atualizado para coincidir. Verifica-o com imaxe os hostname status.Se a instância for gerida pelo cloud-init, este pode reescrever o hostname em cada arranque. Por isso o os.yml deixa o campo hostname vazio por omissão: define-o apenas se souberes que o cloud-init não o vai sobrescrever.
Sinopse #
imaxe os <subcomando> [<acción>] [<argumento>...] [flags]Os subcomandos que alteram o sistema (atualizar, atualizações desassistidas, locale, fuso horário, hostname, NTP) requerem privilégios de root (usa sudo). Adiciona --json a qualquer status ou check para obter saída legível por máquina, apta para scripting.
Subcomandos #
| Subcomando | O que faz | Ações / flags |
|---|---|---|
| status | Resumo do estado de atualização do sistema. | --json |
| update | Aplica agora as atualizações pendentes. | --security-only, --reboot-if-needed |
| check | Lista as atualizações pendentes sem as aplicar. | --json |
| reboot-required | Indica se está pendente um reinício (exit 0 = sim, 1 = não). | --json |
| autoupdate | Gere as atualizações automáticas desassistidas. | enable · disable · status |
| locale | Gere o locale do sistema (gera e instala o que for preciso). | status · list · set · generate |
| timezone | Mostra ou muda o fuso horário do sistema. | status · list · set |
| hostname | Mostra ou muda o hostname (consistente com /etc/hosts). | status · set |
| timesync | Gere a sincronização de tempo (NTP). | status · enable · disable |
Argumentos e flags #
| Argumento / flag | Tipo | Onde se aplica | Descrição |
|---|---|---|---|
| --json | bool | status · check | Emite o resultado como JSON estruturado em stdout, apto para scripting. |
| --security-only | bool | update | Aplica apenas as atualizações de segurança. |
| --reboot-if-needed | bool | update | Reinicia automaticamente se o sistema o exigir após atualizar. |
| <locale> obr. | string… | locale set · locale generate | Locale no formato es_ES.UTF-8. Em set é um único (o LANG do sistema); em generate, um ou mais para gerar. |
| <zona> obr. | string | timezone set | Fuso horário IANA, por exemplo Europe/Madrid. |
| <filtro> | string | timezone list | Filtro opcional para restringir a listagem de fusos (por exemplo Europe). |
| <nuevo> obr. | string | hostname set | Novo hostname: minúsculas a-z, dígitos 0-9 e hífens, máximo 63 caracteres. |
Ficheiros e caminhos #
| Caminho | Conteúdo |
|---|---|
| /etc/imaxe/os.yml | Configuração do módulo: atualizações desassistidas, política de atualização, locale, fuso horário, hostname e NTP. |
| /var/log/imaxe/os.log | Log estruturado de cada atualização e alteração de configuração do sistema. |
| /etc/apt/apt.conf.d/20auto-upgrades | Configuração gerada por autoupdate enable que ativa as atualizações desassistidas. |
| /etc/apt/apt.conf.d/50unattended-upgrades | Regras do unattended-upgrades (o que é atualizado, janela de reinício, lista de exclusão). |
Exemplo 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: trueOs campos vazios ("") significam «não tocar»: o módulo deixa essa definição exatamente como está. Por isso o hostname vem vazio — a instância geralmente gere-o através do cloud-init.
Códigos de saída e logs #
Cada execução devolve um código que podes verificar com echo $? — útil para encadear em scripts:
reboot-required usa o código de saída como resposta: 0 significa «sim, é necessário um reinício» e 1 significa «não». Assim podes encadeá-lo diretamente num script sem analisar texto.
Segue o log em direto enquanto depuras:
$ sudo tail -f /var/log/imaxe/os.logResolução de problemas #
| Sintoma | Causa provável | Solução |
|---|---|---|
| Sai USAGE (código 2) | Falta um argumento obrigatório (locale, fuso ou hostname) ou o formato é inválido. | Revê a tabela de argumentos: o hostname só admite a-z0-9 e hífens (≤63). |
| O hostname volta a mudar após reiniciar | O cloud-init reescreve o hostname em cada arranque. | Desativa a gestão de hostname no cloud-init, ou deixa o campo em os.yml vazio e não o definas à mão. |
locale set é lento ou falha | O pacote locales não está presente e tem de ser instalado/gerado. | Tenta de novo com o sistema atualizado (imaxe os update); o módulo instala o locales e gera o locale por si só. |
| A hora continua errada | A sincronização NTP está desativada. | Ativa-a com sudo imaxe os timesync enable e verifica com imaxe os timesync status. |
| As atualizações desassistidas não se aplicam | As atualizações desassistidas nunca foram ativadas nesta máquina. | Executa sudo imaxe os autoupdate enable e confirma com imaxe os autoupdate status. |
Ficou bloqueado com o módulo Sistema?
Escreva-nos com a saída de «imaxe <module> status --json» e respondemos rapidamente.