تكوين الوحدات النمطية Terraform

يتم تعريف موارد الشبكة الضرورية لاستضافة تطبيقات SaaS أحادية المقيم على Oracle Cloud بالوحدات النمطية Terraform. قم بتنزيل الوحدات النمطية وتعيين المتغيرات المطلوبة.

تحميل رمز المنطقة

رمز المنطقة لهذا الحل متاح على GitHub.

  1. في جزء الاستكشاف على اليمين، انقر على تنزيل رمز.
  2. انقر على Git Repo.
  3. استنساخ المخزن أو تنزيله إلى جهاز الكمبيوتر المحلي.

حول رمز المنطقة

تم تنظيم رمز المنطقة لهذا الحل في وحدات متعددة، يحتوي كل منها على موارد لمكون محدد من المنظومة الهدف.

تحتوي التعليمات البرمجية Terraform على الأدلة والملفات التالية عند المستوى الأعلى:
  • chef: يحتوي هذا الدليل على وصفات Chef لتثبيت وحدات جيت واي الخاصة بالتوجيه وتكوينها.
  • examples: يحتوي هذا الدليل على رمز Terraform المطلوب لتنفيذ هذا الحل. تستخدم التعليمات البرمجية في هذا الدليل الوحدات النمطية المعرفة في دليل modules.
  • LICENSE.txt: يشتمل هذا الملف على شروط وبنود الترخيص لعينة التعليمات البرمجية.
  • modules: يحتوي هذا الدليل على الوحدات النمطية Terraform التي توفر قطع البناء للحل.
  • README.md: يقدم هذا الملف وصفًا مختصرًا للرمز والإرشادات الأساسية لاستخدام التعليمات البرمجية.
  • test: يشتمل هذا الدليل على البرامج النصية للاختبار التي يمكن استخدامها للتحقق من التوزيع.
يحتوي دليل examples/full-deployment على التعليمات البرمجية التي تستدعي وحدات Terraform النمطية المطلوبة لهذا الحل. وهي تشتمل على الأدلة الفرعية والملفات التالية:
examples/full-deployment
├── common
│   ├── compartments
│   └── configuration
├── Makefile
├── management
│   ├── access
│   ├── network
│   ├── server_attachment
│   └── servers
├── peering
│   ├── network
│   └── routing
├── README.md
├── tenant
│   ├── network
│   └── servers
├── terraform.tfvars.sample
└── terragrunt.hcl
دليل التكوين أو الملف الموارد المحددة في التركيب
common/configuration بلا.

يستخدم الرمز الموجود في هذا الدليل الوحدة النمطية Terraform في examples/network_calculator، لحساب عدد وحدات VCNs الخاصة بالعميل وكذلك عدد وحدات VCN المناظرة المطلوبة، وحجم CIDR لكل VCN، والتخطيط بين وحدات VCNs الخاصة بالعميل ووحدات VCNs المناظرة. يتم استخدام نتائج العملية الحسابية عند تكوين وحدات Vncn وموارد الشبكات الأخرى.

common/compartments
  • مقارنة للإدارة.
  • مقارنة واحد أو أكثر لأرقام Vnc المناظرة.
  • مقارنة لكل عميل.
management/access تقوم Oracle Linux بحساب طبعة مرفقة بشبكة فرعية عامة في ISV VCN. تعد هذه الطبعة خادم bastion للمنظومة.
management/network
  • يطلق على ISV VCN، اسم المسئول VCN أيضًا.
  • وحدات جيت واي الخاصة بـ NAT وiStore لـ ISV VCN.
  • صافي الفرعي التالي:
    • شبكة فرعية للإدارة الخاصة بخادم الإدارة.
    • شبكة فرعية للوصول العمومي إلى خادم الأساس.
    • شبكة فرعية نظير خاص لأجهزة جيت واي للتوجيه
  • جدول التوجيه الافتراضي لـ Vnc، مع قاعدة لتوجيه حركة المرور المرتبطة بالإنترنت العام من خلال جيت واي الإنترنت.
  • جدول توجيه للتصفية الفرعية النظيرة، بقاعدة لتوجيه المرور المرتبط بالإنترنت العام من خلال جيت واي NAT.
  • قائمة تأمين للشبكة الفرعية للوصول، بالقواعد التالية:
    • السماح بحركة مرور ICMP الواردة من أي مصدر.
    • السماح بحركة مرور TCP الصادرة المرتبطة بأية وجهة.
  • قائمة تأمين الشبكة الفرعية النظيرة، مع القواعد التالية:
    • السماح بحركة مرور TCP الصادرة المرتبطة بأية وجهة.
    • السماح بحركة مرور ICMP الواردة من أي مصدر.
    • السماح بتر TCP الوارد من أي مصدر إلى المنفذ 5666
  • قائمة تأمين للشبكة الفرعية للإدارة بالقواعد التالية:
    • السماح بحركة مرور ICMP الواردة من الشبكة الفرعية للوصول.
    • السماح بحركة مرور HTTP الواردة من الشبكة الفرعية للوصول إلى المنفذ 80.
    • السماح بحركة مرور TCP الصادرة المرتبطة بأية وجهة.
