Actualizaciones Automáticas y Reversiones Manuales
Fedora CoreOS proporciona actualizaciones y reversiones automáticas por medio de los despliegues OSTree.
De forma predeterminada, el SO lleva a cabo auto actualizaciones continuas por medio de dos componentes:
-
rpm-ostree maneja múltiples despliegues OSTree sobre el disco y puede conmutar entre ellos en el momento del arranque.
-
Zincati comprueba continuamente las actualizaciones de SO y las aplica por medio de rpm-ostree.
Cautela ante las actualizaciones
El agente local Zincati comprueba periódicamente el servicio remoto para ver cuando están disponibles las actualizaciones. Un valor personalizado de "rollout wariness" (vea documentación) se puede proporcionar para que el servidor sepa qué tan ansioso o averso al riesgo está el nodo para recibir actualizaciones.
El parámetro rollout_wariness
se puede establecer con un valor de punto flotante entre 0.0
(más ansioso) y 1.0
(más conservador). Para recibir actualizaciones muy pronto en el ciclo de implementación por fases, se puede configurar un nodo con un valor bajo (e.g. 0.001
). Esto se puede hacer durante el aprovisionamiento mediante el fragmento de configuración Butane que se muestra abajo:
variant: fcos
version: 1.4.0
storage:
files:
- path: /etc/zincati/config.d/51-rollout-wariness.toml
contents:
inline: |
[identity]
rollout_wariness = 0.001
Finalización de la actualización de SO
Para finalizar la actualización de un SO se debe reiniciar la máquina. Como esta es una acción invasiva que puede originar problemas en el servicio, Zincati permite al administrador del cluster controlar que nodos tienen permitido el reinicio para terminar la actualización.
Estas disponibles las siguiente estrategias de finalización:
-
As soon as the update is downloaded and staged locally, immediately reboot to apply an update.
-
Use an external lock-manager to coordinate the reboot of a fleet of machines.
-
Allow reboots only within configured maintenance windows, defined on a weekly UTC schedule.
A specific finalization strategy can be configured on each node.
The Butane snippet below shows how to define two maintenance windows during weekend days, starting at 22:30 UTC and lasting one hour each:
variant: fcos
version: 1.4.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.
Retrocesos Manuales
Cuando una actualización está completa el anterior despliegue de SO permanece en el disco. Si una actualización causa problema usted puede utilizar el anterior como respaldo. Esta es una operación manual que requiere intervención humana y una consola de acceso.
Temporary rollback
To temporarily boot the previous OS deployment, hold down Shift
during the OS boot process. When the bootloader menu appears, select the relevant OS entry in the menu.
Permanent rollback
To permanently revert to the previous OS deployment, log into the target node and run the following commands:
# Stop the service that performs automatic updates
sudo systemctl stop zincati.service
# Mark the previous OS deployment as the default, and immediately reboots into it
sudo rpm-ostree rollback -r
Please note that Zincati will keep looking for updates and upgrade to any new available OS deployment, other than the one you just reverted.
If you prefer, you can temporarily turn off auto-updates. Later on, you can re-enable them in order to let the machine catch up with the usual flow of updates:
# Disable Zincati in order to opt-out from future auto-updates
sudo systemctl disable --now zincati.service
[...]
# At a later point, re-enable it to re-align with the tip of stream
sudo systemctl enable --now zincati.service
Want to help? Learn how to contribute to Fedora Docs ›