موفر Terraform AWS الملحمي لبنية تحتية Amazon الخاصة بك

إذا كنت تخطط لإدارة والعمل مع خدمات أمازون ويب سيرفيسز (AWS)، فإن استخدام تيرا فورم مزود AWS ضروري. يتيح لك التفاعل مع العديد من الموارد المدعومة بواسطة AWS، مثل أمازون S3، Elastic Beanstalk، Lambda، وغيرها الكثير.

في هذا الدليل النهائي، ستتعلم، خطوة بخطوة، كل ما تحتاج إلى معرفته عن مزود AWS وكيفية استخدام هذا المزود مع تيرا فورم لإدارة بنية أمازون الخاصة بك.

لنبدأ!

المتطلبات الأساسية

إذا كنت ترغب في متابعة هذا البرنامج التعليمي، تأكد من وجود ما يلي:

  • حساب خدمة ويب أمازون (AWS).
  • مستخدم IAM مع معرّف مفتاح وصول ومفتاح سري تم إعداده على جهازك المحلي.
  • Terraform v0.14.9 – تتم العروض التوضيحية لهذا البرنامج التعليمي على Ubuntu 18.04.5 LTS، ولكن الأنظمة التشغيلية الأخرى مع Terraform ستعمل أيضًا.
  • A code editor – Even though you can use any text editor to work with Terraform configuration files, you should have one that understands the HCL Terraform language. Try out Visual Studio (VS) Code.

ما هو موفر خدمة AWS لـ Terraform؟

Terraform يعتمد على الوحدات الإضافية للتفاعل مع مقدمي خدمات السحابة مثل AWS و Google Cloud Platform (GCP) و Oracle. واحدة من أكثر مقدمي الخدمات المستخدمة على نطاق واسع هي مقدم الخدمة AWS. يتفاعل هذا المقدم مع العديد من الموارد المدعومة من قبل AWS، مثل Amazon S3، Elastic Beanstalk، Lambda، والمزيد.

يستخدم Terraform مقدم الخدمة AWS بواسطة بيانات اعتماد صحيحة للاتصال بـ Amazon لإدارة أو نشر/تحديث العديد من خدمات AWS.

يتم إعلان مقدم الخدمة AWS داخل ملف تكوين Terraform ويشمل معلمات متنوعة مثل الإصدار، وعناوين URL النهاية أو المناطق السحابية، إلخ.

إعلان مقدم الخدمة AWS

عندما تحتاج إلى الإشارة إلى اسم مزود الخدمة، يجب أن تعرف اسمًا محليًا. الاسم المحلي هو اسم مزود الخدمة الذي يتم تعيينه داخل كتلة required_providers. يتم تعيين الأسماء المحلية عند الحاجة إلى مزود ويجب أن تكون فريدة لكل وحدة.

عند الإعلان عن required_providers، يجب أيضًا أن تعلن عن معلمة source في Terraform 0.13 والإصدارات الأحدث. تعيين معلمة source عنوان المصدر حيث يمكن لـ Terraform تنزيل الإضافات.

يتألف عناوين المصادر من ثلاثة أجزاء، على النحو التالي:

  • اسم المضيف – اسم المضيف في سجل Terraform الذي يوزع المزود. المضيف الافتراضي هو registry.terraform.io.
  • النطاق – مساحة تنظيمية تخص داخل السجل المحدد registry.
  • النوع – النوع هو اسم قصير تقدمه للنظام أو المنصة التي يديرها مزود الخدمة، ويجب أن يكون فريدًا.

أدناه، يمكنك رؤية صيغة إعلان معلمة المصدر، حيث يتم فصل الأجزاء الثلاثة لعنوان المصدر بواسطة شرطات (/).

## <HOSTNAME>/]<NAMESPACE>/<TYPE>

# استخدام مثال للمعلمة المصدرية

# تعريف موقع/عنوان المصدر حيث يمكن لـ Terraform تنزيل الإضافات
# موفر AWS الرسمي ينتمي إلى مساحة الأسماء hashicorp على
# السجل.terraform.io. لذا، عنوان مصدر hashicorp هو hashicorp/aws
source  = "hashicorp/aws"

الآن يقوم التكوين Terraform أدناه بتعريف اسم موفر الخدمة المطلوب (aws)، بالإضافة إلى عنوان المصدر، وإصدار موفر AWS، وتكوين منطقة موفر الخدمة (us-east-2).

