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

The local Zincati agent periodically checks with a remote service to see when updates are available. A custom "rollout wariness" value (see documentation) can be provided to let the server know how eager, or how risk-averse, the node is to receiving updates.

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:

Exemplo: configurando cautela de implementação do Zincati
variant: fcos
version: 1.3.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:

Exemplo: configurando a estratégia de atualização do Zincati
variant: fcos
version: 1.3.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

For further details on updates finalization, check the Zincati documentation.

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 os menus do carregador de inicialização aparecerem, 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 rpm-ostree rollback -r. Esta operação marca a implantação anterior do sistema operacional como o padrão e é reinicializada imediatamente.