Apigee را در Google Distributed Cloud air-gapped نصب کنید

این راهنما نحوه نصب و راه‌اندازی Apigee Edge برای Private Cloud و پروکسی‌های API را در یک محیط Google Distributed Cloud (GDC) که به صورت Air-gapped ارائه می‌شود، شرح می‌دهد. سرویس‌های Air-gapped GDC ، از جمله Apigee Edge برای Private Cloud، برای مدیریت زیرساخت‌ها و خدمات نیازی به اتصال به Google Cloud ندارند. می‌توانید از یک صفحه کنترل محلی که در محل شما میزبانی می‌شود برای همه عملیات استفاده کنید. برای مرور کلی در مورد GDC Air-gapped، به Overview مراجعه کنید.

این راهنما برای اپراتورهای Apigee در نظر گرفته شده است که با Apigee Edge برای Private Cloud آشنا هستند و درک اولیه‌ای از Kubernetes دارند.

مرور کلی مراحل مورد نیاز

برای نصب و راه‌اندازی Apigee Edge برای ابر خصوصی در یک محیط GDC ایزوله، اپراتور باید مراحل زیر را انجام دهد:

قبل از اینکه شروع کنی

قبل از شروع فرآیند نصب، حتماً مراحل زیر را انجام دهید:

  1. اگر از قبل یک پروژه GDC ندارید، برای استفاده در نصب، آن را ایجاد کنید. برای اطلاعات بیشتر، به بخش «ایجاد یک پروژه» مراجعه کنید.
  2. رابط خط فرمان gdcloud را روی یک ایستگاه کاری متصل به GDC یا در محیط استقرار مداوم سازمان خود دانلود، نصب و پیکربندی کنید .
  3. اعتبارنامه‌های مورد نیاز برای استفاده از رابط خط فرمان gdcloud و رابط برنامه‌نویسی کاربردی kubectl را دریافت کنید. برای دسترسی به مراحل مورد نیاز، به بخش «احراز هویت حساب کاربری» مراجعه کنید.
  4. نام کاربری و رمز عبور Apigee را که از مدیر حساب Apigee خود دریافت کرده‌اید، تأیید کنید.
  5. نام خوشه مدیریت GKE و نام خوشه کاربر GKE خود را تأیید کنید.

الزامات ظرفیت

نصب Apigee Edge برای ابر خصوصی در GDC به چندین ماشین مجازی (VM) با تخصیص منابع خاص نیاز دارد. این ماشین‌های مجازی بر اساس منابع محاسباتی (RAM، هسته‌های vCPU) و فضای ذخیره‌سازی دیسک محلی خود، هزینه‌هایی را متحمل می‌شوند. برای اطلاعات بیشتر، به قیمت‌گذاری مراجعه کنید.

جدول زیر منابع مورد نیاز برای هر ماشین مجازی را نشان می‌دهد:

نوع ماشین مجازی رم هسته‌های vCPU ذخیره‌سازی دیسک
گره مخزن ۸ گیگابایت ۲ هسته vCPU ۶۴ گیگابایت
گره کنترل ۸ گیگابایت ۲ هسته vCPU ۶۴ گیگابایت
گره‌های مدیریت API آپیجی ۱، ۲ و ۳ رم ۱۶ گیگابایتی ۸ هسته vCPU ۶۷۰ گیگابایت
گره‌های مدیریت API آپیجی ۴ و ۵ رم ۱۶ گیگابایتی ۸ هسته vCPU ۵۰۰ گیگابایت - ۱ ترابایت

نقش‌ها و مجوزها