# تعريف متطلبات الموفر عند تثبيت Terraform 0.13 وما بعدها
terraform {
  # يتكون متطلب الموفر من اسم محلي (aws)، 
  # موقع المصدر، وقيود الإصدار. 
  required_providers {
    aws = {     
      # تعريف موقع/عنوان المصدر حيث يمكن لـ Terraform تنزيل الإضافات
      source  = "hashicorp/aws"
      # تعريف إصدار موفر aws كأكبر من 3.0
      version = "~> 3.0"  
    }
  }
}

# تكوين موفر AWS في منطقة us-east-2
provider "aws" {
  region = "us-east-2"
}

المصادقة على حساب AWS باستخدام بيانات اعتماد مشفرة صلبة

الآن بعد أن لديك فهم أساسي لكيفية تعريف موفر AWS دعنا نتحدث عن كيفية مصادقة حساب AWS.

يمكنك المصادقة على موفر خدمة AWS بعدة طرق مختلفة، مثل تعريف متغيرات البيئة وتخزين بيانات الاعتماد في ملف تعريف مسمى. ومع ذلك، أسرع طريقة للمصادقة على حساب AWS هي عن طريق تضمين بيانات الاعتماد مباشرة داخل موفر AWS الخاص بك.

على الرغم من أنه لا يُنصح بتضمين بيانات الاعتماد بشكل صلب نظرًا لاحتمال تسربها، يمكنك لاحقًا تعريف بيانات اعتماد صلبة في تكوين Terraform لاختبار أي مورد AWS بسرعة. ولكن تابع القراءة وستتعلم لاحقًا طريقة أفضل للمصادقة على حساب AWS عن طريق تعريف متغيرات البيئة.

التكوين أدناه يعرف اسمًا محليًا (aws) مع منطقة الموفر (us-east-2)، كما هو موضح أدناه. يمكنك رؤية أن كتلة موفر AWS تعرف أيضًا مفتاح وصول ومفتاح سري للمصادقة على حساب AWS.

# تعريف موفر AWS بالاسم aws
provider "aws" {
  # تعريف منطقة الموفر
  region = "us-east-2"
  # تعريف مفتاح الوصول والمفتاح السري
  access_key = "access-key"
  secret_key = "secret-key"
}

تأمين بيانات الاعتماد عن طريق تعريف متغيرات البيئة

لقد تعلمت للتو أن تضمين بيانات الاعتماد الثابتة للمصادقة على خدمة السحابة AWS باستخدام Terraform أمر ممكن. ومع ذلك، يعتبر التضمين الصلب غير آمن ويُنصح به فقط أثناء نشره في بيئة اختبار لاختبار الشيفرة بسرعة.

هل هناك طريقة أخرى لتأمين بيانات الاعتماد؟ نعم، عن طريق تعريفها كـ متغيرات البيئة، ليس هناك حد لعدد الذي يمكنك تعريفه. متغيرات البيئة هي متغيرات قيمها مُعينة خارج ملف تكوين تيرافورم وتتألف من زوج اسم/قيمة.

قم بتشغيل سلسلة من أوامر export أدناه لتصدير كل متغير بيئي. تصدير متغيرات البيئة يجعلها متاحة عبر البرنامج أو حتى يقوم تيرافورم بتنفيذه.

# تصدير متغير AWS_ACCESS_KEY_ID
export AWS_ACCESS_KEY_ID="access-key"
# تصدير متغير AWS_SECRET_ACCESS_KEY
export AWS_SECRET_ACCESS_KEY="secret-key"
# تصدير متغير AWS_DEFAULT_REGION
export AWS_DEFAULT_REGION="us-east-2"

تخزين بيانات اعتماد متعددة في ملف تكوين بأسماء

كلاً من تشفير الثابت وتعريف بيانات الاعتماد كمتغيرات بيئية يتيح لك المصادقة على حساب AWS واحد في كل مرة. ولكن ماذا لو كنت بحاجة إلى تخزين بيانات اعتماد متعددة واستخدامها عند الحاجة؟ تخزين بيانات الاعتماد في ملف تكوين بأسماء هو الخيار المثالي.

الكود أدناه ينشئ ملف تكوين بأسماء (Myprofile) يحتوي على مفتاح وصول ومفتاح سري.

موقع ملفات التكوين بأسماء الافتراضي هو $HOME/.aws/credentials/Myprofile على نظام التشغيل Linux و macOS، أو %USERPROFILE%\.aws\credentials\Myprofile على نظام التشغيل Windows. استبدل Myprofile بالاسم الفعلي لملف التكوين بأسماء.

