استيراد الموارد الموجودة
تعلّم كيفية استيراد البنية التحتية السحابية الموجودة مسبقًا إلى حالة Terraform، لإخضاع الموارد الحالية لإدارة البنية التحتية كرمز.
استيراد الموارد الموجودة درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
إدخال البنية التحتية الحالية إلى IaC
قد تكون لديكم أحيانًا موارد سحابية أُنشئت يدويًا أو باستخدام أدوات أخرى. يتيح لكم استيراد Terraform إخضاع هذه الموارد الحالية لإدارة Terraform.
وهذا يعني أن Terraform سيتتبع حالتها، ويمكن تطبيق التغييرات المستقبلية عبر ملفات الإعدادات لديكم. وتُعد هذه خطوة أساسية لاعتماد البنية التحتية كتعليمات برمجية (IaC) في بيئة «brownfield».
متى تحتاجون إلى الاستيراد
يكون الاستيراد مفيدًا في عدة حالات:
- ترحيل البنية التحتية الحالية: إدخال الموارد التي أُنشئت خارج Terraform إلى سير عمل IaC لديكم.
- اعتماد Terraform تدريجيًا: البدء بالموارد الحالية بدلًا من إعادة إنشاء كل شيء.
- الاسترداد من فقدان الحالة: إعادة ربط Terraform بالموارد إذا فُقد ملف الحالة (مع أن ذلك نادر عند استخدام الحالة البعيدة).
إتقان أمر الاستيراد
البنية الأساسية لأمر terraform import مباشرة. فهو يخبر Terraform بالعثور على مورد حالي لدى موفر السحابة وإضافته إلى ملف الحالة، مع ربطه بكتلة مورد في الإعدادات.
ويتطلب معلومتين أساسيتين: عنوان المورد في Terraform ومعرّف ذلك المورد لدى موفر السحابة.
ما عنوان المورد؟
يمثل عنوان المورد الطريقة التي يحدد بها Terraform موردًا معينًا ضمن الإعدادات. ويتبع النمط resource_type.resource_name.
resource_type: نوع المورد (مثلaws_s3_bucketوazurerm_resource_group).resource_name: الاسم المحلي الذي تمنحونه للمورد في إعدادات Terraform (مثلmy_bucketوweb_app).
يجب أن يكون هذا العنوان موجودًا مسبقًا في ملفات .tf لديكم.
العثور على معرّف السحابة
لكل مورد لدى موفر سحابة (مثل AWS وAzure وGCP) معرّف فريد يُسمى غالبًا ID. ستحتاجون إلى هذا المعرّف لإخبار Terraform بالمورد الحالي المحدد الذي تريدون استيراده.
يمكنكم العثور على هذا المعرّف في وحدة تحكم موفر السحابة، أو عبر CLI الخاص به، أو من خلال واجهة API الخاصة به. فعلى سبيل المثال، معرّف حاوية AWS S3 هو اسمها، بينما يملك مثيل EC2 معرّف مثيل مثل i-0abcdef1234567890.
تعريف HCL قبل الاستيراد
خطوة بالغة الأهمية: قبل تشغيل terraform import، يجب أن تكون لديكم كتلة مورد مقابلة معرّفة في ملفات إعدادات Terraform (.tf).
تخبر هذه الكتلة Terraform بنوع المورد المتوقع والسمات التي ينبغي أن يمتلكها. ويستخدم Terraform هذا التعريف لفهم مخطط المورد أثناء الاستيراد.
HCL لحاوية S3
لنفترض أن لديكم حاوية AWS S3 حالية باسم my-existing-coddykit-bucket-123. أولًا، عرّفوا لها كتلة مورد في ملف main.tf:
resource "aws_s3_bucket" "my_imported_bucket" {
bucket = "my-existing-coddykit-bucket-123"
# Add other expected attributes if known
# e.g., acl = "private"
}استيراد حاوية S3
بعد أن أصبح تعريف HCL جاهزًا، يمكنكم تشغيل الأمر terraform import. استبدلوا my-existing-coddykit-bucket-123 بالاسم/المعرّف الفعلي للحاوية الحالية.
تأكدوا من تشغيل terraform init مسبقًا في الدليل لديكم!
terraform import aws_s3_bucket.my_imported_bucket my-existing-coddykit-bucket-123التحقق من حالة Terraform
بعد نجاح الاستيراد، يكون Terraform قد أضاف المورد إلى ملف الحالة. ويمكنكم التحقق من ذلك باستخدام terraform state show، الذي يعرض سمات المورد المستورد كما يراها Terraform.
ومن الضروري بعد ذلك تشغيل terraform plan للتأكد من عدم وجود فروق غير متوقعة بين HCL والحالة الفعلية للمورد المستورد.
terraform state show aws_s3_bucket.my_imported_bucketتحقق سريع: ترتيب الاستيراد
تريدون استيراد مثيل AWS EC2 حالي إلى Terraform. أي من الخطوات التالية يجب إكمالها حتمًا *قبل* تشغيل الأمر terraform import؟
مراجعة: إدخال البنية التحتية إلى Terraform
تعلمتم كيفية إخضاع الموارد السحابية الحالية لإدارة Terraform باستخدام terraform import.
- أولًا، عرّفوا كتلة المورد في HCL.
- ثم حدّدوا معرّف المورد لدى موفر السحابة.
- وأخيرًا، شغّلوا
terraform import ADDRESS ID. - احرصوا دائمًا على تشغيل
terraform planبعد ذلك للتوفيق بين أي فروق.
يساعد هذا الأمر القوي على سد الفجوة بين البنية التحتية المُدارة يدويًا والبيئة المعتمدة بالكامل على IaC.
الأسئلة الشائعة
هل درس «استيراد الموارد الموجودة» مجاني؟
نعم — نص درس «استيراد الموارد الموجودة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «استيراد الموارد الموجودة»؟
تعلّم كيفية استيراد البنية التحتية السحابية الموجودة مسبقًا إلى حالة Terraform، لإخضاع الموارد الحالية لإدارة البنية التحتية كرمز. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «استيراد الموارد الموجودة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الواجهات الخلفية للحالة عن بُعد
- قفل الحالة واتساقها
- استيراد الموارد الموجودة
- إعادة هيكلة الحالة باستخدام moved وremoved