Atualizações automáticas e reversões manuais
O Fedora CoreOS fornece atualizações e reversões atômicas por meio de implantações OSTree.
Por padrão, o sistema operacional realiza atualizações automáticas contínuas por meio de dois componentes:
-
rpm-ostree lida com várias implantações OSTree em disco e pode alternar entre elas no momento da inicialização.
-
Zincati verifica continuamente se há atualizações do sistema operacional e as aplica via rpm-ostree.
Cuidado com as atualizações
O agente local do Zincati verifica periodicamente com um serviço remoto para ver quando as atualizações estão disponíveis. Um valor personalizado de "rollout wariness" (consulte a documentação) pode ser fornecido para permitir que o servidor saiba o quão ansioso ou avesso ao risco o nó está em receber atualizações.
O parâmetro rollout_wariness pode ser definido como um valor de ponto flutuante entre 0.0 (mais ansioso) e 1.0 (mais conservador). Para receber atualizações muito cedo no ciclo de implementação em fases, um nó pode ser configurado com um valor baixo (por exemplo, 0.001). Isso pode ser feito durante o provisionamento usando o trecho de código de configuração Butane mostrado abaixo:
variant: fcos
version: 1.6.0
storage:
files:
- path: /etc/zincati/config.d/51-rollout-wariness.toml
contents:
inline: |
[identity]
rollout_wariness = 0.001
Finalização da atualização do sistema operacional
Para finalizar uma atualização do sistema operacional, a máquina deve reiniciar. Como esta é uma ação invasiva que pode causar interrupção do serviço, o Zincati permite que o administrador do cluster controle quando os nós podem reiniciar para finalização da atualização.
As seguintes estratégias de finalização estão disponíveis:
-
Assim que a atualização for baixada e preparada localmente, reiniciar imediatamente para aplicar uma atualização.
-
Usar um gerenciador de bloqueio externo para coordenar a reinicialização de um conjunto de máquinas.
-
Permitir reinicializações apenas dentro das janelas de manutenção configuradas, definidas em uma programação UTC semanal.
Uma estratégia de finalização específica pode ser configurada em cada nó.
O trecho de código Butane abaixo mostra como definir duas janelas de manutenção durante os dias de fim de semana, começando às 22:30 UTC e durando uma hora cada:
variant: fcos
version: 1.6.0
storage:
files:
- path: /etc/zincati/config.d/55-updates-strategy.toml
contents:
inline: |
[updates]
strategy = "periodic"
[[updates.periodic.window]]
days = [ "Sat", "Sun" ]
start_time = "22:30"
length_minutes = 60
Para mais detalhes sobre a finalização das atualizações, consulte a documentação do Zincati.
Reversões manuais
Quando uma atualização é concluída, a implantação anterior do sistema operacional permanece no disco. Se uma atualização causar problemas, você pode usá-la como alternativa. Esta é uma operação manual que requer intervenção humana e acesso ao console.
Reversão temporária
Para inicializar temporariamente a implantação anterior do sistema operacional, mantenha pressionado Shift durante o processo de inicialização do sistema operacional. Quando o menu do carregador de inicialização aparecer, selecione a entrada do sistema operacional relevante no menu.
Reversão permanente
Para reverter permanentemente para a implantação anterior do sistema operacional, autentique-se no nó de destino e execute os comandos abaixo:
# Para o serviço que realiza atualizações automáticas
sudo systemctl stop zincati.service
# Marca a implantação anterior do sistema operacional como padrão e a reinicia imediatamente
sudo rpm-ostree rollback -r
Observe que Zincati continuará procurando por atualizações e upgrades para qualquer nova implantação de sistema operacional disponível, diferente daquela que você acabou de reverter.
Se preferir, você pode desativar temporariamente as atualizações automáticas. Mais tarde, você pode reativá-los para permitir que a máquina acompanhe o fluxo normal de atualizações:
# Desativa o Zincati para cancelar futuras atualizações automáticas
sudo systemctl disable --now zincati.service
[...]
# Posteriormente, reative-o para realinhar com o fluxo de atualizações
sudo systemctl enable --now zincati.service
Want to help? Learn how to contribute to Fedora Docs ›