# إنشاء الملف الشخصي المسمى 'Myprofile'
[Myprofile]
aws_access_key_id = AKIAVWOJMI5836154yRW31
aws_secret_accesss_key = vIaGmx2bJCAK90hQbpNhPV2k5wlW7JsVrP1bm9Ft

بمجرد أن تقوم بإنشاء ملف شخصي في ~/.aws/credentials, يمكنك بعد ذلك الإشارة إلى ذلك الملف الشخصي في تكوين Terraform الخاص بك باستخدام السمة profile. أدناه، أنت تشير إلى الملف الشخصي المسمى Myprofile.

# تكوين مزود AWS المسمى 'aws' في منطقة us-east-2
provider "aws" {
  region = "us-east-2"
  # إعلان الملف الشخصي المسمى (Myprofile)
  profile = "Myprofile"
}

إعلان الفرضية Role في مزود AWS

لقد تعلمت للتو كيفية تكوين مزود AWS عن طريق إعلان اعتماد اعتماد الاعتماد الثابت قبل تشغيل Terraform. ولكن ربما ترغب في إعلان بيانات اعتماد أثناء التشغيل. إذا كان الأمر كذلك، فإن واجهة برمجة التطبيقات AssumeRole هي ما تحتاجه. توفر AssumeRole بيانات اعتماد مؤقتة تحتوي على معرف مفتاح الوصول ومفتاح الوصول السري ورمز الأمان. تتيح لك هذه الاعتماديات الاتصال بخدمات AWS.

الشيفرة أدناه تعلن عن provider المسمى aws و assume_role الذي يحتوي على اسم دور واسم جلسة. لتكوين الوصول إلى AssumeRole، يجب عليك تحديد دور IAM يحدد الامتيازات التي يمنحها والكيانات التي يمكنها تحمله.

# تعريف موفر AWS بالاسم 'aws'
provider "aws" {
  # تعريف AssumeRole
  assume_role {
		# تعريف اسم مورد. 
    # role_arn هو الاسم المميز للمورد في Amazon (ARN) للدور IAM الذي يتعين الافتراض به. 
    # ARN هو رقم فريد متماثل لجميع الموارد في حساب AWS.
    role_arn     = "arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME"
    # تعريف اسم جلسة
    session_name = "SESSION_NAME"
  }
}

تعريف عدة موفرين AWS

حتى الآن ، تعلمت كيفية تعريف وتكوين موفر AWS في Terraform الذي يعمل مع منطقة واحدة. ولكن ماذا لو كنت بحاجة إلى إدارة بنية الأنظمة الخاصة بك أو خدمات AWS في عدة مناطق سحابية؟ في هذه الحالة ، ستحتاج إلى تعريف الكلمة الرئيسية alias.

يسمح الاسم بتحديد عدة تكوينات لنفس الموفر واختيار أي واحدة لاستخدامها على أساس للمورد أو الوحدة النمطية أو دعم عدة مناطق.

الكود أدناه يعرف موفر AWS الافتراضي بالاسم aws مع region المعينة على us-east-2. ثم يعلن موفر AWS إضافي بنفس الاسم ، ولكن بـ alias معلن باسم west و region المعينة على us-west-2.

تعلن alias تسمح لك بإنشاء موارد في us-east-2 افتراضيًا أو في منطقة us-west-2 إذا اخترت مزود aws.west اعتمادًا على المتطلبات.

# تكوين موارد مزود الافتراضي التي تبدأ بـ aws.
provider "aws" {
  # تعلين منطقة us-east-2 لمزود AWS المسمى 'aws'
  region = "us-east-2" 
}

# تكوين مزود إضافي لمنطقة الغرب. 
# يمكن للموارد الإشارة إلى هذا بوصفه aws.west.
provider "aws" {
  alias  = "west"
  # تعلين منطقة us-west-2 لمزود AWS المشار إليه بـ 'west'
  region = "us-west-2"
}

# تعلين المورد باستخدام مزود إضافي في منطقة الغرب
resource "aws_instance" "west-region" {
  # تعلين مزود كـ aws.west
  # يتم الإشارة إلى aws.west من مزود AWS المسمى 'aws' وبالاسم المستعار 'west'
  provider = aws.west
}

# تعلين المورد باستخدام المزود الافتراضي
resource "aws_instance" "east-region" 
}

تخصيص تكوين نقطة النهاية لمزود AWS

