الموفّرون والموارد
تعرّفوا إلى كيفية تفاعل Terraform مع موفّري الخدمات والسحابة المختلفين، وكيفية تعريف مكوّنات البنية التحتية الفردية بوصفها موارد.
الموفّرون والموارد درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
لبنات Terraform الأساسية
مرحبًا بكم! يساعدكم Terraform على إدارة بنيتكم التحتية السحابية باستخدام التعليمات البرمجية. لكن كيف يتواصل فعليًا مع مزوّدي الخدمات السحابية ويحدّد ما تريدون إنشاءه؟
يقدّم هذا الدرس مفهومين أساسيين: Providers وResources. وهما اللبنات الأساسية لكل إعدادات Terraform، كما أن فهمهما ضروري لاستيعاب كيفية عمل IaC.
ما مزوّدو Terraform؟
تخيّلوا أن Provider إضافة تتيح لـ Terraform التفاعل مع خدمة أو API خارجي. وقد يكون ذلك مزوّدًا سحابيًا مثل AWS أو Azure أو Google Cloud، أو حتى خدمات مثل GitHub أو Kubernetes أو Datadog.
- يفهم كل مزوّد استدعاءات API المحددة اللازمة لخدمته.
- يحوّل البنية التحتية المطلوبة منكم إلى إجراءات يمكن للخدمة تنفيذها.
- تضبطون المزوّدين لإخبار Terraform بالخدمة التي تريدون استخدامها وكيفية المصادقة.
التصريح بكتلة مزوّد
لاستخدام مزوّد، تصرّحون به في ملفات إعداد Terraform باستخدام كتلة provider. تحدد هذه الكتلة اسم المزوّد وأي إعدادات يحتاج إليها، مثل المنطقة بالنسبة إلى مزوّد سحابي.
إليكم مثالًا شائعًا على مزوّد AWS:
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "us-east-1"
}terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "us-east-1"
}مصدر المزوّد وإصداره
يُعد قسم required_providers في كتلة terraform مهمًا. فهو يخبر Terraform بمكان العثور على المزوّد (أي source) والإصدار الذي ينبغي استخدامه (أي version). ويضمن ذلك الاتساق ويمنع السلوك غير المتوقع.
- Source: يحدد مسار السجل الخاص بالمزوّد (مثل
hashicorp/aws). - Version: يثبّت إصدار المزوّد، ما يمنع التغييرات غير المتوافقة الناتجة عن الإصدارات الجديدة.
- تضبط كتلة
provider "aws"بعد ذلك إعدادات محددة، مثلregionالخاص بـ AWS، لجميع الموارد التي يديرها هذا المزوّد.
ما موارد Terraform؟
Resource هي كتلة تصف مكوّنًا واحدًا من بنيتكم التحتية. وقد يكون ذلك جهازًا افتراضيًا (VM)، أو شبكة، أو قاعدة بيانات، أو حاوية تخزين، أو حتى حساب مستخدم.
- يدير كل نوع من الموارد مزوّد محدد (مثلًا، يدير مزوّد AWS المورد
aws_s3_bucket). - تصرّحون بالحالة المطلوبة لموردكم، ويعمل Terraform على تحقيق تلك الحالة.
- تحتوي الموارد على وسائط تحدد خصائصها (مثل الحجم والاسم والموقع).
التصريح بكتلة مورد
تعرّفون موردًا باستخدام كتلة resource. وتتطلب هذه الكتلة سلسلتي نص:
- نوع المورد (مثل
aws_s3_bucket). - اسم محلي (مثل
my_first_bucket) يكون فريدًا ضمن إعداداتكم.
يُخبر النوع Terraform بنوع مكوّن البنية التحتية، بينما يمنحه الاسم معرّفًا فريدًا يتتبعه Terraform.
resource "aws_s3_bucket" "my_first_bucket" {
# Arguments go here to define its properties
}resource "aws_s3_bucket" "my_first_bucket" {
# Arguments go here to define its properties
}وسائط الموارد وخصائصها
تحددون داخل كتلة resource الوسائط. وهي أزواج مفتاح-قيمة تحدد خصائص مكوّن البنية التحتية وإعداداته. وتعتمد الوسائط المتاحة على نوع المورد والمزوّد الذي يديره.
- قد تتضمن وسائط حاوية AWS S3
bucket(الاسم الفريد)، أوacl(قائمة التحكم بالوصول)، أوtagsلإضافة التسميات. - يستخدم Terraform هذه الوسائط لإنشاء المورد أو تحديثه بما يطابق حالتكم المطلوبة في السحابة.
جمع العناصر: المزوّد والمورد
إليكم إعدادًا بسيطًا وكاملًا لـ Terraform. يصرّح بمزوّد AWS، ثم يستخدمه لإنشاء حاوية S3 أساسية. هذا الملف الواحد هو كل ما تحتاجون إليه لبدء تعريف البنية التحتية!
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "us-east-1"
}
resource "aws_s3_bucket" "my_unique_bucket" {
bucket = "my-coddykit-demo-bucket-12345" # Must be globally unique!
acl = "private"
tags = {
Environment = "Development"
Project = "CoddyKit"
}
}terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "us-east-1"
}
resource "aws_s3_bucket" "my_unique_bucket" {
bucket = "my-coddykit-demo-bucket-12345" # Must be globally unique!
acl = "private"
tags = {
Environment = "Development"
Project = "CoddyKit"
}
}صلة سير عمل Terraform
عند تنفيذ أوامر Terraform، تؤدي المزوّدات والموارد أدوارًا أساسية:
terraform init: ينزّل إضافات المزوّد اللازمة.terraform plan: يستخدم المزوّد للتواصل مع API السحابي وتحديد التغييرات اللازمة لتحقيق حالة المورد المطلوبة.terraform apply: يوجّه المزوّد لإجراء تلك التغييرات على بنيتكم التحتية السحابية الفعلية.
وهما نقطتا التفاعل الأساسيتان لإدارة بنيتكم التحتية.
اختبار سريع: دور المزوّد
لقد تعلّمتم عن المزوّدات والموارد. لنرَ إن كنتم تستطيعون تحديد أدوارها بشكل صحيح.
مراجعة: المزوّدات والموارد
أحسنتم! اكتسبتم في هذا الدرس فهمًا أساسيًا لأهم مفهومين في Terraform:
- Providers: هي الإضافات الأساسية التي تمكّن Terraform من التفاعل مع مختلف الخدمات السحابية وواجهات API. وتضبطونها لتحديد الخدمة المستخدمة وكيفية المصادقة.
- Resources: هي مكوّنات البنية التحتية الفردية التي تصرّحون بها في إعداداتكم. ولها أنواع ووسائط تحدد حالتها المطلوبة.
يعمل هذان العنصران معًا لتمكينكم من تعريف بنيتكم التحتية وإدارتها بصفتها تعليمات برمجية بكفاءة!
الأسئلة الشائعة
هل درس «الموفّرون والموارد» مجاني؟
نعم — نص درس «الموفّرون والموارد» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «الموفّرون والموارد»؟
تعرّفوا إلى كيفية تفاعل Terraform مع موفّري الخدمات والسحابة المختلفين، وكيفية تعريف مكوّنات البنية التحتية الفردية بوصفها موارد. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «الموفّرون والموارد»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.