الكونسول بينسى
لو فتحت صفحة AWS وعمّلت سيرفر، وبعد شهر حد غيّر النوع أو قفل البورت، مفيش ملف يقولك الرسمة الأصلية كانت إيه. كل واحد بيشتغل من ذاكرة، والنتيجة إن الإنتاج يختلف عن اللي في دماغك.
الملف بيخلّي الرسمة في git. تراجعها، ترجّعها، وتشوف الفرق قبل ما أي حاجة تتلمس.
الكونسول كويس للتجربة. الملف هو اللي يفضل لما الحساب يبقى فيه حاجات الناس معتمدة عليها.الملف هو الرسمة
Terraform لغة وصف. بتكتب الشكل اللي عايزه، مش خطوات «اعمل كليك هنا وبعدين هنا». الأداة تقارن الرسمة باللي موجود، وتطلّع قائمة التغييرات.
الاسم الشائع للموضوع: infrastructure as code. الكود هنا مش برنامج بيحسب، ده وصف للبنية.
الـ provider هو المترجم
Terraform نفسه مش عارف يعمل سيرفر على AWS. الـ provider إضافة بتفهم نوع معيّن من الحاجات:
hashicorp/awsيكلّم AWS.hashicorp/localيكتب ملف على جهازك. ده اللي هنستخدمه في المعمل، عشان التجربة متحتاجش حساب كلاود.- فيه provider لكل خدمة تقريبًا، من الريجستري.
جوه الملف، بلوك resource هو حاجة واحدة عايزها تتعمل. نوعها ييجي من الـ provider. اسمها المحلي اسم أنت بتختاره عشان تشير له في باقي الملف.
ملفات .tf. دي اللي بتتحط في git.
الـ provider. terraform init ينزّله.
قبل ما تكمّل
نزّل Terraform من صفحة التثبيت عند HashiCorp، وبعدين terraform version. الأوامر تحت اتشغّلت على 1.16.6. أول init محتاج نت عشان ينزّل الـ provider. بعد كده الأوامر بتشتغل من النسخة اللي اتسجلت في ملف القفل.