management/server_attachment
  • جدول توجيه مرفق بصافي الإدارة الفرعي بالقواعد التالية:
    • حركة مرور التوجيه المرتبطة بالإنترنت العام من خلال جيت واي NAT
    • حركة مرور التوجيه المرتبطة بكل من أرقام Vnc الخاصة بالعميل إلى طبعة جيت واي التوجيه المناسبة.
  • جدول توجيه مرفق بصافي الوصول، بالقواعد التالية:
    • حركة مرور التوجيه المرتبطة بالإنترنت العام من خلال جيت واي الإنترنت.
    • حركة مرور التوجيه المرتبطة بكل من أرقام Vnc الخاصة بالعميل إلى طبعة جيت واي التوجيه المناسبة.
management/servers تقوم Oracle Linux بحساب طبعة مرفقة بالشبكة الفرعية للإدارة في ISV VCN.

يمكنك استخدام خادم الإدارة لتثبيت تطبيق مراقبة البنية الأساسية وتشغيله، مثل Nagios Core.

peering/network
  • مجموعة ديناميكية تتألف من طبعات الحساب التي تستضيف وحدات جيت واي للتوجيه.
  • نظام للسماح للمجموعة الديناميكية المحددة في هذا التكوين باستخدام Vn والعناوين الخاصة في المقارنة
  • يوجد اثنان من أرقام Vnc مناظرة، مع وجود شبكة فرعية في كل VCN.
  • جيت واي نظيرة محلية (LPG) لكل VCN.
  • قائمة سرية لكل صافي فرعي بالإضافة إلى قواعد تسمح بكل حركة مرور ICMP الداخلية وكل حركات TCP الصادرة
  • جدول توجيه لكل شبكة فرعية بقواعد لتوجيه النقل المرتبط بكل عميل Vnc من خلال LPG للنظراء المناسب VCN.
peering/routing
  • جيت واي ذات اتجاهين:
    • إحدى الجيت واي عبارة عن زوج من طبعات الحساب، كل مجال معيب مختلف، مع تثبيت Pacemaker عليه لتمكين الإتاحة العالية. كل طبعة من طبعات الاحتساب بها مجموعتين من وحدات Vn الثانوية، مع وجود عنوان IP عائم مرفق بأول وحدات VNIC الثانوية. تم تحديد جيت واي هذه لعرض الانتقال عقب الفشل لـ HA لجيت واي التوجيه.
    • الجيت واي الأخرى عبارة عن طبعة حساب مفردة.
  • مجموعة تأمين الشبكة بالقواعد التالية:
    • السماح بكل حركة مرور TCP داخل المجموعة إلى المنافذ 3121 و22224 و264.
    • السماح بكل حركات المرور المحددة بواسطة المستخدم داخل المجموعة بالمنفذ 4505.
tenant/network الموارد التالية لكل عميل:
  • VCN عميل.
  • وحدات جيت واي للإنترنت والبادخار الخاصة بعميل Vnc.
  • يمكن عمل صافي فرعي عام واحد وبعض خاص
  • LPG لـ VCN.
  • جدول توجيه للتصفية الفرعية العامة، بالقواعد التالية:
    • حركة مرور التوجيه المرتبطة بالإنترنت العام من خلال جيت واي الإنترنت.
    • حركة مرور التوجيه المرتبطة بصافي النقل النظير من خلال LPG.
    • حركة التوجيه المرتبطة بصافي الإدارة الفرعي خلال LPG
  • جدول توجيه للتصفية الفرعية الخاصة، بالقواعد التالية:
    • حركة مرور التوجيه المرتبطة بالإنترنت العام من خلال جيت واي NAT
    • حركة مرور التوجيه المرتبطة بصافي النقل النظير من خلال LPG.
    • حركة التوجيه المرتبطة بصافي الإدارة الفرعي خلال LPG
  • قائمة تأمين الشبكة الفرعية العامة بالقواعد التالية:
    • السماح بحركة مرور ICMP الواردة من أية وجهة.
    • السماح بحركة مرور TCP الصادرة لأي وجهة.
  • قائمة تأمين الشبكة الفرعية الخاصة بالقواعد التالية:
    • السماح بحركة مرور ICMP الواردة من أية وجهة.
    • السماح بحركة مرور TCP الصادرة لأي وجهة.
    • السماح بحركة مرور TCP الواردة إلى المنفذ 5666
