Booting sekali dari sebuah image tidak membuat Pi menjadi perangkat yang dapat dibangun ulang. Yang dibutuhkan adalah sekumpulan kecil masukan yang dapat diterapkan ulang: basis yang dipelihara, konfigurasi yang dinyatakan, data persisten aplikasi, dan identitas perangkat yang hanya milik papan itu. Lewatkan yang terakhir dan setiap penggantian menjadi klon sebuah kredensial.

Langkah-langkah di bawah adalah urutan kerja, bukan rekomendasi alat. Sistem konfigurasi apa pun yang dapat menyatakannya akan cukup.

Daftar dulu empat jenis masukan

Image dasar dan paketnya menentukan sistem operasi, arsitektur, dan asal pembaruan, dan pembangun image hanya membantu jika alat yang disebutnya masih dipelihara untuk rilis Anda. Konfigurasi yang dinyatakan adalah bagian yang ditinjau manusia: peran jaringan, pengaturan layanan, dan aksi siklus hidup yang dibutuhkan setiap layanan. Data aplikasi persisten adalah semua yang tidak dapat dibuat ulang oleh layanan, dan lokasi serta metode cadangannya milik aplikasi itu, bukan image. Identitas perangkat dan rahasia adalah masukan keempat, dan itulah yang orang lupakan saat mengkloning kartu yang berfungsi.

Tulis keempat daftar sebelum membangun ulang apa pun. Daftar dengan baris kosong adalah keputusan yang belum Anda ambil.

Jauhkan rahasia dari repositori dan sebutkan di mana mereka tinggal

Repositori adalah rumah yang baik untuk templat yang ditinjau dan konfigurasi non-rahasia, dan rumah yang buruk untuk kunci privat VPN, kredensial administrator yang dapat dipakai ulang, dan arsip diagnostik. Jika sebuah rahasia harus ada di perangkat, catat dari mana asalnya, siapa yang boleh membacanya, dan bagaimana rotasinya. Kunci yang hanya hidup di satu kartu SD adalah satu titik kegagalan, sedangkan kunci yang disalin ke setiap papan adalah kredensial seluruh armada tanpa pemilik. Keduanya bukan rencana pemulihan.

Ujinya sederhana: jika repositori bocor besok, apa yang didapat penyerang? Templat dan catatan topologi bisa bertahan. Identitas yang berfungsi tidak.

Biarkan otomasi memiliki apa yang dapat dijalankannya ulang

Model Ansible menyimpan inventaris node terkelola terpisah dari play, task, role, dan handler yang menyala saat task melaporkan perubahan. Gunakan struktur itu untuk memberi setiap layanan satu pemilik konfigurasi daripada memutar ulang riwayat shell. Utamakan operasi yang aman dijalankan dua kali, dan putuskan dengan sengaja bagaimana berkas yang diubah mencapai proses yang berjalan. Task yang memastikan sebuah layanan dimulai tidak otomatis membuatnya memuat ulang konfigurasi yang baru saja Anda tulis ulang.

Pisahkan juga tahap administrasi. Konektivitas bootstrap, konfigurasi rutin, dan pengelolaan yang bergantung pada VPN adalah tiga jendela berbeda, dan yang ketiga dapat menghapus akses Anda sendiri jika pembangunan ulang mengatur ulang jaringan di bawahnya. Pertahankan jalur masuk yang independen.

Pulihkan data dan identitas dengan sengaja

Volume kontainer bertahan secara independen dari siklus hidup kontainer, sedangkan lapisan yang dapat ditulis di dalam kontainer tidak, itulah sebabnya membuat ulang kontainer dari image-nya tidak membuat ulang keadaan yang dipakai aplikasi, seperti yang dijelaskan dokumentasi volume. Catat volume, bind mount, dan layanan eksternal yang menjadi dependensi perangkat, dan gunakan proses cadangan serta pemulihan milik aplikasi itu sendiri. Kontainer yang mulai tanpa kesalahan bukan bukti bahwa basis data dan berkasnya sepakat.

Untuk identitas, putuskan apakah Anda memulihkan perangkat yang sama atau mendaftarkan pengganti, karena keduanya operasi berbeda dengan pembersihan berbeda.

Rekonsiliasi akses peer lama sebelum mengaktifkan identitas di tempat lain, dan baru setelah itu uji perangkat yang dibangun ulang di lingkungan terisolasi atau pemulihan. Periksa data yang diperlukan, identitas yang benar, jalur pembaruan dengan pemilik, dan kebijakan jaringan yang dimaksud.

Image yang dapat di-boot adalah satu masukan dari empat, dan itu yang paling mudah direproduksi.

Artikel terkait