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

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

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

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

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

قبل از شروع

قبل از شروع مراحل نصب، مطمئن شوید که مراحل زیر را انجام داده اید:

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

ظرفیت مورد نیاز

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

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

نوع VM RAM هسته های vCPU ذخیره سازی دیسک
گره رپو 8 گیگابایت هسته های 2-vCPU 64 گیگابایت
گره کنترل 8 گیگابایت هسته های 2-vCPU 64 گیگابایت
گره های مدیریت API Apigee 1، 2 و 3 16 گیگابایت رم هسته های 8-vCPU 670 گیگابایت
گره های مدیریت Apigee API 4 و 5 16 گیگابایت رم هسته های 8-vCPU 500 گیگابایت - 1 ترابایت

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

نقش ها و مجوزهای زیر برای استقرار Apigee Edge برای Private Cloud در یک محیط 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 محلی به عنوان راه حل استفاده می کند. اگر Apigee در GDC air-gapped در محیطی با سرورهای DNS خارجی مستقر است، مراحل پیکربندی DNS محلی را با پیکربندی ورودی‌های DNS در سرورهای DNS جایگزین کنید.
    • Apigee در GDC air-gapped یک سرور SMTP مستقل را شامل نمی شود. می‌توانید در هر زمان یک سرور SMTP را پیکربندی کنید تا اعلان‌های ایمیل خروجی برای ایجاد حساب و بازنشانی رمز عبور از مدیریت سرور و رابط مدیریتی فعال شود. APIهای مدیریت برای مدیریت حساب کاربری Apigee در دسترس هستند. برای اطلاعات بیشتر به پیکربندی سرور SMTP Edge مراجعه کنید.
    • Apigee در GDC air-gapped تشخیص و پیشگیری از نفوذ را اجرا نمی کند. یک سیستم پیشگیری از نفوذ (IPS) مانند Snort را برای شناسایی و جلوگیری از فعالیت های مخرب نصب و پیکربندی کنید.

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

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

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

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

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

    • سیستم عامل: Rocky Linux 8
    • اندازه دستگاه: 8 گیگابایت رم؛ هسته های 2-vCPU؛ 64 گیگابایت فضای ذخیره سازی دیسک محلی
    • قابلیت اتصال:
      • ورودی: TCP 22 (SSH)
      • خروجی: اینترنت

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

    فایل های نصب را دانلود کنید

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

    1. همانطور که در ستون Edge for Private Cloud ذکر شده است، یادداشت‌های انتشار Apigee Edge برای آخرین نسخه رسمی که برای GDC پشتیبانی می‌شود، بررسی کنید.
    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 برای Private Cloud برای استفاده در GDC است که قصد نصب آن را دارید، به عنوان مثال، 4.53.01 .
    3. آخرین فایل Apigee Edge را برای Private Cloud bootstrap_ VERSION .sh در /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 برای 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 برای 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 mirror تنظیم می کند.

    یک گره مخزن ایجاد کنید

    برای ایجاد یک گره مخزن:

    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. پوشه حاوی پیکربندی های فلوئنت بیت را در گره مخزن آپلود کنید:
      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 برای Private Cloud که می خواهید نصب کنید جایگزین کنید.

    استقرار گره های Apigee

    در این مرحله، اپراتور GDC گره های مدیریتی Apigee API را مستقر می کند.

    گره های Apigee ایجاد کنید

    برای ایجاد گره های مدیریت Apigee API:

    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 را پیکربندی کنید

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

    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 مخازن پیکربندی
        • تسویه حساب HTTPS مخازن پیکربندی
      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 برای 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. دستورالعمل‌های موجود در Create Harbor Registry Instances را دنبال کنید تا یک نمونه Harbor در پروژه GDC dev-apigee ایجاد کنید.
    2. برای ایجاد پروژه بندرگاه به نام apigee ، دستورالعمل‌های موجود در پروژه‌های ایجاد بندرگاه را دنبال کنید.
    3. دستورالعمل های موجود در پیکربندی کنترل دسترسی را برای تنظیم کنترل دسترسی برای پروژه هاربر دنبال کنید.
    4. دستورالعمل های Sign into Docker and 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 خارجی Apigee node1 است که در مرحله قبل به دست آمده است.
      • APIGEE_NODE2_EXTERNAL_IP آدرس IP خارجی Apigee node2 است که در مرحله قبلی بدست آمده است.
      • APIGEE_NODE3_EXTERNAL_IP آدرس IP خارجی Apigee node3 است که در مرحله قبلی بدست آمده است.

    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. اسکریپت deploy را برای استقرار پادها و سرویس ها اجرا کنید:
      source venv/bin/activate
      python apigee/solution_deploy_user_cluster.py gdc-air-gapped
    10. آدرس های IP خارجی سرویس ها را دریافت کنید:
      kubectl get svc -n $PROJECT_ID

    آی پی های آپلود کننده و فلوئنت بیت فورواردر را به روز کنید

    در این مرحله، آی‌پی‌های ارسال‌کننده و 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 رمز عبور کاربر اصلی است.
      • UPLOADER_EXTERNAL_IP آدرس IP خارجی سرویس آپلود کننده است که در مرحله قبلی به دست آمده است.

    2. FLUENTBIT_EXTERNAL_IP در apigee/helm/scripts/apigee_setup.sh به‌روزرسانی کنید:
      export FLUENTBIT_EXTERNAL_IP=FLUENTBIT_EXTERNAL_IP

    به روز رسانی اسکریپت راه اندازی نیاز به راه اندازی مجدد گره های Apigee دارد. برای راه اندازی مجدد گره ها:

    1. VM ها را متوقف کنید:
      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. باز استقرار نمودار هلم:
      python apigee/solution_deploy.py gdc-air-gapped
    3. VM ها را راه اندازی کنید:
      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 داخلی Apigee node1 است که در مرحله قبلی به دست آمده است.
      • APIGEE_NODE2_EXTERNAL_IP آدرس IP خارجی Apigee node2 است که در مرحله قبلی بدست آمده است.
      • APIGEE_NODE3_EXTERNAL_IP آدرس IP خارجی Apigee node3 است که در مرحله قبلی بدست آمده است.

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

    تست اتصال HTTP

    در این مرحله، اتصال HTTP را برای مدیریت API و پروکسی 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 UI، مدیریت API و پروکسی API عمل می کند.

    مدیریت 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 ، روی Create کلیک کنید تا یک پروکسی API جدید ایجاد کنید.
    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 UI و Management API پیکربندی می کند.

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

    1. برای ایجاد یک گواهی خودامضا با مقادیر زیر، مراحل موجود در Create a keystore/truststore و نام مستعار را دنبال کنید:
      • فروشگاه کلید: myTestKeystore
      • KeyAlias: 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 را برای نقطه پایانی پیکربندی کنید:
      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. فایل 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 خارجی Apigee node1 است که در مرحله قبل به دست آمده است.

    3. SSH به node1 و فایل 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 UI استفاده کنید):
      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 در مرورگر دسترسی پیدا کنید. نام کاربری و رمز عبور مدیر را وارد کنید تا تأیید کنید که اعتبارنامه ها به درستی پیکربندی شده اند.

    بعدش چی