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.

The rollout_wariness parameter can be set to a floating point value between 0.0 (most eager) and 1.0 (most conservative). In order to receive updates very early in the phased rollout cycle, a node can be configured with a low value (e.g. 0.001). This can be done during provisioning by using the Butane config snippet shown below:

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ó.

The Butane snippet below shows how to define two maintenance windows during weekend days, starting at 22:30 UTC and lasting one hour each:

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

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