تخصيص تكوين نقطة النهاية مفيد عند الاتصال بنقاط نهاية خدمات AWS غير الافتراضية، مثل AWS Snowball أو أداء الاختبار المحلي.

تكوين مزود Terraform AWS لاستخدام نقاط النهاية المخصصة. افعل ذلك عن طريق تعريف كتلة التكوين endpoints داخل كتلة المزود، كما هو موضح أدناه.

التكوين أدناه يتيح لك الوصول إلى خدمة AWS S3 على المنفذ المحلي 4572 كما لو كنت فعلا تستخدم خدمة AWS S3 على حساب AWS. بالمثل، يتيح لك التكوين الوصول إلى dynamodb محليًا على المنفذ 4569. DynamoDB هو خدمة قاعدة بيانات NoSQL توفر أداء سريع مع قابلية توسع سلسة.

تحقق من قائمة نقاط النهاية المخصصة التي يسمح بها مزود Terraform AWS.

# تعريف مزود AWS بالاسم 'aws'
provider "aws" {
  # تعريف نقاط النهاية
  endpoints { 
    # تعريف dynamodb على localhost بالمنفذ 4569 
    dynamodb = "<http://localhost:4569>"  
    # تعريف S3 على localhost بالمنفذ 4572
    s3 = "<http://localhost:4572>"  
  }
}

إضافة علامات

سبق لك أن تعلمت كيفية تعريف مزود AWS بتكوينات مثل المنطقة، وموقع المصدر، إلخ. ولكن لإدارة مواردك بشكل أفضل، تحتاج إلى إضافة علامات على مستوى المزود.

العلامات هي عبارة عن تسميات تتألف من مفاتيح وقيم محددة من قبل المستخدم. العلامات مفيدة عندما تحتاج إلى التحقق من الفوترة والملكية والتشغيل ومراقبة الوصول والعديد من الحالات الاستخدامية الأخرى في حساب AWS.

بدلاً من إضافة العلامات إلى جميع الموارد بشكل فردي، دعنا نتعلم كيفية إضافة العلامات إلى جميع الموارد على مستوى مزود الخدمة مما سيساعد في توفير الكثير من الشفرة والوقت.

الشفرة أدناه تكون مزود AWS مع العلامات المحددة داخل default_tags. الفائدة من إضافة العلامات داخل المزود هي أن العلامات المحددة ستتم إضافتها تلقائيًا عند إنشاء أي مورد باستخدام هذا المزود.

# تكوين مزود AWS المسمى 'aws'
provider "aws" {
  # إضافة علامات الافتراضات البيئية والمالك على مستوى المزود
  default_tags {
    # تعريف قيم العلامات
    tags = {
      Environment = "Production"
      Owner       = "shanky"
    }
  }
}
# إنشاء المورد 'aws_vpc' مع وسم Name=MyVPC
resource "aws_vpc" "myinstance" {
  tags = {
    Name = "MyVPC"
  }
}

تجاهل العلامات

تمكين العلامات على مستوى المزود يساعد في تطبيق العلامات في جميع أنحاء البيئة. ولكن في بعض الأحيان، قد تحتاج إلى تجاهل العلامات، مثل عندما لا ترغب في إضافة علامة افتراضية إلى مثيل EC2 وبدلاً من ذلك تطبيقها على بقية الموارد في حساب AWS. لنلقي نظرة!

الشفرة أدناه تكون مزود AWS مع تجاهل العلامات المحددة داخل المزود. الفائدة من استخدام علامة التجاهل هي عندما لا ترغب في إضافة علامات افتراضية إلى بعض الموارد وتطبيقها على بقية الموارد.

في الكود أدناه، عند إنشاء أي مورد باستخدام مزود الخدمة aws، ستتجاهل جميع الموارد علامات LastScanned و kubernetes.io.

# تكوين مزود AWS المسمى aws
provider "aws" {
	# تجاهل مفاتيح العلامة والمفاتيح عبر جميع الموارد تحت مزود AWS (aws)
  ignore_tags {
    key_prefixes = ["kubernetes.io"]
  }
  ignore_tags {
    keys = ["LastScanned"]
  }
}

إنشاء دلو S3 في AWS

حتى الآن، لقد تعلمت كل شيء عن كيفية إعلان وتكوين مزودات AWS بشكل مفصل. ولكن فقط بإعلان مزود AWS لا يفعل شيئًا حتى تدير موارد AWS مثل توفير دلو S3 ل AWS أو حذف مثيل Ec2 وما إلى ذلك. لذا، دعنا نتعلم كيفية إنشاء دلو S3 في AWS!

