تثبيت Apigee على Google Distributed Cloud air-gapped

يوضّح هذا الدليل كيفية تثبيت ونشر Apigee Edge for Private Cloud وخوادم وكيل واجهة برمجة التطبيقات في بيئة Google Distributed Cloud (GDC) غير متصلة بالإنترنت. لا تتطلّب عروض GDC air-gapped، بما في ذلك Apigee Edge للسحابة الإلكترونية الخاصة، الاتصال بخدمة Google Cloud لإدارة البنية الأساسية والخدمات. يمكنك استخدام لوحة تحكّم محلية مستضافة في مقرّك لإجراء جميع العمليات. للحصول على نظرة عامة حول GDC air-gapped، يُرجى الاطّلاع على النظرة العامة.

هذا الدليل مخصّص لمشغّلي Apigee الذين يعرفون Apigee Edge Private Cloud ولديهم فهم أساسي لـ Kubernetes.

نظرة عامة على الخطوات المطلوبة

لتثبيت Apigee Edge for Private Cloud ونشره في بيئة GDC غير متصلة بالإنترنت، على المشغّل إكمال الخطوات التالية:

قبل البدء

قبل بدء عملية التثبيت، تأكَّد من إكمال الخطوات التالية:

  1. أنشِئ مشروعًا على "مركز مطوّري Google" لاستخدامه في عملية التثبيت، إذا لم يسبق لك إنشاء مشروع. لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء مشروع.
  2. نزِّل وأعِد ضبط واجهة سطر الأوامر gdcloud على محطة عمل مرتبطة بـ GDC أو ضمن بيئة النشر المستمر في مؤسستك.
  3. احصل على بيانات الاعتماد المطلوبة لاستخدام gdcloudواجهة سطر الأوامرkubectl وواجهة برمجة التطبيقات. راجِع مقالة المصادقة على حسابك للوصول إليه للاطّلاع على الخطوات المطلوبة.
  4. تأكَّد من اسم المستخدم وكلمة المرور في Apigee اللذين تلقّيتهما من مدير حسابك في Apigee.
  5. تأكَّد من اسم مجموعة مشرفي GKE واسم مجموعة مستخدمي GKE.

متطلبات السعة

يتطلّب تثبيت Apigee Edge for Private Cloud على GDC عدة أجهزة افتراضية (VM) مع تخصيص موارد محدّدة. تتضمّن هذه الأجهزة الافتراضية رسومًا استنادًا إلى موارد الحوسبة (ذاكرة الوصول العشوائي، وعدد أنوية وحدة المعالجة المركزية الافتراضية) ومساحة التخزين على القرص المحلي. لمزيد من المعلومات، يُرجى الاطّلاع على الأسعار.

يعرض الجدول التالي متطلبات الموارد لكل آلة افتراضية:

نوع الجهاز الافتراضي ذاكرة الوصول العشوائي (RAM) نوى وحدة المعالجة المركزية الافتراضية مساحة التخزين على القرص
عقدة المستودع ‫8 غيغابايت نواة وحدة معالجة مركزية افتراضية (vCPU) ثنائية ‫64 غيغابايت
عقدة التحكّم ‫8 غيغابايت نواة وحدة معالجة مركزية افتراضية (vCPU) ثنائية ‫64 غيغابايت
عُقد إدارة واجهات برمجة التطبيقات في Apigee‏ 1 و2 و3 ذاكرة وصول عشوائي بسعة 16 غيغابايت 8 نوى لوحدة المعالجة المركزية الافتراضية ‫670 غيغابايت
العُقد 4 و5 لإدارة واجهات برمجة التطبيقات في Apigee ذاكرة وصول عشوائي بسعة 16 غيغابايت 8 نوى لوحدة المعالجة المركزية الافتراضية ‫500 غيغابايت - 1 تيرابايت

الأدوار والأذونات

