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/).
Rollback Manual
Ketika pembaruan selesai, deployment OS sebelumnya tetap tersimpan di disk. Jika pembaruan menimbulkan masalah, Anda dapat menggunakannya sebagai cadangan. Ini adalah operasi manual yang memerlukan intervensi manusia dan akses ke konsol.
Rollback sementara
Untuk sementara waktu mem-boot deployment OS sebelumnya, tahan tombol Shift selama proses boot OS. Ketika menu bootloader muncul, pilih entri OS yang relevan di menu tersebut.
Rollback permanen
Untuk secara permanen kembali ke deployment OS sebelumnya, masuk ke node target dan jalankan perintah berikut:
# Hentikan layanan yang melakukan pembaruan otomatis
sudo systemctl stop zincati.service
# Menandai deployment OS sebelumnya sebagai default, dan langsung mem-boot ulang ke dalamnya
sudo rpm-ostree rollback -r
Harap diperhatikan bahwa Zincati akan tetap mencari pembaruan dan meningkatkan ke deployment OS baru yang tersedia, selain dari yang baru saja Anda kembalikan.
Jika Anda mau, Anda dapat mematikan pembaruan otomatis untuk sementara waktu. Nantinya, Anda dapat mengaktifkannya kembali agar mesin dapat mengikuti alur pembaruan seperti biasanya:
# Nonaktifkan Zincati untuk menonaktifkan pembaruan otomatis di masa depan
sudo systemctl disable --now zincati.service
[...]
# Aktifkan kembali nanti untuk menyelaraskan dengan ujung aliran
sudo systemctl enable --now zincati.service
Want to help? Learn how to contribute to Fedora Docs ›