1. قم بإنشاء مجلد بالاسم ~/terraform-s3-demo، ثم قم بتغيير (cd) دليل العمل إلى هذا المجلد. سيحتوي المجلد ~/terraform-s3-demo على ملف التكوين الخاص بك وجميع الملفات المرتبطة التي سيقوم Terraform بإنشائها.

mkdir ~/terraform-s3-demo
cd ~/terraform-s3-demo

2. قم بنسخ ولصق التكوين أدناه في محرر الكود المفضل لديك، واحفظه بالاسم main.tf في الدليل ~/terraform-s3-demo.

يقوم ملف main.tf بإنشاء بعض الموارد الضرورية:

  • متطلبات المزود: تتكون متطلبات المزود من اسم محلي وموقع مصدر وقيد الإصدار.
  • مفتاح التشفير: يساعد مفتاح تشفير Amazon S3 على تشفير دلو S3 بحيث تُشفر جميع الكائنات الجديدة عند تخزينها في الدلو. يتم إنشاء مفاتيح التشفير باستخدام aws_kms_key في Terraform.
  • تكوين موفر خدمة AWS: إعلان اسم موفر الخدمة (aws) مع المنطقة us-east-2.
  • الدلو: يقوم هذا الوحدة في Terraform بإنشاء دلو يسمى terraformdemobucket. لا يمكن لـ Terraform تدمير هذا الدلو لأنه يحتوي على علم force_destroy.

الإصدار: الإصدار في Amazon S3 يعني الاحتفاظ بعدة نسخ من كائن في نفس الدلو

# تكوين موفر الخدمة AWS المسمى aws
provider "aws" {
# تجاهل علامات key_prefixes و keys عبر جميع الموارد تحت موفر خدمة aws. 
  ignore_tags {
    key_prefixes = ["kubernetes.io/"]
  }
  ignore_tags {
    keys = ["LastScanned"]
  }
}

# إعلان متطلبات موفر الخدمة
terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
      version = "~> 3.0"
    }
  }
}

# تكوين موفر الخدمة AWS (aws) مع تحديد المنطقة إلى 'us-east-2'
provider "aws" {
  region = "us-east-2"
}

# منح وصول الدلو
resource "aws_s3_bucket_public_access_block" "publicaccess" {
  bucket = aws_s3_bucket.demobucket.id
  block_public_acls = false
  block_public_policy = false
}

# إنشاء مفتاح التشفير الذي سيشفر كائنات الدلو
resource "aws_kms_key" "mykey" {
  deletion_window_in_days = "20"
}

# إنشاء الدلو بالاسم terraformdemobucket
resource "aws_s3_bucket" "demobucket" {
  bucket = terraformdemobucket
  force_destroy = false
  server_side_encryption_configuration {
    rule {
        apply_server_side_encryption_by_default {
        kms_master_key_id = aws_kms_key.mykey.arn
        sse_algorithm = "aws:kms"
      }
    }
  }
  # الاحتفاظ بعدة نسخ من كائن في نفس الدلو
  versioning {
    enabled = true
  }
}

3. الآن، قم بتشغيل الأوامر أدناه للانتقال إلى الدليل ~\\terraform-s3-demo وبدء Terraform. يقوم Terraform بتهيئة المكونات الإضافية ومزودي الخدمة التي يتعين استخدامها مع الموارد.

عادةً ما يستخدم Terraform نهج الأوامر الثلاثة بتسلسل terraform init، terraform plan، و terraform apply.

cd ~\terraform-s3-demo       # قم بالتغيير إلى دليل ~\terraform-s3-demo
terraform init               # بدء Terraform
terraform plan               # تأكد من أن بنية التكوين الخاصة بك صحيحة الصياغة
terraform apply -auto-approve # توفير دلو AWS S3

إنشاء مثيلات EC2 ومستخدمي IAM في AWS

في القسم السابق، تعلمت كيفية إنشاء كائن واحد (دلو AWS S3) باستخدام Terraform مع مزود خدمة AWS. ولكن في الواقع، يمكنك إنشاء عدة كائنات من نفس النوع باستخدام Terraform مع مزود خدمة AWS.

1. قم بإنشاء مجلد يحمل اسم ~/terraform-ec2-iam-demo، ثم انتقل إلى داخله