يجب توفّر الأدوار والأذونات التالية لنشر Apigee Edge for Private Cloud في بيئة GDC غير متصلة بالإنترنت:

  • مشرف المنصة (PA): يجب إسناد دور IAM Admin.
  • مشغّل التطبيق (AO): يجب تعيين الأدوار التالية:
    • Harbor Instance Admin: لديه إذن وصول كامل لإدارة مثيلات Harbor في أحد المشاريع.
    • LoggingTarget Creator: لإنشاء LoggingTarget موارد مخصّصة في مساحة اسم المشروع
    • LoggingTarget Editor: تعديل موارد LoggingTarget مخصّصة في مساحة اسم المشروع
    • Project Bucket Admin: لإدارة مجموعات البيانات والعناصر داخلها
    • Project Grafana Viewer: للوصول إلى مثيل المراقبة في مساحة اسم المشروع
    • Project NetworkPolicy Admin: تدير سياسات شبكة المشروع في مساحة اسم المشروع.
    • Project VirtualMachine Admin: يدير الأجهزة الافتراضية في مساحة اسم المشروع.
    • Secret Admin: تدير أسرار Kubernetes في المشاريع.
    • Service Configuration Admin: لديه إذن قراءة وكتابة لإعدادات الخدمة ضمن مساحة اسم المشروع.
    • Namespace Admin: يدير جميع الموارد ضمن مساحات أسماء المشاريع.
  • لمزيد من المعلومات عن منح أدوار وأذونات GDC في بيئة غير متصلة بالإنترنت، يُرجى الاطّلاع على منح إذن الوصول وإبطاله.

    القيود

    تنطبق القيود التالية على Apigee على GDC air-gapped:

    • لا تتضمّن Apigee على GDC air-gapped خوادم نظام أسماء نطاقات وتستخدم حلّاً بديلاً يتمثل في تعيين نظام أسماء نطاقات محلي. إذا تم نشر Apigee على GDC air-gapped في بيئة تتضمّن خوادم نظام أسماء نطاقات خارجية، استبدِل الخطوات التي تضبط نظام أسماء النطاقات المحلي بخطوات ضبط إدخالات نظام أسماء النطاقات في خوادم نظام أسماء النطاقات.
    • لا تتضمّن Apigee على GDC air-gapped خادم SMTP مستقلاً. يمكنك ضبط خادم SMTP في أي وقت لتفعيل إشعارات البريد الإلكتروني الصادرة بشأن إنشاء الحسابات وإعادة ضبط كلمات المرور من "خادم الإدارة" و"واجهة مستخدم الإدارة". ستبقى واجهات برمجة التطبيقات الإدارية متاحة لإدارة حسابات مستخدمي Apigee. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة ضبط خادم Edge SMTP.
    • لا تنفّذ Apigee على GDC air-gapped ميزة رصد التسلّل ومنعه. ثبِّت نظام منع التسلّل (IPS) وأعِدّ إعداداته، مثل Snort، لرصد الأنشطة الضارة ومنعها.

    الحصول على الملفات المطلوبة

    للحصول على ملفات التثبيت، عليك أولاً إعداد عقدة مرتبطة ثم تنزيل الملفات.

    إعداد عقدة مرتبطة

    العُقدة المرتبطة هي جهاز افتراضي واحد خارج GDC تستخدمه لتنزيل ملفات التثبيت. تتطلّب هذه الآلة الافتراضية الاتصال بالإنترنت ولا تُستخدَم إلا في عملية التثبيت.

    تتطلّب العُقدة المرتبطة السعة والإعدادات التالية:

    • نظام التشغيل: Rocky Linux 8
    • حجم الجهاز: ذاكرة وصول عشوائي (RAM) بسعة 8 غيغابايت، ونواتان لوحدة المعالجة المركزية الافتراضية، ومساحة تخزين على القرص المحلي بسعة 64 غيغابايت
    • الاتصال:
      • الدخول: TCP 22 (SSH)
      • الخروج: الإنترنت

    لإنشاء العُقدة المرتبطة، اتّبِع التعليمات الواردة في إنشاء مثيل جهاز افتراضي وبدء تشغيله. بعد إنشاء الجهاز الافتراضي، اتّبِع التعليمات الواردة في الاتصال بالأجهزة الافتراضية التي تعمل بنظام التشغيل Linux. للاتصال بالجهاز الافتراضي. اطّلِع على أنظمة التشغيل المتوافقة مع GDC للاطّلاع على قائمة بأنظمة التشغيل المتوافقة.

    تنزيل ملفات التثبيت

    لتنزيل ملفات التثبيت، اتّبِع الخطوات التالية:

    1. راجِع ملاحظات إصدار Apigee Edge Private Cloud لمعرفة أحدث إصدار رسمي متوافق مع GDC، كما هو موضّح في عمود Edge Private Cloud.
    2. نزِّل ملف إعداد Edge:
      curl https://software.apigee.com/apigee/tarball/VERSION/rocky8/archive.tar -o /tmp/archive.tar -u 'APIGEE_USER:APIGEE_PASSWORD'

      المكان:

      • APIGEE_USER هو اسم المستخدم الذي تلقّيته لمؤسسة Apigee.
      • APIGEE_PASSWORD هي كلمة المرور التي تلقّيتها لمؤسسة Apigee.
      • VERSION هو إصدار Apigee Edge for Private Cloud الذي تريد تثبيته على GDC، مثل 4.53.01.
    3. نزِّل أحدث ملف bootstrap_VERSION.sh من Apigee Edge Private Cloud إلى /tmp/bootstrap_VERSION.sh:
      curl https://software.apigee.com/bootstrap_VERSION.sh -o /tmp/bootstrap_VERSION.sh

      حيث VERSION هو أحدث إصدار من Apigee Edge Private Cloud لاستخدامه على GDC الذي تريد تثبيته، على سبيل المثال، 4.53.01.

    4. ثبِّت أداة Edge apigee-service والبرامج التابعة:
      sudo bash /tmp/bootstrap_VERSION.sh apigeeuser=APIGEE_USER apigeepassword=APIGEE_PASSWORD

      المكان:

      • APIGEE_USER هو اسم المستخدم الذي تلقّيته لمؤسسة Apigee.
      • APIGEE_PASSWORD هي كلمة المرور التي تلقّيتها لمؤسسة Apigee.
      • VERSION هو إصدار Apigee Edge for Private Cloud الذي سيتم استخدامه على GDC الذي تريد تثبيته.

    5. شغِّل نص الإعداد البرمجي على العقدة المتصلة:
      chmod a+x connected-node_setup.sh \
        ./connected-node_setup.sh

      في هذه الخطوة، ينشئ البرنامج النصي الملفات المطلوبة في المواقع التالية (على سبيل المثال، للإصدار 4.53.01):

      • /opt/apigee/data/apigee-mirror/apigee-4.53.01.tar.gz
      • /tmp/apigee-nginx/apigee-nginx.tar
      • /tmp/fluentbit/fluentbit.tar
      • /tmp/postgresql14/postgresql14.tar
      • /tmp/ansible-rpms.tar
      • /tmp/apigee-repos.tar
    6. انقل الملفات المطلوبة من العقدة المرتبطة إلى جهاز محلي عبر بروتوكول النقل الآمن (SSH):
      mkdir apigee-files
      cd apigee-files
      for file in /opt/apigee/data/apigee-mirror/apigee-4.53.01.tar.gz /tmp/ansible-rpms.tar /tmp/apigee-nginx/apigee-nginx.tar /tmp/fluentbit/fluentbit.tar /tmp/postgresql14/postgresql14.tar /tmp/apigee-repos.tar; do
        scp -i SSH_PRIVATE_KEY_FILE USER@CONNECTED_NODE_IP:$file .
        done

      المكان:

      • SSH_PRIVATE_KEY_FILE هو مسار ملف مفتاح SSH الخاص.
      • USER هو اسم المستخدم للعقدة المرتبطة.
      • CONNECTED_NODE_IP هو عنوان IP للعقدة المتصلة.

    إعداد حزمة التخزين

    في هذه الخطوة، يضبط مشغّل GDC حزمة تخزين في مشروع GDC لتخزين ملفات النسخ الاحتياطي من Apigee Edge for Private Cloud.

    إنشاء حزمة تخزين

    لإنشاء حزمة تخزين في مشروع GDC، اتّبِع الخطوات التالية:

    1. المصادقة باستخدام مجموعة مشرف المؤسسة:
      gdcloud auth login --login-config-cert WEB_TLS_CERT
      gdcloud clusters get-credentials ORG_ADMIN_CLUSTER

      المكان:

      • WEB_TLS_CERT هو مسار شهادة TLS على الويب.
      • ORG_ADMIN_CLUSTER هو اسم مجموعة GKE الخاصة بمشرف المؤسسة.

    2. اضبط متغيرات البيئة الخاصة بالمشروع والحزمة:
      export PROJECT=PROJECT
      export BUCKET=BUCKET_NAME

      المكان:

      • PROJECT هو اسم مشروعك على GDC.
      • BUCKET_NAME هو اسم الحزمة التي تريد إنشاءها لتخزين ملفات النسخ الاحتياطي من Apigee Edge Private Cloud.
    3. طبِّق إعدادات الحزمة:
      kubectl apply -f - <<EOF
      apiVersion: object.GDC.goog/v1
      kind: Bucket
      metadata:
        name: $BUCKET
        namespace:$PROJECT
      spec:
        description: bucket for Apigee backup files
        storageClass: Standard
        bucketPolicy :
          lockingPolicy :
            defaultObjectRetentionDays: 30
      EOF

      يؤدي هذا الإعداد إلى إنشاء حزمة بمدة احتفاظ تبلغ 30 يومًا.

    ضبط إذن الوصول إلى الحزمة

    لضبط إذن الوصول إلى حزمة التخزين، اتّبِع الخطوات التالية:

    1. أنشئ حساب خدمة في المشروع:
      gdcloud iam service-accounts create $BUCKET-sa \
          --project=$PROJECT
    2. أنشئ الدور وربط الدور لإنشاء سرّ للوصول إلى الحزمة:
      kubectl apply -f - <<EOF
      apiVersion: rbac.authorization.k8s.io/v1
      kind: Role
      metadata:
        name: $BUCKET-role
        namespace: $PROJECT
      rules:
      -   apiGroups:
        -   object.gdc.goog
        resourceNames:
        -   $BUCKET
        resources:
        -   buckets
        verbs:
        -   get
        -   read-object
        -   write-object
      ---
      apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      metadata:
        name: $BUCKETrolebinding
        namespace: $PROJECT
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: Role
        name: $BUCKET-role
      subjects:
      -   kind: ServiceAccount
        name: $BUCKET-sa
        namespace: $PROJECT
      EOF
    3. احصل على رقم تعريف مفتاح الوصول والمفتاح من السرّ:
      export BUCKET_SECRET=$(kubectl get secret -n $PROJECT -o jsonpath="{range .items[*]}{.metadata.name}{':'}{.metadata.annotations['object\.GDC\.goog/subject']}{'\n'}{end}" | grep $BUCKET | tail -1 | cut -f1 -d :)
      echo "access-key-id=$(kubectl get secret -n $PROJECT $BUCKET_SECRET -o jsonpath="{.data['access-key-id']}")"
      echo "access-key=$(kubectl get secret -n $PROJECT $BUCKET_SECRET -o jsonpath="{.data['secret-access-key']}")"

      يجب أن تبدو النتيجة مشابهة لما يلي:

      access-key-id=RFdJMzRROVdWWjFYNTJFTzJaTk0=
      access-key=U3dSdm5FRU5WdDhMckRMRW1QRGV0bE9MRHpCZ0Ntc0cxVFJQdktqdg==
    4. أنشئ سرًا سيستخدمه القائم بالتحميل في مجموعة مستخدمي GKE:
      1. المصادقة باستخدام مجموعة GKE الخاصة بالمستخدم:
        gdcloud clusters get-credentials USER_CLUSTER

        حيث USER_CLUSTER هو اسم مجموعة مستخدمي GKE.

      2. طبِّق الإعدادات السرية باتّباع الخطوات التالية:
        kubectl apply -f - <<EOF
        apiVersion: v1
        kind: Secret
        metadata:
          namespace: $PROJECT
          name: $BUCKET-secret
        type: Opaque
        data:
          access-key-id: ACCESS_KEY_ID
          access-key: ACCESS_KEY
        EOF

        المكان:

        • ACCESS_KEY_ID هو رقم تعريف مفتاح الوصول الذي تم الحصول عليه في الخطوة السابقة.
        • ACCESS_KEY هو مفتاح الوصول الذي تم الحصول عليه في الخطوة السابقة.
    5. احصل على نقطة نهاية التخزين واسم النطاق المؤهَّل بالكامل (FQDN) والمنطقة الخاصة بالحزمة:
      1. المصادقة باستخدام مجموعة مشرف المؤسسة:
        gdcloud clusters get-credentials ORG_ADMIN_CLUSTER

        حيث ORG_ADMIN_CLUSTER هو اسم مجموعة GKE الخاصة بمشرف المؤسسة.

      2. احصل على نقطة نهاية التخزين واسم النطاق المؤهَّل بالكامل (FQDN) والمنطقة الخاصة بالحزمة:
        kubectl get buckets ${BUCKET} -n $PROJECT -o jsonpath="{'endpoint: '}{.status.endpoint}{'\n'}{'bucket: '}{.status.fullyQualifiedName}{'\n'}{'region: '}{.status.region}{'\n'}"

        يجب أن تبدو النتيجة مشابهة لما يلي:

        endpoint: https://objectstorage.gpu-org.cookie.sesame.street
        bucket: ez9wo-apigee-backup-bucket
        region: cookie
    6. عدِّل القيم التالية في ملف apigee/helm_user_cluster/values-cookie-air-gapped.yaml:
      objectstorekeyname: "apigee-backup-bucket-secret"
      objectstoreurl: "BUCKET_ENDPOINT"
      objectstorebucket: "BUCKET_FQDN"

      المكان:

      • BUCKET_ENDPOINT هي نقطة نهاية المجموعة التي تم الحصول عليها في الخطوة السابقة.
      • BUCKET_FQDN هو اسم النطاق المؤهَّل بالكامل للحزمة التي تم الحصول عليها في الخطوة السابقة.

    إعداد عقدة المستودع

    في هذه الخطوة، يضبط مشغّل GDC عقدة مستودع لاستضافة مستودع Apigee Edge for Private Cloud المتطابق.

    إنشاء عقدة مستودع

    لإنشاء عقدة مستودع، اتّبِع الخطوات التالية:

    1. عدِّل apigee/helm_user_cluster/values-cookie-air-gapped.yaml على النحو التالي:
      repo_node:
        enabled: true
      
      apigee_node:
        enabled: false
      
      control_node:
        enabled: false

      تأكَّد من تفعيل repo_node وإيقاف كل من apigee_node وcontrol_node. يتم نشر هذه العُقد في خطوة لاحقة.

    2. احصل على بيانات اعتماد لمجموعة مشرف المؤسسة:
      gdcloud clusters get-credentials ORG_ADMIN_CLUSTER

      حيث ORG_ADMIN_CLUSTER هو اسم مجموعة GKE الخاصة بمشرف المؤسسة.

    3. أنشئ بيئة Python افتراضية:
      python3 -m venv venv /
      source venv/bin/activate
    4. نفِّذ نص النشر البرمجي لإنشاء عقدة المستودع:
      python apigee/solution_deploy.py gdc-air-gapped

    ضبط إذن الوصول إلى عقدة المستودع

    لضبط إذن الوصول إلى عقدة المستودع، اتّبِع الخطوات التالية:

    1. اضبط بروتوكول SSH لعقدة المستودع على النحو التالي:
      export NODE=repo
      kubectl create -n $PROJECT -f - <<EOF
        apiVersion: virtualmachine.GDC.goog/v1
        kind: VirtualMachineAccessRequest
        metadata:
          generateName: $NODE-
        spec:
          ssh:
            key: |
              "cat SSH_PUBLIC_KEY_FILE"
        ttl: 24h
        user: admin
        vm: $NODE
        EOF

      حيث SSH_PUBLIC_KEY_FILE هو اسم الملف الذي يحتوي على مفتاح SSH العام.

    2. احصل على عنوان IP الخارجي لعقدة المستودع:
      kubectl get virtualmachineexternalaccess -n $PROJECT $NODE -ojsonpath='{.status.ingressIP}'
    3. احصل على عنوان IP الداخلي لعقدة المستودع:
      kubectl get virtualmachines.virtualmachine.gdc.goog -n $PROJECT $NODE -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}'

    تحميل ملفات التثبيت

    في هذه الخطوة، يحمِّل مشغّل GDC أحدث إصدار من الملفات التالية إلى عقدة المستودع:

    • apigee-4.53.01
    • apigee-nginx.tar
    • postgresql14.tar
    • fluentbit.tar
    • ansible-rpms.tar
    • apigee-repos.tar

    لتحميل ملفات التثبيت، اتّبِع الخطوات التالية:

    1. انسخ ملف مفتاح SSH الخاص إلى عقدة المستودع:
      scp -i SSH_PRIVATE_KEY_FILE ~/apigee-files/* admin@REPO_EXTERNAL_IP:/tmp

      المكان:

      • SSH_PRIVATE_KEY_FILE هو اسم الملف الذي يحتوي على مفتاح SSH الخاص.
      • REPO_EXTERNAL_IP هو عنوان IP الخارجي لعقدة المستودع التي تم الحصول عليها في الخطوة السابقة.
    2. حمِّل المجلد الذي يحتوي على إعدادات Fluent Bit إلى عقدة المستودع:
      scp -i SSH-PRIVATE-KEY-FILE -r apigee/scripts/fluent-bit admin@REPO_EXTERNAL_IP:/tmp/fluent-bit

      المكان:

      • SSH_PRIVATE_KEY_FILE هو اسم الملف الذي يحتوي على مفتاح SSH الخاص.
      • REPO_EXTERNAL_IP هو عنوان IP الخارجي لعقدة المستودع.

    ضبط مستودع النسخ المطابق

    لضبط مستودع النسخ الاحتياطي، اتّبِع الخطوات التالية:

    1. انسخ apigee/scripts/repo_setup.sh إلى عقدة المستودع.
    2. في النص البرمجي، استبدِل REPO_USER وREPO_PASSWORD باسم المستخدم وكلمة المرور المطلوبَين لمستودع النسخ المطابق.
    3. شغِّل النص البرمجي:
      chmod a+x repo_setup.sh
      ./repo_setup.sh

      في حال ظهور الخطأ No such file or directory، أعِد تشغيل النص البرمجي.

    4. اختبِر الاتصال بالمستودع المتطابق محليًا من عقدة المستودع.
      curl http://REPO_USER:REPO_PASSWORD@REPO_INTERNAL_IP:3939/bootstrap_VERSION.sh -o /tmp/bootstrap_VERSION.sh
      curl http://REPO_USER:REPO_PASSWORD@REPO_INTERNAL_IP:3939/apigee/release/VERSION/repodata/repomd.xml

      استبدِل VERSION بإصدار Apigee Edge for Private Cloud الذي تريد تثبيته.

    تفعيل عُقد Apigee

    في هذه الخطوة، ينشر مشغّل GDC عُقد إدارة واجهة برمجة التطبيقات Apigee.

    إنشاء عُقد Apigee

    لإنشاء عُقد إدارة واجهة برمجة التطبيقات في Apigee، اتّبِع الخطوات التالية:

    1. استبدِل REPO_INTERNAL_IP وREPO_USER_NAME وREPO_PASSWORD في apigee/helm/scripts/apigee_setup.sh بالقيم المطلوبة.
    2. صدِّر القيم كمتغيرات بيئية:
      export REPO_IP=REPO_INTERNAL_IP
      export REPO_USER=REPO_USER_NAME
      export REPO_PASSWORD=REPO_PASSWORD
    3. فعِّل apigee_node في apigee/helm/values-cookie-air-gapped.yaml كما هو موضّح::
      apigee_node:
        enabled: true
      
    4. نفِّذ النص البرمجي للنشر لإنشاء عُقد Apigee:
        source venv/bin/activate
        python apigee/solution_deploy.py gdc-air-gapped

    ضبط إذن الوصول إلى عقدة Apigee

    اضبط إذن الوصول إلى عُقد إدارة واجهة برمجة التطبيقات Apigee API Management باتّباع الخطوات التالية:

    1. المصادقة باستخدام مجموعة مشرف المؤسسة:
      gdcloud clusters get-credentials ORG_ADMIN_CLUSTER

      حيث ORG_ADMIN_CLUSTER هو اسم مجموعة GKE الخاصة بمشرف المؤسسة.

    2. أنشئ مفتاح SSH لكل عقدة:
      for i in 1 2 3 4 5; do
        kubectl create -n $PROJECT -f - <<EOF
        apiVersion: virtualmachine.GDC.goog/v1
        kind: VirtualMachineAccessRequest
        metadata:
          generateName: node$i
        spec:
          ssh:
            key: |
              "cat SSH_PUBLIC_KEY_FILE"
        ttl: 24h
        user: admin
        vm: node$i
        EOF
        done

      حيث SSH_PUBLIC_KEY_FILE هو اسم الملف الذي يحتوي على مفتاح SSH العام.

    3. احصل على عناوين IP الخارجية لعُقد Apigee:
      for i in 1 2 3 4 5; do
        kubectl get virtualmachineexternalaccess -n $PROJECT node$i -ojsonpath='{.status.ingressIP}'
        echo
        done
    4. احصل على عناوين IP الداخلية لعُقد Apigee:
      for i in 1 2 3 4 5; do
        kubectl get virtualmachines.virtualmachine.gdc.goog -n $PROJECT node$i -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}'
        echo
        done
    5. (اختياري) تحقَّق مما إذا كانت نصوص البرامج لبدء التشغيل تعمل بنجاح على عُقد Apigee:
      1. انتقِل إلى العُقدة باستخدام SSH ونفِّذ الأمر التالي:
        sudo journalctl -u cloud-final -f
      2. ابحث عن سجلات مشابهة لما يلي:
        Aug 29 18:17:00 172.20.128.117 cloud-init[1895]: Complete!
        Aug 29 18:17:00 172.20.128.117 cloud-init[1895]: Finished running the command: . /var/lib/google/startup-scripts/apigee-setup

    إعداد عقدة التحكّم

    في هذه الخطوة، يضبط مشغّل GDC عقدة تحكّم لإدارة عمليات تثبيت Apigee.

    إنشاء عقدة تحكّم

    لإنشاء عقدة تحكّم، اتّبِع الخطوات التالية:

    1. استبدِل REPO_INTERNAL_IP وREPO_USER_NAME وREPO_PASSWORD في apigee/helm/scripts/control_setup.sh بالقيم المطلوبة.
    2. فعِّل ميزة control_node في apigee/helm/values-cookie-air-gapped.yaml كما هو موضّح:
      control_node:
        enabled: true
      
    3. نفِّذ النص البرمجي للنشر لإنشاء عقدة التحكّم:
      source venv/bin/activate
      python apigee/solution_deploy.py gdc-air-gapped

    ضبط إذن الوصول إلى عقدة التحكّم

    لضبط إذن الوصول إلى عقدة التحكّم، اتّبِع الخطوات التالية:

    1. اضبط إذن الوصول إلى عقدة التحكّم باستخدام بروتوكول SSH:
      kubectl create -n $PROJECT -f - <<EOF
      apiVersion: virtualmachine.GDC.goog/v1
      kind: VirtualMachineAccessRequest
      metadata:
        generateName: control-
      spec:
        ssh:
          key: |
            "cat SSH_PUBLIC_KEY_FILE"
      ttl: 24h
      user: admin
      vm: control
      EOF
    2. احصل على عنوان IP الخارجي لعقدة التحكّم:
      kubectl get virtualmachineexternalaccess -n $PROJECT control -ojsonpath='{.status.ingressIP}'
    3. احصل على عنوان IP الداخلي لعقدة التحكّم:
      kubectl get virtualmachines.virtualmachine.GDC.goog -n $PROJECT control -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}'

    إعداد Ansible

    في هذه الخطوة، يضبط مشغّل GDC بيئة على عقدة التحكّم.

    لضبط بيئة Ansible، اتّبِع الخطوات التالية:

    1. انتقِل إلى عقدة التحكّم عبر بروتوكول SSH وأعِد إعداد بيئة Ansible:
      cd /home/admin
      cp -r /tmp/apigee-repos .
      cd apigee-repos/ansible-opdk-accelerator/setup
    2. استبدِل مستودعات git البعيدة بملف محلي:
      sed -i 's/https:\/\/github.com\/carlosfrias/git+file:\/\/\/home\/admin\/apigee-repos/g'  requirements.yml
      sed -i 's/\.git$//g'  requirements.yml
      
    3. Install Ansible requirements:
        sudo chown -R admin /home/admin/apigee-repos
        ansible-galaxy install -r requirements.yml -f
    4. تعديل إعدادات عملية الإعداد:
      1. عدِّل ملف main.yml:
        vi ~/apigee-repos/ansible-opdk-accelerator/setup/roles/apigee-opdk-setup-ansible-controller/tasks/main.yml
      2. أزِل المهام التي تتطلّب الوصول إلى GitHub:
        • استخدام Git SSH لاستخراج مستودعات الإعدادات
        • استخراج مستودعات الإعدادات باستخدام بروتوكول HTTPS في Git
      3. شغِّل دليل الإعداد:
        cd ~/apigee-repos/ansible-opdk-accelerator/setup
        ansible-playbook setup.yml
    5. حمِّل مفتاح SSH لعُقد Apigee إلى عقدة التحكّم:
      scp -i CONTROL_SSH_PRIVATE_KEY_FILE APIGEE_NODE_SSH_PRIVATE_KEY_FILE admin@CONTROL_EXTERNAL_IP:/home/admin/.ssh/id_rsa

      المكان:

      • CONTROL_SSH_PRIVATE_KEY_FILE هو اسم الملف الذي يحتوي على مفتاح SSH الخاص بعقدة التحكّم.
      • APIGEE_NODE_SSH_PRIVATE_KEY_FILE هو اسم الملف الذي يحتوي على مفتاح SSH الخاص بعقدة Apigee.
      • CONTROL_EXTERNAL_IP هو عنوان IP الخارجي لعقدة التحكّم.
    6. أنشئ ملف إعداد مستودع Ansible:
      1. انسخ محتوى الملف apigee/scripts/ansible/prod.cfg إلى الملف prod.cfg:
        vi ~/.ansible/multi-planet-configurations/prod.cfg
      2. أنشِئ المجلد edge-dc1 وانسخ محتوى الملف apigee/scripts/ansible/edge-dc1 إلى الملف edge-dc1:
        mkdir ~/.ansible/inventory/prod
        vi ~/.ansible/inventory/prod/edge-dc1
    7. عدِّل عناوين IP الداخلية لعُقد Apigee في edge-dc1:
      apigee_000 ansible_host=APIGEE_NODE1_INTERNAL_IP
      apigee_001 ansible_host=APIGEE_NODE2_INTERNAL_IP
      apigee_002 ansible_host=APIGEE_NODE3_INTERNAL_IP
      apigee_003 ansible_host=APIGEE_NODE4_INTERNAL_IP
      apigee_004 ansible_host=APIGEE_NODE5_INTERNAL_IP

      حيث تكون قيم APIGEE_NODE*_INTERNAL_IP هي عناوين IP الداخلية لعُقد Apigee التي تم الحصول عليها في خطوة سابقة.

    8. اضبط ملف ~/.apigee-secure/credentials.yml باستخدام القيم التالية:
      • apigee_repo_user: 'APIGEE_REPO_USER'
      • apigee_repo_password: 'APIGEE_REPO_PASSWORD'
      • opdk_qpid_mgmt_username: 'OPDK_QPID_MGMT_USERNAME'
      • opdk_qpid_mgmt_password: 'OPDK_QPID_MGMT_PASSWORD'

      المكان:

      • APIGEE_REPO_USER هو اسم المستخدم لمستودع Apigee.
      • APIGEE_REPO_PASSWORD هي كلمة المرور لمستودع Apigee.
      • OPDK_QPID_MGMT_USERNAME هو اسم المستخدم لخادم إدارة Apigee QPID.
      • OPDK_QPID_MGMT_PASSWORD هي كلمة المرور لخادم إدارة Apigee QPID.

    9. أضِف ملف ترخيص يتضمّن ملف ترخيص صالحًا لخدمة Apigee Edge for Private Cloud. يجب أن يكون اسم الملف license.txt.
    10. انسخ محتوى الملف ~/.apigee-secure/license.txt إلى الملف license.txt الذي أنشأته للتو.
    11. اضبط القيم التالية في ملف ~/.apigee/custom-properties.yml:
      • opdk_version: 'OPDK_VERSION'
      • apigee_repo_url: 'APIGEE_REPO_URL'

      المكان:

      • OPDK_VERSION هو إصدار Apigee Edge for Private Cloud الذي تريد تثبيته.
      • APIGEE_REPO_URL هو عنوان URL لمستودع Apigee.

    12. صدِّر ملف الإعداد كمتغيّر بيئة:
      export ANSIBLE_CONFIG=~/.ansible/multi-planet-configurations/prod.cfg

    تثبيت مكوّنات Apigee

    في هذه الخطوة، يثبّت مشغّل GDC مكوّنات Apigee باستخدام Ansible.

    لتثبيت مكوّنات Apigee، اتّبِع الخطوات التالية:

    1. استبدِل مستودعات git البعيدة بالملفات المحلية:
      cd ~/apigee-repos/ansible-opdk-accelerator/installations/multi-node/
      sed -i 's/https:\/\/github.com\/carlosfrias/git+file:\/\/\/home\/admin\/apigee-repos/g' requirements.yml
      sed -i 's/\.git$//g'  requirements.yml
    2. ثبِّت متطلبات Ansible:
      ansible-galaxy install -r requirements.yml -f
    3. تصحيح أدوار Ansible:
      sed -i 's/private_address/inventory_hostname/g' ~/.ansible/roles/apigee-opdk-settings-cassandra/tasks/main.yml
      sed -i 's/include/include_tasks/g' ~/.ansible/roles/apigee-opdk-server-self/tasks/main.yml
      sed -i 's/include/include_tasks/g' ~/.ansible/roles/apigee-opdk-setup-silent-installation-config/tasks/main.yml
      cat << EOF >> ~/.ansible/roles/apigee-opdk-setup-silent-installation-config/templates/response-file-template.conf.j2
      QPID_MGMT_USERNAME= opdk_qpid_mgmt_username
      QPID_MGMT_PASSWORD= opdk_qpid_mgmt_password
      EOF
      sed -i 's/mode: 0700/mode: 0700\n      recurse: yes/g' ~/.ansible/roles/apigee-opdk-setup-postgres-config/tasks/main.yml
    4. استبدِل محتوى الملف install.yml بالمحتوى في apigee/scripts/ansible/install.yml.
    5. شغِّل دليل التشغيل لتثبيت مكوّنات Apigee:
      ansible-playbook install.yml
    6. عطِّل رابط إعادة ضبط كلمة مرور المستخدم في واجهة مستخدم Edge. لا يتضمّن إصدار Apigee على GDC الذي لا يتصل بالإنترنت خادم SMTP. اتّبِع الخطوات الواردة في إيقاف رابط إعادة ضبط كلمة المرور في واجهة مستخدم Edge.

    نشر وحدات pods والخدمات

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

    لنشر الحاويات والخدمات، اتّبِع الخطوات التالية:

    1. اتّبِع التعليمات الواردة في إنشاء مثيلات Harbor لإنشاء مثيل Harbor في مشروع GDC dev-apigee.
    2. اتّبِع التعليمات الواردة في إنشاء مشاريع Harbor لإنشاء مشروع Harbor باسم apigee.
    3. اتّبِع التعليمات الواردة في ضبط التحكّم في الوصول لإعداد التحكّم في الوصول إلى مشروع Harbor.
    4. اتّبِع التعليمات الواردة في تسجيل الدخول إلى Docker وHelm لإعداد مصادقة Docker.
    5. عدِّل عناوين IP في الملف apigee/apigee_user_cluster.toml كما هو موضّح:
      mgmt-server-proxy = "APIGEE_NODE1_EXTERNAL_IP"
      router-proxy1 = "APIGEE_NODE2_EXTERNAL_IP"
      router-proxy2 = "APIGEE_NODE3_EXTERNAL_IP"
      

      المكان:

      • APIGEE_NODE1_EXTERNAL_IP هو عنوان IP الخارجي للعقدة 1 في Apigee الذي تم الحصول عليه في خطوة سابقة.
      • APIGEE_NODE2_EXTERNAL_IP هو عنوان IP الخارجي لعقدة Apigee2 الذي تم الحصول عليه في خطوة سابقة.
      • APIGEE_NODE3_EXTERNAL_IP هو عنوان IP الخارجي للعقدة 3 من Apigee الذي تم الحصول عليه في خطوة سابقة.

    6. ضَع ملف شهادة SSL (server.crt) وملف المفتاح (server.key) لتفعيل بروتوكول HTTPS ضمن المجلدَين apigee/mgmt-server-proxy وapigee/router-proxy.

      لإنشاء شهادات موقَّعة ذاتيًا، استخدِم الأمر التالي:

      openssl req -newkey rsa:4096 -x509 -nodes -keyout server.key -new -out server.crt -subj "/CN=*.apigeetest.com" -sha256 -days 365
    7. عدِّل قيمة SSH-PASSWORD للمستخدم الجذر في حاوية أداة التحميل في الملف apigee/uploader/Dockerfile:
      RUN echo 'root:SSH_PASSWORD' | chpasswd
    8. احصل على بيانات اعتماد مجموعة المستخدمين:
      gdcloud clusters get-credentials USER_CLUSTER

      حيث USER_CLUSTER هو اسم مجموعة مستخدمي GKE.

    9. نفِّذ النص البرمجي للنشر من أجل نشر وحدات Pod والخدمات:
      source venv/bin/activate
      python apigee/solution_deploy_user_cluster.py gdc-air-gapped
    10. احصل على عناوين IP الخارجية للخدمات:
      kubectl get svc -n $PROJECT_ID

    تعديل عناوين IP الخاصة بالقائم بالتحميل وبرنامج Fluent Bit Forwarder

    في هذه الخطوة، عليك تعديل عناوين IP الخاصة بأداة التحميل وأداة إعادة التوجيه Fluent Bit في نصوص برامج الإعداد والاحتفاظ بنسخة احتياطية من Apigee.

    1. تعديل SSH_PASSWORD وroot وUPLOADER_EXTERNAL_IP في apigee/helm/scripts/backup_setup.sh:
      sshpass -p SSH_PASSWORD scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null apigee-backup* root@UPLOADER_EXTERNAL_IP:/temp/

      المكان:

      • SSH_PASSWORD هي كلمة مرور مستخدم الجذر.
      • UPLOADER_EXTERNAL_IP هو عنوان IP الخارجي لخدمة التحميل الذي تم الحصول عليه في خطوة سابقة.

    2. تعديل FLUENTBIT_EXTERNAL_IP في apigee/helm/scripts/apigee_setup.sh:
      export FLUENTBIT_EXTERNAL_IP=FLUENTBIT_EXTERNAL_IP

    يتطلّب تعديل نص البرمجة عند بدء التشغيل إعادة تشغيل عُقد Apigee. لإعادة تشغيل العُقد، اتّبِع الخطوات التالية:

    1. أوقِف الأجهزة الافتراضية باتّباع الخطوات التالية:
      gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
      export PROJECT=dev-apigee
      for i in 1 2 3 4 5; do
        gdcloud compute instances stop node$i --project $PROJECT
        done
    2. أعِد نشر مخطط Helm:
      python apigee/solution_deploy.py gdc-air-gapped
    3. ابدأ تشغيل الأجهزة الافتراضية:
      for i in 1 2 3 4 5; do
        GDCloud compute instances start node$i --project $PROJECT
        done

    إعداد مؤسسة Apigee

    في هذه الخطوة، يضيف مشغّل GDC مؤسسة Apigee من خلال تنفيذ نص برمجي للإعداد على node1.

    لإعداد مؤسسة Apigee، اتّبِع الخطوات التالية:

    1. عدِّل القيم التالية في apigee/scripts/apigee_org_setup.sh كما هو موضّح. عدِّل المَعلمات الأخرى حسب الحاجة.
      IP1=APIGEE_NODE1_INTERNAL_IP
      
      VHOST_ALIAS="APIGEE_NODE2_EXTERNAL_IP:9001 APIGEE_NODE3_EXTERNAL_IP:9001"

      المكان:

      • APIGEE_NODE1_INTERNAL_IP هو عنوان IP الداخلي لعقدة Apigee1 الذي تم الحصول عليه في خطوة سابقة.
      • APIGEE_NODE2_EXTERNAL_IP هو عنوان IP الخارجي لعقدة Apigee2 الذي تم الحصول عليه في خطوة سابقة.
      • APIGEE_NODE3_EXTERNAL_IP هو عنوان IP الخارجي للعقدة 3 من Apigee الذي تم الحصول عليه في خطوة سابقة.

    2. نفِّذ النص البرمجي على node1 لإعداد المؤسسة:
      chmod a+x apigee_org_setup.sh
      ./apigee_org_setup.sh

    اختبار الاتصال عبر HTTP

    في هذه الخطوة، ستختبر إمكانية الاتصال عبر HTTP لكلّ من Management API وخادم وكيل لواجهة برمجة التطبيقات.

    لاختبار إمكانية الاتصال عبر HTTP، اتّبِع الخطوات التالية:

    1. احصل على عنوان IP الخارجي للخدمة apigee-elb:
      gdcloud clusters get-credentials USER_CLUSTER
      export PROJECT=dev-apigee
      kubectl get svc apigee-elb -n $PROJECT

      حيث USER_CLUSTER هو اسم مجموعة مستخدمي GKE.

      تعمل هذه الخدمة كنقطة نهاية لواجهة مستخدم Edge وManagement API وخادم وكيل لواجهة برمجة التطبيقات.

    اختبار Management API

    لاختبار Management API، أرسِل طلب HTTP إلى نقطة النهاية:

    curl -u "opdk@apigee.com:Apigee123!" "http://APIGEE_ELB_EXTERNAL_IP:8080/v1/o/ORG_NAME/e/ENV_NAME/provisioning/axstatus"

    المكان:

    • APIGEE_ELB_EXTERNAL_IP هو عنوان IP الخارجي لخدمة apigee-elb التي تم الحصول عليها في خطوة سابقة.
    • ORG_NAME هو اسم مؤسسة Apigee.
    • ENV_NAME هو اسم بيئة Apigee.

    اختبار خادم وكيل لواجهة برمجة التطبيقات

    لاختبار خادم وكيل لواجهة برمجة التطبيقات، اتّبِع الخطوات التالية:

    1. سجِّل الدخول إلى واجهة مستخدم Edge.
    2. في صفحة خوادم API الوكيلة، انقر على إنشاء لإنشاء خادم API وكيل جديد.
    3. في صفحة تفاصيل الخادم الوكيل، أدخِل القيم التالية:
      • نوع الخادم الوكيل: اختَر بدون استهداف.
      • اسم الخادم الوكيل: ok
      • المسار الأساسي: /ok
      • الهدف: http://APIGEE_ELB_EXTERNAL_IP:9001
    4. انقر على إنشاء لإنشاء خادم وكيل لواجهة برمجة التطبيقات.
    5. أرسِل طلب HTTP إلى /ok:
      curl -i http://APIGEE_ELB_EXTERNAL_IP:9001/ok
    6. تأكَّد من أنّ الردّ هو 200 OK.

    ضبط بروتوكول أمان طبقة النقل واختبار HTTPS

    في هذه الخطوة، يضبط مشغّل GDC بروتوكول أمان طبقة النقل (TLS) لخادم وكيل واجهة برمجة التطبيقات وواجهة مستخدم Edge وManagement API.

    ضبط بروتوكول أمان طبقة النقل (TLS) لخادم وكيل واجهة برمجة التطبيقات

    1. اتّبِع الخطوات الواردة في إنشاء ملف تخزين مفاتيح/ملف تخزين موثوق وعنوان بديل لإنشاء شهادة موقعة ذاتيًا بالقيم التالية:
      • KeyStore: myTestKeystore
      • KeyAlias: myKeyAlias
      • الاسم الشائع: apigeetest.com
    2. أرسِل طلب بيانات من واجهة برمجة التطبيقات لإنشاء المضيف الافتراضي باسم api.apigeetest.com:
      curl -v -H "Content-Type:application/xml" \
        -u "opdk@apigee.com:Apigee123!" "http://APIGEE_ELB_EXTERNAL_IP:8080/v1/o/ORG_NAME/e//virtualhosts" \
        -d '<VirtualHost  name="secure">
            <HostAliases>
              <HostAlias>api.apigeetest.com</HostAlias>
            </HostAliases>
            <Interfaces/>
            <Port>9005</Port>
            <OCSPStapling>off</OCSPStapling>
            <SSLInfo>
              <Enabled>true</Enabled>
              <ClientAuthEnabled>false</ClientAuthEnabled>
              <KeyStore>myTestKeystore</KeyStore>
              <KeyAlias>myKeyAlias</KeyAlias>
            </SSLInfo>
          </VirtualHost>'

      المكان:

      • APIGEE_ELB_EXTERNAL_IP هو عنوان IP الخارجي لخدمة apigee-elb التي تم الحصول عليها في خطوة سابقة.
      • ORG_NAME هو اسم مؤسسة Apigee.
      • ENV_NAME هو اسم بيئة Apigee التي يجب إنشاء المضيف الافتراضي فيها.
    3. أنشئ خادمًا وكيلاً لواجهة برمجة التطبيقات باستخدام المضيف الافتراضي الآمن.
    4. على أجهزة التوجيه، اضبط عملية حلّ نظام أسماء النطاقات للمضيفات الافتراضية:
      echo '127.0.0.1 api.apigeetest.com' | sudo tee -a /etc/hosts
    5. تأكَّد من أنّ المضيفات الافتراضية تعمل محليًا عن طريق إرسال طلب HTTPS إلى نقطة النهاية:
      curl https://api.apigeetest.com:9005/ok -v -k
    6. اضبط عملية التحويل باستخدام نظام أسماء النطاقات لنقطة النهاية:
      echo 'APIGEE_ELB_EXTERNAL_IP apigeetest.com' | sudo tee -a /etc/hosts

      حيث APIGEE_ELB_EXTERNAL_IP هو عنوان IP الخارجي لخدمة apigee-elb التي تم الحصول عليها في خطوة سابقة.

    7. انتقِل إلى https://apigeetest.com/ok في متصفّح الويب وتأكَّد من أنّه يعمل.

    ضبط بروتوكول أمان طبقة النقل (TLS) لواجهة مستخدم Edge

    لضبط بروتوكول أمان طبقة النقل (TLS) لواجهة مستخدم Edge، اتّبِع الخطوات التالية:

    1. أنشئ ملف تخزين مفاتيح من ملف شهادة طبقة المقابس الآمنة (SSL) وملف المفتاح:
      openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out keystore.pkcs12
      keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks
    2. ضَع ملف تخزين المفاتيح ضمن مجلد Apigee على node1:
      scp -i SSH_PRIVATE_KEY_FILE keystore.jks admin@APIGEE_NODE1_EXTERNAL_IP:/home/admin/

      المكان:

      • SSH_PRIVATE_KEY_FILE هو اسم الملف الذي يحتوي على مفتاح SSH الخاص بعقدة Apigee.
      • APIGEE_NODE1_EXTERNAL_IP هو عنوان IP الخارجي للعقدة 1 في Apigee الذي تم الحصول عليه في خطوة سابقة.

    3. انتقِل إلى node1 عبر SSH وانقل ملف تخزين المفاتيح إلى مجلد Apigee:
      sudo mv keystore.jks /opt/apigee/customer/application/
    4. أنشئ ملف إعداد SSL:
      sudo vi /tmp/sslConfigFile
    5. عدِّل قيمة KEY-PASS-PHRASE كما هو موضّح:
      HTTPSPORT=9443
      DISABLE_HTTP=n
      KEY_ALGO=JKS
      KEY_FILE_PATH=/opt/apigee/customer/application/keystore.jks
      KEY_PASS=KEY_PASS_PHRASE
    6. ضبط إعدادات SSL باستخدام ملف الإعداد:
      sudo chown apigee:apigee /tmp/sslConfigFile
      /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f /tmp/sslConfigFile
    7. اضبط إعدادات التحويل باستخدام نظام أسماء النطاقات لواجهة مستخدم Edge باتّباع الخطوات التالية:
      echo 'APIGEE_ELB_EXTERNAL_IP ui.apigeetest.com' | sudo tee -a /etc/hosts

      حيث APIGEE_ELB_EXTERNAL_IP هو عنوان IP الخارجي لخدمة apigee-elb التي تم الحصول عليها في خطوة سابقة.

    8. افتح https://ui.apigeetest.com:9443 في متصفّح ويب وتأكَّد من أنّه يعمل. لمزيد من التفاصيل، يُرجى الرجوع إلى الدليل.

    ضبط بروتوكول أمان طبقة النقل (TLS) لواجهة Management API

    لضبط بروتوكول أمان طبقة النقل (TLS) لواجهة Management API، اتّبِع الخطوات التالية:

    1. اضبط المالك لملف تخزين المفاتيح (استخدِم المالك نفسه الذي استخدمته في واجهة Edge):
      sudo chown apigee:apigee /opt/apigee/customer/application/keystore.jks
    2. أنشئ ملف السمات:
      sudo vi /opt/apigee/customer/application/management-server.properties
    3. استبدِل قيمة KEY_PASS_PHRASE بكلمة مرور ملف تخزين المفاتيح، كما هو موضّح:

      conf_webserver_ssl.enabled=true
      # Leave conf_webserver_http.turn.off set to false
      # because many Edge internal calls use HTTP.
      conf_webserver_http.turn.off=false
      conf_webserver_ssl.port=8443
      conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
      # Enter the obfuscated keystore password below.
      conf_webserver_keystore.password=KEY_PASS_PHRASE
    4. أعِد تشغيل خادم الإدارة لتفعيل التغييرات:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    5. تأكَّد من أنّ بروتوكول HTTPS يعمل على جهازك:
      curl -u "opdk@apigee.com:Apigee123!" "https://localhost:8443/v1/users" -k
    6. من العميل، انتقِل إلى https://apigeetest.com:8443/v1/users في المتصفّح. أدخِل اسم المستخدم وكلمة المرور للمشرف للتأكّد من ضبط بيانات الاعتماد بشكلٍ صحيح.

    الخطوات التالية