tenant/servers طبعة Oracle Linux Compute في كل مقدم من أجزاء العميل.

يمكنك استخدام هذه الطبعة لتثبيت وكيل مراقبة البنية الأساسية وتشغيله. على سبيل المثال، إذا قمت بتثبيت Nagios Core في خادم الإدارة في ISV VCN، فيمكنك تثبيت وكيل Nagios في طبعة الحساب في كل مقدم عميل. يستطيع الوكيل مراقبة الخوادم في مقارنة الأداء وإرسال القياسات إلى خادم مراقبة Nagios.

terraform.tfvars.sample قالب ملف متغيرات Terraform.
terragrunt.hcl تكوين Terragrunt.

تعيين متغيرات المنطقة

حدد المعلمات المطلوبة لـ Terraform للاتصال بـ Oracle Cloud Infrastructure tenancy، ومفاتيح SSH لطبعات الحساب، وكلمة السر الخاصة بمجموعة التوجيه.

  1. انسخ examples/full-deployment/terraform.tfvars.sample إلى examples/full-deployment/terraform.tfvars.
  2. افتح examples/full-deployment/terraform.tfvars في محرر النص العادي، وقم بتعيين قيم للمتغيرات كما يلي:
    متغير الوصف
    tenancy_ocid Ocd للأرض المستأجرة الخاصة بك.

    يمكنك العثور على OCID الخاص بالأرض المستأجرة في وحدة تحكم ويب Oracle Cloud Infrastructure. حدد الإدارة من قائمة الخدمات ثم انقر تفاصيل الأرض المستأجرة.

    user_ocid OCID الخاص بالمستخدم الذي تريد استخدام Terraform للتصديق في Oracle Cloud Infrastructure.

    للعثور على Ocd للمستخدم، حدد هوية من قائمة الخدمات، ثم حدد المستخدمون. حدد موقع اسم المستخدم في القائمة، وانسخ Ocd الخاص به.

    fingerprint بصمة مفتاح توقيع API الذي قمت بتحميله.
    private_key_path المسار الكامل واسم الملف الذي يحتوي على مفتاح توقيع API الخاص بك.
    region معرف المنطقة التي تريد تكوين الموارد فيها.

    على سبيل المثال، معرف المنطقة الشرقية للولايات المتحدة (Ashburn) هو us-ashburn-1.

    راجع المناطق ونطاقات الإتاحة.

    compartment_ocid معرف Ocd للمقارنة التي تريد تكوين الموارد بها.

    المكون الذي تحدده سيكون المقارن الرئيسي للمنظومة.

    للعثور على OCID بمقارنة، حدد هوية من قائمة الخدمات، ثم حدد مقارنات. حدد موقع المقارنة الذي تحتاجه في القائمة وانسخ Ocd الخاص به.

    bastion_ssh_public_key_file المسار الكامل واسم الملف الذي يحتوي على المفتاح العام لـ SSH لخادم الأساس.
    bastion_ssh_private_key_file المسار الكامل واسم الملف الذي يحتوي على مفتاح SSH الخاص بخادم الأساس.
    remote_ssh_public_key_file المسار الكامل واسم الملف الذي يحتوي على مفتاح SSH العام لطبعات الحساب الخاص في المنظومة.
    remote_ssh_private_key_file المسار الكامل واسم الملف الذي يحتوي على مفتاح SSH الخاص لطبعات الحساب الخاص في المنظومة.

    قم بحفظ وإغلاق terraform.tfvars.

    فيما يلي مثال لملف terraform.tfvars المكتمل:

    tenancy_ocid = "ocid1.tenancy.oc1..aaaaaaaa2 (truncated)"
    user_ocid = "ocid1.user.oc1..aaaaaaaag (truncated)"
    fingerprint = "56:f6:8e:bf: (truncated)"
    private_key_path = "/home/joe/.oci/oci_api_key.pem"
    region = "us-ashburn-1"
    
    compartment_ocid = "ocid1.compartment.oc1..aaaaaaaam (truncated)"
    
    bastion_ssh_public_key_file = "/home/joe/.ssh/ida_rsa_bastion.pub"
    bastion_ssh_private_key_file = "/home/joe/.ssh/ida_rsa_bastion"
    remote_ssh_public_key_file = "/home/joe/.ssh/ida_rsa_remote.pub"
    remote_ssh_private_key_file = "/home/joe/.ssh/ida_rsa_remote"
  3. تعيين سر مشترك لمجموعة التوجيه في متغير بيئة.
    export TF_VAR_hacluster_password="somePassword"

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