٢. افتح محرر الكود المفضل لديك، انسخ/الصق التكوين أدناه، واحفظ الملف باسم main.tf في المجلد ~/terraform-ec2-iam-demo.

الكود أدناه يُنشئ حالتين من EC2 ec21a وec21a، مع أنواع t2.micro وt2.medium لأنواع الحالات، ثم ينشئ مستخدمين IAM بأربعة أسماء مختلفة. الـami المُعلن في الكود هو صورة آلة أمازون (AMI)، التي توفر المعلومات المطلوبة لإطلاق حالة، مثل نوع نظام التشغيل، أي برنامج يجب تثبيته، إلخ.

يمكنك العثور على صور لينكس AMIs باستخدام واجهة أمازون EC2.

# إنشاء النموذج باستخدام نوع النموذج t2.micro و t2.medium
resource "aws_instance" "my-machine" {
# إعلان AMI
  ami = "ami-0a91cd140a1fc148a"
  for_each  = {
      key1 = "t2.micro"
	    key2 = "t2.medium"
   }
  instance_type  = each.value
	key_name       = each.key
    tags =  {
	   Name  = each.value
	}
}
# إنشاء مستخدمي IAM باسماء مختلفة
resource "aws_iam_user" "accounts" {
  for_each = toset( ["Account1", "Account2", "Account3", "Account4"] )
  name     = each.key
}

3. بعد ذلك، قم بإنشاء ملف آخر، قم بنسخ/لصق الكود أدناه، واحفظ الملف باسم vars.tf في الدليل ~/terraform-ec2-iam-demo.

الكود أدناه يعلن عن جميع المتغيرات التي يتم الرجوع إليها في ملف main.tf. بعد تشغيل كود التيرافورم، يتم تعيين قيمة المتغير tag_ec2 بقيم ec21a و ec21b إلى النموذجين EC2 المحددين في ملف main.tf.

variable "tag_ec2" {
  type = list(string)
  default = ["ec21a","ec21b"]
}

4. قم بإنشاء ملف تكوين آخر للتيرافورم يسمى output.tf في الدليل ~/terraform-ec2-iam-demo، ثم قم بنسخ/لصق الكود أدناه في ملف output.tf.

بعد تنفيذ الأمر terraform apply بنجاح، يجب أن ترى قيم ${aws_instance.my-machine.*.id} و ${aws_iam_user.accounts.*.name} في نهاية مخرجات الأمر.

الكود أدناه يخبر التيرافورم بالرجوع إلى موارد aws_instance و aws_iam_user المعرفة في ملف تكوين main.tf.

output "aws_instance" {
   value = "${aws_instance.my-machine.*.id}"
}
output "aws_iam_user" {
   value = "${aws_iam_user.accounts.*.name}"
}

5. قم بإنشاء ملف تكوين إضافي في الدليل ~/terraform-ec2-iam-demo يسمى provider.tf، والصق الكود أدناه في ملف provider.tf. يقوم ملف provider.tf بتعريف موفر Terraform AWS بحيث يعرف Terraform كيفية التفاعل مع جميع الموارد AWS التي قمت بتعريفها في الخطوات السابقة.

provider "aws" {
   region = "us-east-2"
 }

6. الآن، تحقق من وجود جميع الملفات المطلوبة أدناه في المجلد ~/terraform-ec2-iam-demo عن طريق تشغيل الأمر tree.

Showing all the Terraform configuration files required

7. قم بتشغيل الأوامر أدناه بالترتيب السليم لبدء تهيئة Terraform وإنشاء مثيلات AWS EC2 ومستخدمي IAM.

terraform init
terraform plan
terraform apply
Terraform apply command executed successfully.

أخيرًا، انتقل إلى واجهة تحكم إدارة AWS، ثم انتقل إلى خدمة AWS EC2 وواجهة تحكم IAM.

في لقطات الشاشة التالية، يمكنك التحقق من وجود مثيلات EC2 ومستخدمي IAM.

Verifying the two EC2 instances that got created using Terraform
Verifying the four IAM users that got created using Terraform

الاستنتاج

بهذا الدليل النهائي، يمكنك الآن العمل مع موفر AWS، من الإعلان إلى تنفيذ موفر AWS داخل Terraform. كما تعلمت كيف يتيح لك موفر AWS إعلان بيانات الاعتماد بطرق عديدة بشكل آمن.

الآن، أي خدمة AWS تفكر في إدارتها باستخدام موفر AWS و Terraform؟

Source:
https://adamtheautomator.com/terraform-aws/