Yaygın Sorunlar
Otomasyon süreçlerinde en sık karşılaşılan sorun, Packer'ın işletim sistemi tam olarak hazır hale gelmeden (Boot Complete) komut göndermeye çalışmasıdır.
Özellikle Ubuntu gibi bulut imajlarında,
cloud-initservisi arka planda sistem paketlerini güncellerken, Packer eş zamanlı olarakapt-get installkomutunu gönderirse kilitlenme (Lock) veya "Paket bulunamadı" hatası oluşur.Çözüm: Provisioner adımının en başına, işletim sisteminin hazır olduğunu teyit eden bir bekleme mekanizması (
cloud-init status --wait) eklenmelidir.
2. Sistem Kaynak Yönetimi
Packer, mimari olarak her bir eklentiyi (Builder, Provisioner) ayrı bir İşletim Sistemi Süreci (Process) olarak başlatır.
Çok sayıda paralel derleme (Parallel Builds) yapıldığında, işletim sisteminin izin verdiği maksimum açık dosya limiti (
ulimit -n) aşılabilir. Bu durum "Too many open files" hatasıyla sonuçlanır.Çözüm: Unix tabanlı sistemlerde
ulimitparametrelerinin artırılması, kaynak darboğazını çözer.
3. IPC ve Soket İletişimi
Unix sistemlerinde soket dosya yolları için karakter sınırı (genellikle 100 civarı) bulunmaktadır. Eğer Packer'ın çalışma dizini veya
TMPDIRyolu çok uzunsa, soket oluşturulamaz ve eklenti başlatılamaz.Çözüm: Geçici dizin değişkeni (
TMPDIR), daha kısa bir dizine (Örn:/tmp) yönlendirilerek soket yolu kısaltılmalıdır.
4. Entegrasyon Karmaşıklığı
Ansible'ın standart çalışma mantığındaki "Grup Değişkenleri" (Group Vars) veya karmaşık Jinja2 makroları, Packer'ın izole çalışma ortamında (Chroot/Proxy) her zaman beklenildiği gibi davranmayabilir.
Ansible rollerinin Packer uyumlu hale getirilmesi (Variables'ın rol içine taşınması) ve "Playbook" yapısının basitleştirilmesi gerekebilir.
5. Ağ Topolojisi ve Erişim Kontrolü
Packer, derleme sırasında sunucuya SSH/WinRM ile bağlanmak zorundadır. Eğer sunucu internete kapalı bir ağdaysa bağlantı zaman aşımına uğrar.
Ara sunucular (Bastion Host) veya Windows ortamları için RD Gateway kullanımı gereklidir. Ayrıca AWS tarafında
ec2:GetPasswordDatagibi IAM izinlerinin eksiksiz tanımlanması zorunludur.
6. Gözlemlenebilirlik ve Log Analizi
Birden fazla "Thread" aynı anda log bastığı için, hata mesajları karışık sırada görünebilir.
PACKER_LOG=1ile detaylı loglama açılmalı ve analiz sırasında Zaman Damgaları (Timestamps) referans alınarak olay örgüsü yeniden kurulmalıdır.
Last updated