Tarifleri anlama
BuildRecipe, OpenFactory’nin görüntü hattına gönderdiği normalleştirilmiş spesifikasyondur. Sohbet, bunun yazılmasına yardımcı olabilir, ancak tarif, kaynak anlık görüntüleri, oluşturulan dosyalar ve test kanıtları bir yapıyı tanımlayan şeylerdir.
Zihinsel model
Kanonik tarifin dört ana katmanı vardır:
- Identity and target: ad, açıklama, temel görüntü ve donanım amacı.
- Operating system:
osaltındaki özellikler, paketler, hizmetler, kullanıcılar, güvenlik, masaüstü, yükleyici, ekler ve başlangıç komut dosyaları. - Verification: yerleşik testler ve özel iddialar içeren bir veya daha fazla senaryo.
- Delivery intent: istenen yayın hedefleri ve isteğe bağlı dağıtım ayarları.
{
"name": "debian-web-check",
"display_name": "Debian Web Check",
"description": "Small Debian image with explicit smoke tests.",
"base_image": "debian-trixie",
"hardware": {
"platform": "pc",
"architecture": "x86_64",
"min_cpu_cores": 2,
"min_memory_gb": 4,
"min_storage_gb": 16,
"nic_count": 1
},
"os": {
"features": ["ssh"],
"packages": ["curl"],
"services": [
{
"name": "ssh",
"enabled": true,
"config": {"port": 22, "disable_password_auth": true}
}
],
"security": {
"hardening_level": "standard",
"audit_logging": true
}
},
"scenarios": [
{
"id": "primary-smoke",
"name": "Primary image smoke test",
"enabled": true,
"tests": ["boot", "login", "packages"]
}
],
"publish_to": ["local"]
}Snake_case’i kullanın. Yeni entegrasyonlar baseImage, üst düzey features veya startupScripts gibi eski şekilleri göndermemelidir.
Üç kontrol, üç farklı cevap
Şema doğrulama
Doğrulama yanıtları: “Tanınan veriler kabul edilebilir bir şekle sahip mi?” Paketlerin var olduğunu veya davranışların işe yaradığını kanıtlamaz. Bazı bilinmeyen alanlar uyumluluk açısından göz ardı edilir; bu nedenle, doğrulama başarılı olsa da önemli bir istek atlanabilir.
Döndürülen normalleştirilmiş tarifi her zaman orijinal sohbet ve gereksinimlerle karşılaştırın. Eksik bir masaüstü, uygulama, yükleyici, eklenti veya test, doğrulamada valid yazsa bile tarif hatasıdır.
Kanıt oluşturun
Başarılı bir yapı şu soruyu yanıtlar: “Boru hattı bir yapıt üretti mi?” Bu, amaçlanan her özelliğin görüntüye dahil edildiğini kanıtlamaz. Paket envanterini, kaynak kaynağını, uyarıları ve yapım aşaması kanıtlarını inceleyin.
Konuk doğrulaması
Konuk testleri dar çalışma zamanı sorularını yanıtlar: VM’nin başlatılıp başlatılmadığı, bir hizmetin etkin olup olmadığı, bir bağlantı noktasının dinleyip dinlemediği, bir dosyanın beklenen içeriğe sahip olup olmadığı veya bir uygulamanın başlatılıp başlatılmadığı. Geçici bir iddia yalnızca gerçekte gözlemlediği davranışı destekler.
Güvenlik ayarları kasıtlıdır
Kabul edilen hardening_level değerleri minimal, standard ve strict’dur ancak bu etiketler taşınabilir uyumluluk profilleri değildir. Hedef oluşturucular bunları farklı şekilde yorumlayabilir. Bir kıyaslamaya ihtiyacınız varsa, tam olarak uygulanabilir kıyaslamayı seçin ve her kontrole ait sonuçları saklayın; strict’den CIS uyumluluğu sonucunu çıkarmayın.
Benzer şekilde, disk_encryption, audit_logging, SELinux, fail2ban, Secure Boot, dm-verity ve yükleyici ayarları, eşleşen yapay yapı ve çalışma zamanı testlerini gerektirir.
Sohbet ve yemek tarifi sahipliği
Sohbet tarafından yazılan bir tarifi doğruladığınızda veya düzenlediğinizde mevcut konuşma, yazma bağlamının bir parçası olarak kalır. Doğrulama, mevcut tarifi iyileştirmeli, onu sessizce genel bir varsayılanla değiştirmemelidir. Yine de normalleştirilmiş tarif, derlemeden önceki son kontrol noktasıdır.
Her malzeme gereksinimi için:
- karşılık gelen normalleştirilmiş alanı bulun;
- değerini ve hedef kapsamını teyit edin;
- çalışma zamanı kanıtının mümkün olduğu bir iddia ekleyin; ve
- yalnızca dağıtım çalışmasını, görüntü oluşturma sırasında gerçekleşmiş gibi davranmak yerine açık bir uyarı olarak koruyun.
Kontrol listesini inceleyin
- Temel görüntü ve mimari doğru mu?
- İstenilen tüm masaüstü ve uygulama özellikleri mevcut mu?
- Dış kaynaklar kullanım amacına göre sabitlenmiş ve lisanslanmış mı?
- Kaydedilen tarif alanlarında ve komut dosyalarında sırlar yok mu?
- İstenirse yükleyici tek kullanımlık bir disk üzerinde yapılandırılmış ve test edilmiş mi?
- Senaryolar gerçek kabul kriterlerini test ediyor mu?
- Desteklenmeyen veya dağıtım süresi gereksinimleri belirtildi mi?
Alan referansı için Tarif Şeması’e ve derleme ve indirme iş akışı için İlk Derlemeniz’e bakın.