برای استقرار Apigee Edge برای ابر خصوصی در یک محیط GDC ایزوله، نقش‌ها و مجوزهای زیر مورد نیاز است:

  • مدیر پلتفرم (PA): نقش IAM Admin را تعیین کنید.
  • اپراتور برنامه (AO): نقش‌های زیر را اختصاص دهید:
    • Harbor Instance Admin : دسترسی کامل برای مدیریت نمونه‌های هاربر در یک پروژه دارد.
    • 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 سرورهای DNS ندارد و از DNS resolution محلی به عنوان یک راه حل موقت استفاده می‌کند. اگر Apigee در GDC air-gapped در محیطی با سرورهای DNS خارجی مستقر شده است، مراحل پیکربندی DNS محلی را با پیکربندی ورودی‌های DNS در سرورهای DNS جایگزین کنید.
    • Apigee در GDC air-gapped شامل یک سرور SMTP مستقل نیست. شما می‌توانید در هر زمانی یک سرور SMTP را پیکربندی کنید تا اعلان‌های ایمیل خروجی برای ایجاد حساب کاربری و تنظیم مجدد رمز عبور از سرور مدیریت و رابط کاربری مدیریت فعال شود. APIهای مدیریت برای مدیریت حساب کاربری Apigee در دسترس هستند. برای اطلاعات بیشتر به پیکربندی سرور SMTP Edge مراجعه کنید.
    • Apigee روی GDC air-gapped تشخیص و پیشگیری از نفوذ را پیاده‌سازی نمی‌کند. یک سیستم پیشگیری از نفوذ (IPS)، مانند Snort ، نصب و پیکربندی کنید تا فعالیت‌های مخرب را شناسایی و از آنها جلوگیری کند.

    دریافت فایل‌های مورد نیاز

    برای دریافت فایل‌های نصب، ابتدا باید یک گره متصل راه‌اندازی کنید و سپس فایل‌ها را دانلود کنید.

    یک گره متصل راه‌اندازی کنید

    گره متصل، یک ماشین مجازی واحد خارج از GDC است که شما برای دانلود فایل‌های نصب از آن استفاده می‌کنید. این ماشین مجازی نیاز به دسترسی به اینترنت دارد و فقط برای فرآیند نصب استفاده می‌شود.

    گره متصل به ظرفیت و پیکربندی زیر نیاز دارد:

    • سیستم عامل: راکی ​​لینوکس ۸
    • اندازه دستگاه: ۸ گیگابایت رم؛ ۲ هسته vCPU؛ ۶۴ گیگابایت حافظه دیسک محلی
    • اتصال:
      • ورودی: TCP 22 (SSH)
      • خروجی: اینترنت

    برای ایجاد گره متصل، دستورالعمل‌های موجود در بخش «ایجاد» را دنبال کنید و یک نمونه ماشین مجازی را راه‌اندازی کنید . پس از ایجاد ماشین مجازی، دستورالعمل‌های موجود در بخش «اتصال به ماشین‌های مجازی لینوکس » را برای اتصال به ماشین مجازی دنبال کنید. برای مشاهده لیست سیستم عامل‌های پشتیبانی شده، به بخش «سیستم عامل‌های پشتیبانی شده توسط GDC» مراجعه کنید.

    دانلود فایل‌های نصب

    برای دانلود فایل‌های نصب:

    1. برای اطلاع از آخرین نسخه رسمی منتشر شده که برای GDC پشتیبانی می‌شود، همانطور که در ستون Edge for Private Cloud ذکر شده است، یادداشت‌های انتشار Apigee Edge for 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 برای فضای ابری خصوصی برای استفاده در GDC است که قصد نصب آن را دارید، برای مثال، ۴.۵۳.۰۱ .
    3. آخرین نسخه Apigee Edge برای Private Cloud را از /tmp/bootstrap_ VERSION .sh bootstrap_ VERSION .sh / دانلود کنید:
      curl https://software.apigee.com/bootstrap_VERSION.sh -o /tmp/bootstrap_VERSION.sh

      جایی که VERSION آخرین نسخه منتشر شده Apigee Edge برای Private Cloud برای استفاده در GDC است که قصد نصب آن را دارید، مثلاً ۴.۵۳.۰۱ .

    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 برای فضای ابری خصوصی است که برای استفاده در GDC که قصد نصب آن را دارید، منتشر شده است.

    5. اسکریپت راه‌اندازی را روی گره متصل اجرا کنید:
      chmod a+x connected-node_setup.sh \
        ./connected-node_setup.sh

      در این مرحله، اسکریپت فایل‌های مورد نیاز را در مکان‌های زیر تولید می‌کند (برای مثال، برای نسخه ۴.۵۳.۰۱ ):

      • /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 برای 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 for 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. ایجاد یک محیط مجازی پایتون:
      python3 -m venv venv /
      source venv/bin/activate
    4. اسکریپت deploy را برای ایجاد گره مخزن اجرا کنید:
      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 را در مخزن node کپی کنید.
    2. در اسکریپت، REPO_USER و REPO_PASSWORD را با نام کاربری و رمز عبور دلخواه برای مخزن mirror جایگزین کنید.
    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 گره‌های مدیریتی API مربوط به Apigee را مستقر می‌کند.

    ایجاد گره‌های Apigee

    برای ایجاد گره‌های مدیریت API 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. اسکریپت deploy را برای ایجاد گره‌های Apigee اجرا کنید:
        source venv/bin/activate
        python apigee/solution_deploy.py gdc-air-gapped

    پیکربندی دسترسی به گره Apigee

    پیکربندی دسترسی به گره‌های مدیریت API Apigee:

    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. اسکریپت deploy را برای ایجاد گره کنترل اجرا کنید:
      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. مخازن گیت ریموت را با فایل محلی جایگزین کنید:
      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
        • بررسی مخازن پیکربندی با استفاده از Git HTTPS
      3. فایل setup playbook را اجرا کنید:
        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 برای Private Cloud است که می‌خواهید نصب کنید.
      • APIGEE_REPO_URL آدرس مخزن Apigee است.

    12. فایل پیکربندی را به عنوان یک متغیر محیطی صادر کنید:
      export ANSIBLE_CONFIG=~/.ansible/multi-planet-configurations/prod.cfg

    اجزای Apigee را نصب کنید

    در این مرحله، اپراتور GDC اجزای Apigee را با استفاده از Ansible نصب می‌کند.

    برای نصب اجزای Apigee:

    1. مخازن گیت ریموت را با فایل‌های محلی جایگزین کنید:
      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، playbook را اجرا کنید:
      ansible-playbook install.yml
    6. لینک تنظیم مجدد رمز عبور کاربر را در رابط کاربری Edge غیرفعال کنید. Apigee در GDC air-gapped شامل سرور SMTP نمی‌شود. مراحل موجود در غیرفعال کردن لینک تنظیم مجدد رمز عبور در رابط کاربری Edge را دنبال کنید.

    استقرار پادها و سرویس‌ها

    در این مرحله، آپلودکننده، پروکسی معکوس، متعادل‌کننده بار و پادها و سرویس‌های ثبت وقایع را مستقر خواهید کرد.

    برای استقرار پادها و سرویس‌ها:

    1. برای ایجاد یک نمونه Harbor در پروژه GDC dev-apigee ، دستورالعمل‌های موجود در Create Harbor registry instances را دنبال کنید.
    2. برای ایجاد یک پروژه Harbor با نام apigee دستورالعمل‌های موجود در بخش «ایجاد پروژه‌های Harbor» را دنبال کنید.
    3. برای تنظیم کنترل دسترسی برای پروژه Harbor، دستورالعمل‌های موجود در بخش پیکربندی کنترل دسترسی را دنبال کنید.
    4. برای پیکربندی احراز هویت داکر، دستورالعمل‌های موجود در «ورود به داکر» و «هلم» را دنبال کنید.
    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 خارجی گره Apigee1 است که در مرحله قبل به دست آمده است.
      • APIGEE_NODE2_EXTERNAL_IP آدرس IP خارجی گره Apigee2 است که در مرحله قبل به دست آمده است.
      • APIGEE_NODE3_EXTERNAL_IP آدرس IP خارجی گره Apigee3 است که در مرحله قبل به دست آمده است.

    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 را برای کاربر root در کانتینر آپلودر در فایل apigee/uploader/Dockerfile به‌روزرسانی کنید:
      RUN echo 'root:SSH_PASSWORD' | chpasswd
    8. اعتبارنامه‌های مربوط به خوشه کاربر را دریافت کنید:
      gdcloud clusters get-credentials USER_CLUSTER

      که در آن USER_CLUSTER نام کلاستر GKE کاربر است.

    9. اسکریپت deploy را برای استقرار 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

    در این مرحله، آی‌پی‌های آپلودکننده و Fluent Bit forwarder را در اسکریپت‌های پشتیبان‌گیری و راه‌اندازی 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 رمز عبور کاربر root است.
      • 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 با اجرای یک اسکریپت راه‌اندازی روی node1 ، سازمان Apigee را راه‌اندازی می‌کند.

    برای پیوستن به سازمان 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 خارجی گره Apigee3 است که در مرحله قبل به دست آمده است.

    2. اسکریپت را روی node1 اجرا کنید تا سازمان را به سیستم خود اضافه کنید:
      chmod a+x apigee_org_setup.sh
      ./apigee_org_setup.sh

    تست اتصال HTTP

    در این مرحله، اتصال HTTP را برای Management API و API proxy آزمایش خواهید کرد.

    برای آزمایش اتصال 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) و پروکسی رابط برنامه‌نویسی کاربردی (API proxy) عمل می‌کند.

    API مدیریت را آزمایش کنید

    برای آزمایش 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 است.

    پروکسی API را آزمایش کنید

    برای آزمایش پروکسی API:

    1. وارد رابط کاربری Edge شوید.
    2. در صفحه API Proxies ، برای ایجاد یک API Proxies جدید، روی Create کلیک کنید.
    3. در صفحه جزئیات پروکسی ، مقادیر زیر را وارد کنید:
      • نوع پروکسی: بدون هدف را انتخاب کنید.
      • نام پروکسی: ok
      • مسیر پایه: /ok
      • هدف: http:// APIGEE_ELB_EXTERNAL_IP :9001
    4. برای ایجاد پروکسی API، روی Create کلیک کنید.
    5. ارسال یک درخواست HTTP به /ok :
      curl -i http://APIGEE_ELB_EXTERNAL_IP:9001/ok
    6. تأیید کنید که پاسخ 200 OK است.

    پیکربندی TLS و آزمایش HTTPS

    در این مرحله، اپراتور GDC، امنیت لایه انتقال (TLS) را برای پروکسی API، رابط کاربری Edge و API مدیریتی پیکربندی می‌کند.

    پیکربندی TLS برای پروکسی API

    1. برای ایجاد یک گواهی خودامضا با مقادیر زیر، مراحل موجود در بخش «ایجاد یک فروشگاه کلید/فروشگاه اعتماد و نام مستعار» را دنبال کنید:
      • فروشگاه کلید: myTestKeystore
      • نام مستعار کلید: myKeyAlias
      • نام رایج: apigeetest.com
    2. برای ایجاد میزبان مجازی به نام api.apigeetest.com ، یک فراخوانی API انجام دهید:
      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. با استفاده از میزبان مجازی امن، یک پروکسی API ایجاد کنید.
    4. روی روترها، وضوح DNS را برای میزبان‌های مجازی پیکربندی کنید:
      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. پیکربندی DNS resolution برای نقطه پایانی:
      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. یک فایل keystore از فایل گواهی SSL و فایل key ایجاد کنید:
      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. فایل keystore را در پوشه 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 خارجی گره Apigee1 است که در مرحله قبل به دست آمده است.

    3. به node1 از طریق SSH متصل شوید و فایل keystore را به پوشه 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. پیکربندی وضوح DNS برای رابط کاربری 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 برای API مدیریت

    برای پیکربندی TLS برای API مدیریت:

    1. مالک فایل keystore را پیکربندی کنید (از همان فایلی که در رابط کاربری 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 را با رمز عبور keystore جایگزین کنید، همانطور که نشان داده شده است:

      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 دسترسی پیدا کنید. نام کاربری و رمز عبور ادمین را وارد کنید تا تأیید شود که اعتبارنامه‌ها به درستی پیکربندی شده‌اند.

    قدم بعدی چیست؟