Pembaruan Otomatis dan Pemulihan Manual
Fedora CoreOS menyediakan pembaruan dan pemulihan (rollbacks) atomik melalui [OSTree](https://ostreedev.github.io/ostree/).
Secara default, OS melakukan pembaruan otomatis terus-menerus melalui dua komponen:
-
[rpm-ostree](https://github.com/coreos/rpm-ostree) menangani banyak deployment OSTree di disk dan dapat beralih di antara deployment tersebut saat boot.
-
Zincati terus-menerus memeriksa pembaruan OS dan menerapkannya melalui rpm-ostree.
Kehati-hatian terhadap pembaruan
Agen lokal Zincati secara berkala memeriksa layanan jarak jauh untuk melihat kapan pembaruan tersedia. Nilai “rollout wariness” yang disesuaikan (lihat [dokumentasi](https://coreos.github.io/zincati/usage/auto-updates/#phased-rollouts-client-wariness-canaries)) dapat disediakan untuk memberi tahu server seberapa cepat atau hati-hati sebuah node dalam menerima pembaruan.
Parameter rollout_wariness dapat diatur ke nilai pecahan antara 0.0 (paling cepat menerima) dan 1.0 (paling berhati-hati). Untuk menerima pembaruan paling awal dalam siklus rollout bertahap, node dapat dikonfigurasi dengan nilai rendah (misalnya 0.001). Ini dapat dilakukan selama proses provisioning menggunakan potongan konfigurasi [Butane](xref:producing-ign.adoc) seperti ditunjukkan di bawah ini:
variant: fcos
version: 1.6.0
storage:
files:
- path: /etc/zincati/config.d/51-rollout-wariness.toml
contents:
inline: |
[identity]
rollout_wariness = 0.001
Finalisasi pembaruan sistem operasi
Untuk menyelesaikan pembaruan sistem operasi, mesin harus melakukan reboot. Karena tindakan ini dapat mengganggu layanan yang sedang berjalan, Zincati memungkinkan administrator klaster mengontrol kapan node diizinkan untuk reboot dalam rangka finalisasi pembaruan.
Strategi finalisasi berikut tersedia:
-
Segera setelah pembaruan diunduh dan disiapkan secara lokal, lakukan reboot langsung untuk menerapkannya.
-
Gunakan pengelola kunci (lock-manager) eksternal untuk mengoordinasikan proses reboot pada sekumpulan mesin.
-
Izinkan reboot hanya dalam jendela pemeliharaan (maintenance window) yang dikonfigurasi, didefinisikan berdasarkan jadwal mingguan dalam waktu UTC.
Strategi finalisasi spesifik dapat dikonfigurasi pada setiap node.
Potongan konfigurasi [Butane](xref:producing-ign.adoc) di bawah ini menunjukkan cara mendefinisikan dua jendela pemeliharaan pada akhir pekan, dimulai pada pukul 22:30 UTC dan berlangsung selama satu jam setiap kali:
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
Untuk detail lebih lanjut mengenai finalisasi pembaruan, lihat [dokumentasi Zincati](https://coreos.github.io/zincati/usage/updates-strategy/).
Manual Rollbacks
When an update is complete, the previous OS deployment remains on disk. If an update causes issues, you can use it as a fallback. This is a manual operation that requires human intervention and console access.
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 ›