terraform-aws-modules
بناء وحدات Terraform AWS جاهزة للإنتاج
إنشاء بنية تحتية قابلة لإعادة الاستخدام في Terraform أمر معقد وعرضة للأخطاء. توفر هذه المهارة إرشادات خبيرة حول تصميم الوحدات وإدارة الحالة وأنماط HCL للإنتاج في AWS.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "terraform-aws-modules". إنشاء وحدة EKS cluster قابلة لإعادة الاستخدام مع تعريفات متغيرات مناسبة
النتيجة المتوقعة:
يوفر هيكل وحدة كامل مع variables.tf يحدد cluster_name وnode_count وinstance_type مع قواعد التحقق من الصحة، وmain.tf مع موارد aws_eks_cluster وaws_eks_node_group باستخدام for_each لمجموعات العقد، وoutputs.tf لتصدير cluster endpoint وnode group ARN، وversions.tf لتثبيت مزود aws على >= 4.0
استخدام "terraform-aws-modules". تكوين قفل الحالة لبيئة الإنتاج
النتيجة المتوقعة:
يرجع تكوين S3 backend مع bucket terraform-state-prod، ومفتاح env/prod/terraform.tfstate، ومنطقة us-east-1، وجدول DynamoDB tf-state-lock، والتشفير ممكّن، بالإضافة إلى تعليمات لاستيراد الحالة الأولية وسياسات وصول الفريق
التدقيق الأمني
آمنStatic analysis detected 25 patterns but all are false positives. External command references are Terraform CLI documentation examples (terraform fmt, validate, plan, force-unlock), not executable code. The CIDR block 10.0.0.0/16 is standard RFC1918 private networking for VPC configuration. This is documentation-only content with no executable code.
درجة الجودة
ماذا يمكنك بناءه
مهندس DevOps يبني وحدات VPC
إنشاء وحدة VPC قابلة لإعادة الاستخدام مع تعريفات متغيرات مناسبة ومخرجات وإستراتيجية وضع علامات لنشر الشبكة المتسق عبر البيئات.
فريق المنصة يعد إدارة الحالة
تكوين backend S3 مع قفل DynamoDB لحالة Terraform الإنتاجية، مما يضمن عمليات متزامنة آمنة وتشفير الحالة.
مطور يهاجر من CloudFormation
ترجمة قوالب CloudFormation الموجودة إلى Terraform HCL مع هيكل وحدة مناسب وإدارة حالة من البداية.
جرّب هذه الموجهات
أنشئ هيكل وحدة Terraform لـ S3 bucket في AWS مع تمكين versioning. ضمّن variables.tf لاسم bucket وعلم versioning، وmain.tf مع المورد، وoutputs.tf لـ bucket ARN والاسم، وversions.tf لتثبيت مزود AWS.
راجع وحدة Terraform هذه لأفضل الممارسات ومشاكل الأمان. تحقق من صحة المتغير المناسبة، ووضع علامة على المخرجات الحساسة، وتثبيت إصدار المزود، وإستراتيجية وضع العلامات المتسقة.
صمم تكوين backend حالة عن بعد لفريق به بيئات dev وstaging وproduction. استخدم S3 للتخزين مع قفل DynamoDB. ضمّن مفاتيح حالة منفصلة لكل بيئة ومكّن التشفير.
أعد refactor تكوين Terraform هذا لاستخدام for_each بدلاً من count لإدارة subnets متعددة. الكود الحالي يستخدم count مع list indexing مما يسبب مشاكل عند إزالة العناصر الوسطى. حافظ على جميع السمات الموجودة.
أفضل الممارسات
- ثبت إصدارات المزود والوحدات في versions.tf لمنع التغييرات الكبيرة أثناء التحديثات
- استخدم for_each بدلاً من count عندما يجب أن تبقى هوية المورد مستقرة عبر التطبيقات
- خزّن الحالة عن بعد في S3 مع قفل DynamoDB ومكّن التشفير من جانب الخادم
تجنب
- استخدام count للموارد التي قد تُزال منها العناصر الوسطى، مما يسبب إعادة إنشاء غير ضرورية
- إيداع ملفات .tfstate في تحكم الإصدار مما يعرض بيانات المورد الحساسة
- الإشارة إلى الحالة من تكوينات أخرى دون استخدام مصدر بيانات terraform_remote_state
الأسئلة المتكررة
كيف أتعامل مع أخطاء قفل الحالة بعد فشل terraform apply؟
هل يجب استخدام ملف حالة واحد أم حالات منفصلة لكل بيئة؟
كيف أُدير الأسرار في متغيرات Terraform؟
ما الفرق بين count وfor_each في Terraform؟
كيف أستورد موارد AWS الموجودة إلى حالة Terraform؟
هل يمكنني استخدام هذه المهارة للبنية التحتية لـ Azure أو GCP؟
تفاصيل المطور
المؤلف
sickn33الترخيص
MIT
المستودع
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/terraform-aws-modulesمرجع
main
بنية الملفات
📄 SKILL.md