İki kez korkusuz çalıştırılan kurulum betikleri
Güncelleme

İdempotent betikler değiştirmeden önce durumu kontrol eder: ikinci koşu ikinci felaket değil zararsız boş iştir.
Kurulum betikleri iki kez koşar. Biri arızadan sonra tekrarlar, hat bir adımı yeniden oynatır, ekip arkadaşı ne olur ne olmaz koşar. Temiz sayfa varsayan betik ikinci koşuda bozar: yinelenen kayıtlar, katlanan izinler, iki kez eklenen bloklar.
Kontrol et, sonra uygula
Her değişiklik kontrolle başlar. Kullanıcı var mı? Dizin doğru mu? Satır zaten var mı? Kontrol karar verir; değişiklik yalnızca boşlukta çalışır.
Adımlar değil istenen durum. Son durumu anlat, ona yakınsa. Kontrolsüz adım listeleri tek atımlık havai fişektir.
İkinci koşuyu kanıtla. Düzenek, koş, yine koş, karşılaştır. İkinci log sakin onay gibi okunmalı: çoğu geçilmiş, hiçbir şey değişmemiş.
Çalışılmış örnek: kurgusal bir karşılama betiği
Aşağıdaki bağlam kurgusaldır. Kurgusal onboard.sh betiği kullanıcı, dizin ağacı ve üç yapılandırma satırı kurar. İkinci koşu yapılandırma satırlarını yineler, mevcut kullanıcıda kırılır.
Yeniden yazım her kaynağı önce kontrol eder: kullanıcı varsa geç, dizin doğruysa geç, satırlar varsa geç. İkinci koşu hiçbir şeyi değiştirmez, söyler. Tekrarlar yapısal güvenli olur.
Kontrol listesi: tekrar koşulabilir betik
- Her değişiklik durum kontrollü.
- Düzenekte ikinci koşu hiçbir şeyi değiştirmiyor.
- Çıktı neyin neden geçildiğini söylüyor.
- Yarım arıza elle temizliksiz kaldığı yerden sürüyor.
İlgili okuma
- Uygulamalı: Kurulum Betiğinin Zararsız İkinci Koşusu.
- Kabuk tamamlayıcısı: Boşluklu isimlerde yaşayan betikler.
Net yanıtlar
Sık sorulan sorular
İdempotent burada tam ne demek?
Betiği iki kez koşmak bir kez koşmakla aynı sonucu verir. İkinci koşu mevcut durumu görür, hiçbir şeyi değiştirmez.
En ucuz kalıp nedir?
Kaynak başına kontrol-sonra-uygula: varsa ve doğruysa geç; yoksa kur; yanlışsa istenen duruma getir.
Nasıl kanıtlarım?
Düzenekte iki kez koş, sonuçları karşılaştır. Aynı son durum artı temiz ikinci log kanıttır.