مقدمة
تيرافورم هي أداة لبناء وإدارة البنية التحتية بطريقة منظمة. يمكنك استخدامها لإدارة قطرات DigitalOcean وموازنات الحمل، وحتى إدخالات DNS، بالإضافة إلى مجموعة متنوعة كبيرة من الخدمات التي تقدمها مزودات أخرى. يستخدم تيرافورم واجهة سطر الأوامر ويمكن تشغيله من سطح مكتبك أو خادم عن بعد.
تعمل تيرافورم من خلال قراءة ملفات التكوين التي تصف المكونات التي تشكل بيئة التطبيق أو مركز البيانات الخاص بك. بناءً على التكوين، يقوم بتوليد خطة تنفيذ تصف ما سيفعله للوصول إلى الحالة المطلوبة. بعد ذلك تستخدم تيرافورم لتنفيذ هذه الخطة لبناء البنية التحتية. عند حدوث تغييرات في التكوين، يمكن لتيرافورم توليد وتنفيذ خطط تدريجية لتحديث البنية التحتية الحالية للحالة الموصوفة حديثًا.
في هذا البرنامج التعليمي، ستقوم بتثبيت تيرافورم واستخدامه لإنشاء بنية تحتية على DigitalOcean تتكون من خادمين Nginx يتم توازن حمولتهما بواسطة موازن DigitalOcean Load Balancer. بعد ذلك، ستستخدم تيرافورم لإضافة إدخال DNS على DigitalOcean تشير إلى موازن الحمل الخاص بك. سيساعدك هذا في البدء في استخدام تيرافورم، وسيمنحك فكرة عن كيف يمكنك استخدامه لإدارة ونشر بنية تحتية مبنية على DigitalOcean تلبي احتياجاتك الخاصة.
ملاحظة: تم اختبار هذا البرنامج التعليمي مع تيرافورم 1.1.3
.
المتطلبات الأولية
لإكمال هذا البرنامج التعليمي، ستحتاج إلى:
- A DigitalOcean account. If you do not have one, sign up for a new account.
- A DigitalOcean Personal Access Token, which you can create via the DigitalOcean control panel. Instructions to do that can be found at: How to Create a Personal Access Token.
- A password-less SSH key added to your DigitalOcean account, which you can create by following How To Use SSH Keys with DigitalOcean Droplets. When you add the key to your account, remember the name you give it, as you’ll need it in this tutorial. (For Terraform to accept the name of your key, it must start with a letter or underscore and may contain only letters, digits, underscores, and dashes.)
- A personal domain pointed to DigitalOcean’s nameserver, which you can do by following the tutorial, How To Point to DigitalOcean Nameservers From Common Domain Registrars.
الخطوة 1 — تثبيت تيرافورم
تيرافورم هو أداة سطر الأوامر التي تقوم بتشغيلها على سطح مكتبك أو على خادم عن بُعد. لتثبيتها، ستقوم بتنزيلها ووضعها في مسار PATH
الخاص بك حتى تتمكن من تنفيذها في أي دليل تعمل فيه.
أولاً، قم بتنزيل الحزمة المناسبة لنظام التشغيل والهندسة المعمارية الخاصة بك من صفحة التنزيلات الرسمية. إذا كنت تستخدم macOS أو Linux، يمكنك تنزيل تيرافورم باستخدام curl
.
على macOS، استخدم هذا الأمر لتنزيل تيرافورم ووضعه في دليل المستخدم الخاص بك:
على Linux، استخدم هذا الأمر:
أنشئ الدليل ~/opt/terraform
:
ثم، قم بفك ضغط تيرافورم إلى ~/opt/terraform
باستخدام أمر unzip
. على Ubuntu، يمكنك تثبيت unzip
باستخدام apt
:
استخدمه لاستخراج الأرشيف المنزل إلى دليل ~/opt/terraform
عن طريق تشغيل:
أضف أخيرًا ~/opt/terraform
إلى متغير البيئة PATH
حتى تتمكن من تنفيذ أمر terraform
دون تحديد المسار الكامل إلى الملف التنفيذي.
على نظام Linux، ستحتاج إلى إعادة تعريف PATH
في ملف .bashrc
، الذي يعمل عند فتح شل جديد. قم بفتحه للتحرير عن طريق تشغيل:
ملاحظة: على نظام macOS، أضف المسار إلى الملف .bash_profile
إذا كنت تستخدم Bash، أو إلى .zshrc
إذا كنت تستخدم ZSH.
لإلحاق مسار Terraform بـ PATH الخاص بك، أضف السطر التالي في نهاية الملف:
احفظ وأغلق الملف عند الانتهاء.
الآن ستتمكن جلسات الشل الجديدة الخاصة بك من العثور على أمر terraform
. لتحميل المسار الجديد PATH
في جلستك الحالية، قم بتشغيل الأمر التالي إذا كنت تستخدم Bash على نظام Linux:
إذا كنت تستخدم Bash على macOS، قم بتنفيذ هذا الأمر بدلاً من ذلك:
إذا كنت تستخدم ZSH، قم بتشغيل هذا الأمر:
للتحقق من تثبيت Terraform بشكل صحيح، قم بتشغيل أمر terraform
بدون معاملات:
سترى إخراجًا مماثلاً للتالي:
OutputUsage: terraform [global options] <subcommand> [args]
The available commands for execution are listed below.
The primary workflow commands are given first, followed by
less common or more advanced commands.
Main commands:
init Prepare your working directory for other commands
validate Check whether the configuration is valid
plan Show changes required by the current configuration
apply Create or update infrastructure
destroy Destroy previously-created infrastructure
All other commands:
console Try Terraform expressions at an interactive command prompt
fmt Reformat your configuration in the standard style
force-unlock Release a stuck lock on the current workspace
get Install or upgrade remote Terraform modules
graph Generate a Graphviz graph of the steps in an operation
import Associate existing infrastructure with a Terraform resource
login Obtain and save credentials for a remote host
logout Remove locally-stored credentials for a remote host
output Show output values from your root module
providers Show the providers required for this configuration
refresh Update the state to match remote systems
show Show the current state or a saved plan
state Advanced state management
taint Mark a resource instance as not fully functional
test Experimental support for module integration testing
untaint Remove the 'tainted' state from a resource instance
version Show the current Terraform version
workspace Workspace management
Global options (use these before the subcommand, if any):
-chdir=DIR Switch to a different working directory before executing the
given subcommand.
-help Show this help output, or the help for a specified subcommand.
-version An alias for the "version" subcommand.
هذه هي الأوامر التي يقبلها Terraform. يعطي الإخراج وصفًا موجزًا، وستتعرف على المزيد عنها خلال هذا البرنامج التعليمي.
الآن بعد تثبيت Terraform، دعنا نقوم بتكوينه للعمل مع موارد DigitalOcean.
الخطوة 2 — تكوين تيرافورم لـ DigitalOcean
يدعم تيرافورم مجموعة متنوعة من مزودي الخدمات من خلال مزودات يمكنك تثبيتها. كل مزود لديه مواصفاته الخاصة، والتي عمومًا تتطابق مع واجهة برمجة التطبيقات لمزود الخدمة الخاص به.
يتيح مزود DigitalOcean لتيرافورم التفاعل مع واجهة برمجة التطبيقات الخاصة بـ DigitalOcean لبناء البنية التحتية. يدعم هذا المزود إنشاء موارد DigitalOcean مختلفة، بما في ذلك ما يلي:
- digitalocean_droplet: الـ Droplets (الخوادم)
- digitalocean_loadbalancer: موازنات الحمل
- digitalocean_domain: مدخلات نطاق DNS
- digitalocean_record: سجلات DNS
سيستخدم تيرافورم رمز الوصول الشخصي الخاص بك لـ DigitalOcean للتفاعل مع واجهة برمجة التطبيقات الخاصة بـ DigitalOcean وإدارة الموارد في حسابك. لا تشارك هذا المفتاح مع الآخرين، واحتفظ به بعيدًا عن السكربتات ومراقبة الإصدارات. قم بتصدير رمز الوصول الشخصي الخاص بك لـ DigitalOcean إلى متغير بيئة يسمى DO_PAT
عن طريق تشغيل:
سيجعل هذا الأمر استخدامه في الأوامر التالية أسهل ويبقيه منفصلًا عن كودك.
ملاحظة: إذا كنت ستعمل مع Terraform و DigitalOcean بشكل متكرر، فأضف هذا السطر إلى ملفات تكوين الشل الخاصة بك باستخدام نفس الطريقة التي استخدمتها لتعديل متغير البيئة PATH
في الخطوة السابقة.
قم بإنشاء دليل سيحتوي على تكوين البنية التحتية الخاصة بك عن طريق تشغيل الأمر التالي:
انتقل إلى الدليل الذي تم إنشاؤه حديثًا:
ملفات تكوين Terraform هي ملفات نصية تنتهي بامتداد الملف .tf
. إنها قابلة للقراءة من قبل الإنسان وتدعم التعليقات. (تدعم Terraform أيضًا ملفات تكوين بتنسيق JSON، ولكن لن يتم التطرق إليها هنا.) سوف يقرأ Terraform جميع ملفات التكوين في دليل العمل الخاص بك بطريقة تصريحية، لذا لا يهم ترتيب تعريفات الموارد والمتغيرات. يمكن أن تكون بنية البنية التحتية بأكملها في ملف تكوين واحد، ولكن يجب عليك فصل ملفات التكوين حسب نوع المورد للحفاظ على الوضوح.
الخطوة الأولى لبناء بنية تحتية باستخدام Terraform هي تحديد الموفر الذي ستستخدمه.
لاستخدام موفر DigitalOcean مع Terraform، يجب عليك إبلاغ Terraform عن ذلك وتكوين المكون الإضافي بالمتغيرات المناسبة للتحقق من الأمان. قم بإنشاء ملف يُسمى provider.tf
، الذي سيحتوي على تكوين الموفر:
أضف الأسطر التالية إلى الملف لإبلاغ Terraform بأنك ترغب في استخدام موفر DigitalOcean، وأوجد Terraform حيث يمكن العثور عليه:
ثم، قم بتعريف المتغيرات التالية في الملف حتى تتمكن من الإشارة إليها في بقية ملفات التكوين الخاصة بك:
do_token
: رمز الوصول الشخصي الخاص بـ DigitalOcean الخاص بك.pvt_key
: موقع المفتاح الخاص، حتى يتمكن Terraform من استخدامه لتسجيل الدخول إلى Droplets الجديدة وتثبيت Nginx.
سوف تمرر قيم هذه المتغيرات إلى Terraform عند تشغيله، بدلاً من تضمين القيم هنا بشكل ثابت. يجعل هذا التكوين أكثر نقلًا.
لتعريف هذه المتغيرات، أضف هذه الأسطر إلى الملف:
ثم، أضف هذه الأسطر لتكوين موفر DigitalOcean وتحديد بيانات اعتماد حساب DigitalOcean الخاص بك عن طريق تعيين do_token
إلى وسيطة token
للمزود:
وأخيرًا، سترغب في أن يضيف Terraform تلقائيًا مفتاح SSH الخاص بك إلى أي Droplets جديدة تقوم بإنشائها. عندما قمت بإضافة مفتاح SSH الخاص بك إلى DigitalOcean، أعطيته اسمًا. يمكن لـ Terraform استخدام هذا الاسم لاسترجاع المفتاح العام. أضف هذه الأسطر، مستبدلاً terraform
بالاسم الذي قدمته في حساب DigitalOcean الخاص بك:
سيبدو ملف provider.tf
الخاص بك بعد الانتهاء كما يلي:
عند الانتهاء، احفظ وأغلق الملف.
ملاحظة: ضبط المتغير البيئي TF_LOG
إلى 1
سيتيح تسجيل تفصيلي لما يحاول Terraform القيام به. يمكنك ضبطه عن طريق تشغيل:
قم بتهيئة Terraform لمشروعك عن طريق تشغيل:
سيقوم هذا بقراءة تكوينك وتثبيت الوصلات الإضافية لموفرك. سترى ذلك مسجلًا في الإخراج:
OutputInitializing the backend...
Initializing provider plugins...
- Finding digitalocean/digitalocean versions matching "~> 2.0"...
- Installing digitalocean/digitalocean v2.16.0...
- Installed digitalocean/digitalocean v2.16.0 (signed by a HashiCorp partner, key ID F82037E524B9C0E8)
Partner and community providers are signed by their developers.
If you'd like to know more about provider signing, you can read about it here:
https://www.terraform.io/docs/cli/plugins/signing.html
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.
Terraform has been successfully initialized!
You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.
If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
إذا حدث أن واجهت مشكلة، ولم يعمل Terraform كما توقعت، يمكنك البدء من جديد بحذف ملف terraform.tfstate
وتدمير الموارد التي تم إنشاؤها يدويًا (على سبيل المثال، من خلال لوحة التحكم).
تم تكوين Terraform الآن ويمكن الاتصال به إلى حسابك على DigitalOcean. في الخطوة التالية، ستستخدم Terraform لتحديد Droplet الذي سيقوم بتشغيل خادم Nginx.
الخطوة 3 — تحديد أول خادم Nginx
يمكنك استخدام Terraform لإنشاء DigitalOcean Droplet وتثبيت البرمجيات على Droplet بمجرد تشغيلها. في هذه الخطوة، ستقوم بتوفير Droplet Ubuntu 20.04 وتثبيت خادم ويب Nginx باستخدام Terraform.
أنشئ ملف تكوين Terraform جديد يسمى www-1.tf
، الذي سيحتوي على تكوين Droplet:
أدخل السطور التالية لتحديد مورد Droplet:
في التكوين السابق، تحدد السطر الأول موردًا digitalocean_droplet بالاسم www-1
. تحدد بقية الأسطر خصائص Droplet، بما في ذلك مركز البيانات الذي سيتواجد فيه والـ slug الذي يحدد حجم Droplet الذي تريد تكوينه. في هذه الحالة، ستستخدم s-1vcpu-1gb
، والذي سينشئ Droplet بمعالج واحد و 1 جيجابايت من ذاكرة الوصول العشوائي (قم بزيارة جدول مقاسات الـ slugs هذا لرؤية الـ slugs المتاحة التي يمكنك استخدامها).
القسم ssh_keys
يحدد قائمة من المفاتيح العامة التي ترغب في إضافتها إلى Droplet. في هذه الحالة، أنت تحدد المفتاح الذي قمت بتعريفه في provider.tf
. تأكد من أن الاسم هنا يتطابق مع الاسم الذي حددته في provider.tf
.
عند تشغيل Terraform ضد DigitalOcean API، سيقوم بجمع مجموعة متنوعة من المعلومات حول Droplet، مثل عناوينه العامة والخاصة. يمكن استخدام هذه المعلومات من قبل موارد أخرى في تكوينك.
إذا كنت تتساءل عن الوسائط المطلوبة أو الاختيارية لمورد Droplet، يرجى الرجوع إلى وثائق Terraform الرسمية: DigitalOcean Droplet Specification.
لإعداد connection
التي يمكن لـ Terraform استخدامها للاتصال بالخادم عبر SSH، قم بإضافة الأسطر التالية في نهاية الملف:
تصف هذه الأسطر كيفية يجب على Terraform الاتصال بالخادم، بحيث يمكن لـ Terraform الاتصال عبر SSH لتثبيت Nginx. لاحظ استخدام متغير المفتاح الخاص var.pvt_key
– ستمرر قيمته عند تشغيل Terraform.
الآن بعد أن قمت بإعداد الاتصال، قم بتكوين provisioner remote-exec
، الذي ستستخدمه لتثبيت Nginx. أضف الأسطر التالية إلى التكوين للقيام بذلك:
لاحظ أن السلاسل في مصفوفة inline
هي الأوامر التي سيراها المستخدم root لتثبيت Nginx.
يبدو الملف المكتمل مثل هذا:
حفظ الملف والخروج من المحرر. لقد قمت بتعريف الخادم، وأنت الآن جاهز لنشره، والذي ستقوم به الآن.
الخطوة 4 — استخدام Terraform لإنشاء خادم Nginx
تصف التكوين الحالي لـ Terraform خادم Nginx واحدًا. ستقوم الآن بنشر الـ Droplet بالضبط كما هو محدد.
قم بتشغيل الأمر terraform plan
لرؤية خطة التنفيذ، أو ما ستحاول Terraform فعله لبناء البنية التحتية التي وصفتها. ستضطر إلى تحديد قيم لرمز الوصول الخاص بـ DigitalOcean ومسار المفتاح الخاص بك، حيث يستخدم التكوين هذه المعلومات للوصول إلى الـ Droplet الخاص بك لتثبيت Nginx. قم بتشغيل الأمر التالي لإنشاء خطة:
تحذير: يدعم أمر terraform plan
معلمة -out
لحفظ الخطة. ومع ذلك، ستقوم الخطة بتخزين مفاتيح API، ولا تقوم Terraform بتشفير هذه البيانات. عند استخدام هذا الخيار، يجب عليك استكشاف تشفير هذا الملف إذا كنت تخطط لإرساله للآخرين أو تركه في حالة سكون لفترة طويلة من الزمن.
سوف ترى مخرجات مشابهة لهذه:
السطر + resource "digitalocean_droplet" "www-1"
يعني أن Terraform ستنشئ موردًا جديدًا من نوع Droplet يُسمى www-1
، مع التفاصيل التي تليه. هذا بالضبط ما يجب أن يحدث، لذا قم بتشغيل الأمر terraform apply
لتنفيذ الخطة الحالية:
سوف تحصل على نفس الإخراج كما كان من قبل، ولكن هذه المرة، سيطلب منك Terraform موافقتك على المتابعة:
Output...
Plan: 1 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
أدخل yes
واضغط على ENTER
. سيقوم Terraform بتوفير Droplet الخاص بك:
Outputdigitalocean_droplet.www-1: Creating...
بعد فترة من الوقت، سترى Terraform يثبت Nginx باستخدام provisioner remote-exec
، ثم ستكتمل العملية:
Output
digitalocean_droplet.www-1: Provisioning with 'remote-exec'...
....
digitalocean_droplet.www-1: Creation complete after 1m54s [id=your_www-1_droplet_id]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
...
قام Terraform بإنشاء Droplet جديد يُسمى www-1
وثبت Nginx عليه. إذا زرت عنوان IP العام لـ Droplet الجديد الخاص بك، سترى شاشة ترحيب Nginx. تم عرض العنوان IP العام عند إنشاء Droplet، ولكن يمكنك دائمًا عرضه عند النظر إلى حالة Terraform الحالية. يقوم Terraform بتحديث ملف الحالة terraform.tfstate
في كل مرة ينفذ فيها خطة أو يقوم بتحديث حالته.
لعرض الحالة الحالية لبيئتك، استخدم الأمر التالي:
سيظهر لك عنوان IP العام لـ Droplet الخاص بك.
انتقل إلى http://your_www-1_server_ip
في متصفحك للتحقق من تشغيل خادم Nginx الخاص بك.
ملاحظة: إذا قمت بتعديل البنية التحتية الخاصة بك خارج Terraform ، فستكون ملف الحالة الخاص بك غير محدث. إذا تم تعديل الموارد الخاصة بك خارج Terraform ، فستحتاج إلى تحديث ملف الحالة لجلبه إلى التاريخ الحالي. سيقوم هذا الأمر بجلب معلومات الموارد المحدثة من موفر الخدمة الخاص بك:
في هذه الخطوة ، لقد قمت بنشر Droplet الذي وصفته في Terraform. الآن ستقوم بإنشاء آخر.
الخطوة 5 — إنشاء الخادم الثاني لـ Nginx
الآن بعد أن قمت بوصف خادم Nginx ، يمكنك إضافة الثاني بسرعة عن طريق نسخ ملف تكوين الخادم الحالي واستبدال اسم واسم المضيف لموارد Droplet.
يمكنك القيام بذلك يدوياً ، ولكن من الأسرع استخدام أمر sed
لقراءة ملف www-1.tf
، واستبدال جميع الحالات من www-1
بـ www-2
، وإنشاء ملف جديد يسمى www-2.tf
. إليك الأمر sed
للقيام بذلك:
يمكنك معرفة المزيد عن sed
عن طريق زيارة استخدام sed.
قم بتشغيل terraform plan
مرة أخرى لمعاينة التغييرات التي ستقوم Terraform بإجرائها:
يظهر الإخراج أن Terraform سيقوم بإنشاء الخادم الثاني ، www-2
:
تشغيل أمر terraform apply
مرة أخرى لإنشاء الـ Droplet الثاني:
كما في السابق، سيطلب منك Terraform تأكيد رغبتك في المتابعة. قم بمراجعة الخطة مرة أخرى واكتب yes
للمتابعة.
بعد بعض الوقت، سيقوم Terraform بإنشاء الخادم الجديد وعرض النتائج:
Outputdigitalocean_droplet.www-2: Creation complete after 1m47s [id=your_www-2_droplet_id]
...
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
أنشأ Terraform الخادم الجديد، دون تعديل الخادم الحالي. يمكنك تكرار هذه الخطوة لإضافة خوادم Nginx إضافية.
الآن بعد أن لديك Droplets الثاني يعمل بـ Nginx، ستقوم بتعريف ونشر موازن الحمل لتقسيم حركة المرور بينهما.
الخطوة 6 — إنشاء موازن الحمل
ستستخدم موازن حمل DigitalOcean، الذي يدعمه موفر Terraform الرسمي، لتوجيه حركة المرور بين خادمي الويب الاثنين.
أنشئ ملف تكوين Terraform جديد يسمى loadbalancer.tf
:
أضف الأسطر التالية لتعريف موازن الحمل:
يحدد تعريف موازن الحمل اسمه ومركز البيانات الذي سيكون فيه، والمنافذ التي يجب أن يستمع إليها لتوازن حركة المرور، والتكوين لفحص الصحة، ومعرفات الـ Droplets التي يجب أن يوازن بينها، والتي تُحضر باستخدام المتغيرات في Terraform. احفظ وأغلق الملف.
قم بتشغيل أمر terraform plan
مرة أخرى لمراجعة الخطة التنفيذية الجديدة:
سترى عدة سطور من الإخراج، بما في ذلك السطور التالية:
هذا يعني أن الـ Droplets www-1
و www-2
موجودة بالفعل، وسيقوم Terraform بإنشاء Load Balancer www-lb
.
قم بتشغيل terraform apply
لبناء Load Balancer:
مرة أخرى، سيطلب منك Terraform مراجعة الخطة. قم بالموافقة على الخطة عن طريق إدخال yes
للمتابعة.
بمجرد فعلك ذلك، سترى إخراجًا يحتوي على السطور التالية، مقتصرة للحصول على الإيجاز:
Output...
digitalocean_loadbalancer.www-lb: Creating...
...
digitalocean_loadbalancer.www-lb: Creation complete after 1m18s [id=your_load_balancer_id]
...
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
...
استخدم terraform show terraform.tfstate
للعثور على عنوان IP الخاص بك Load Balancer:
ستجد عنوان IP تحت الإدخال www-lb
:
انتقل إلى http://عنوان_IP_الموزع_الخاص_بك
في متصفحك وسترى شاشة ترحيب Nginx لأن Load Balancer يقوم بإرسال حركة المرور إلى أحد خادمي Nginx الاثنين.
الآن سوف تتعلم كيفية تكوين DNS لحسابك على DigitalOcean باستخدام Terraform.
الخطوة 7 — إنشاء نطاقات DNS وسجلات
بالإضافة إلى Droplets و Load Balancers ، يمكن لـ Terraform أيضًا إنشاء نطاق DNS وسجلات نطاق. على سبيل المثال ، إذا كنت ترغب في توجيه نطاقك إلى توازن الحمل الخاص بك ، يمكنك كتابة التكوين الذي يصف هذا العلاقة.
ملاحظة: استخدم اسم نطاقك الفريد الخاص أو سيكون Terraform غير قادر على نشر الموارد DNS. تأكد من أن نطاقك موجه إلى خوادم أسماء DigitalOcean.
أنشئ ملفًا جديدًا لوصف DNS الخاص بك:
أضف مورد النطاق التالي ، مستبدلًا your_domain
باسم النطاق الخاص بك:
احفظ وأغلق الملف عند الانتهاء.
يمكنك أيضًا إضافة سجل CNAME يشير www.your_domain
إلى your_domain
. أنشئ ملفًا جديدًا لسجل CNAME:
أضف هذه الأسطر إلى الملف:
احفظ وأغلق الملف عند الانتهاء.
لإضافة مدخلات DNS ، قم بتشغيل terraform plan
تلاه terraform apply
، كما هو الحال مع الموارد الأخرى.
انتقل إلى اسم نطاقك وسترى شاشة ترحيب Nginx لأن النطاق يشير إلى توازن الحمل ، الذي يقوم بإرسال حركة المرور إلى أحد خادمي Nginx الاثنين.
الخطوة 8 — تدمير البنية التحتية الخاصة بك
على الرغم من عدم استخدامه عادة في بيئات الإنتاج، يمكن لـ Terraform أيضًا تدمير البنية التحتية التي أنشأها. هذا مفيد بشكل رئيسي في بيئات التطوير التي يتم نشرها وتدميرها عدة مرات.
أولاً، قم بإنشاء خطة تنفيذ لتدمير البنية التحتية باستخدام terraform plan -destroy
:
سيقوم Terraform بإخراج خطة تحتوي على الموارد المميزة باللون الأحمر، ومسبوقة برمز الناقص، مما يشير إلى أنه سيتم حذف الموارد في البنية التحتية الخاصة بك.
ثم، استخدم terraform apply
لتشغيل الخطة:
ستقوم Terraform بمتابعة تدمير الموارد، كما هو موضح في الخطة المولدة.
الاستنتاج
في هذا البرنامج التعليمي، استخدمت Terraform لبناء بنية تحتية للويب متوازنة على DigitalOcean، مع خادمي ويب Nginx يعملان خلف توازن الحمل في DigitalOcean. تعرف كيفية إنشاء وتدمير الموارد، وعرض الحالة الحالية، واستخدام Terraform لتكوين إدخالات DNS.
الآن بما أنك تفهم كيفية عمل Terraform، يمكنك إنشاء ملفات تكوين تصف بنية تحتية للخادم لمشاريعك الخاصة. المثال في هذا البرنامج التعليمي هو نقطة بداية جيدة توضح كيف يمكنك أتمتة نشر الخوادم. إذا كنت بالفعل تستخدم أدوات الإمداد، يمكنك دمجها مع Terraform لتكوين الخوادم كجزء من عملية إنشائها بدلاً من استخدام طريقة الإمداد المستخدمة في هذا البرنامج التعليمي.
تتمتع Terraform بالعديد من الميزات الإضافية، ويمكنها العمل مع مزودين آخرين. تفضل بزيارة توثيق Terraform الرسمي لمعرفة المزيد حول كيفية استخدام Terraform لتحسين البنية التحتية الخاصة بك.
يعتبر هذا البرنامج التعليمي جزءًا من سلسلة كيفية إدارة البنية التحتية باستخدام Terraform. تغطي السلسلة العديد من المواضيع المتعلقة بـ Terraform، بدءًا من تثبيت Terraform لأول مرة إلى إدارة المشاريع المعقدة.
Source:
https://www.digitalocean.com/community/tutorials/how-to-use-terraform-with-digitalocean