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.5.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.5.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 ›