Google Distributed Cloud air-gapped-এ Apigee ইনস্টল করা

এই নির্দেশিকায় এয়ার-গ্যাপ করা Google Distributed Cloud (GDC) এনভায়রনমেন্টে Apigee Edge for Private Cloud এবং API প্রক্সি কীভাবে ইনস্টল ও ডিপ্লয় করতে হয় তা বর্ণনা করা হয়েছে। GDC এয়ার-গ্যাপড অফারিং, যার মধ্যে প্রাইভেট ক্লাউডের জন্য Apigee Edge অন্তর্ভুক্ত, ইনফ্রাস্ট্রাকচার ও পরিষেবা ম্যানেজ করার জন্য Google Cloud-এর সাথে কানেক্ট করার প্রয়োজন হয় না। আপনি সমস্ত অপারেশনের জন্য আপনার প্রাঙ্গণে হোস্ট করা একটি লোকাল কন্ট্রোল প্লেন ব্যবহার করতে পারেন। GDC এয়ার-গ্যাপের ওভারভিউ পেতে, ওভারভিউ দেখুন।

এই গাইড Apigee অপারেটরদের জন্য লেখা হয়েছে যারা Apigee Edge for Private Cloud-এর সাথে পরিচিত এবং Kubernetes সম্পর্কে প্রাথমিক ধারণা রাখেন।

প্রয়োজনীয় ধাপের ওভারভিউ

এয়ার-গ্যাপড GDC এনভায়রনমেন্টে Apigee Edge for Private Cloud ইনস্টল ও ডেপ্লয় করতে, অপারেটরকে নিম্নলিখিত ধাপগুলি সম্পূর্ণ করতে হবে:

শুরু করার আগে

ইনস্টলেশন প্রসেস শুরু করার আগে, নিম্নলিখিত ধাপগুলি সম্পূর্ণ করতে ভুলবেন না:

  1. আপনার আগে থেকে কোনও GDC প্রোজেক্ট না থাকলে, ইনস্টলেশনের জন্য একটি তৈরি করুন। আরও তথ্যের জন্য, প্রোজেক্ট তৈরি করুন দেখুন।
  2. GDC কানেক্ট করা ওয়ার্কস্টেশনে অথবা আপনার সংস্থার কন্টিনিউয়াস ডিপ্লয়মেন্ট এনভায়রনমেন্টের মধ্যে gdcloud CLI ডাউনলোড, ইনস্টল, এবং কনফিগার করুন।
  3. gdcloud CLI ও kubectl API ব্যবহার করার জন্য প্রয়োজনীয় ক্রেডেনশিয়াল পান। প্রয়োজনীয় ধাপগুলি জানতে অ্যাক্সেস পেতে আপনার অ্যাকাউন্ট যাচাই করুন লিঙ্কে দেখুন।
  4. আপনার Apigee অ্যাকাউন্ট ম্যানেজারের থেকে পাওয়া Apigee ইউজারনেম ও পাসওয়ার্ড কনফার্ম করুন।
  5. আপনার GKE অ্যাডমিন ক্লাস্টার ও GKE ব্যবহারকারী ক্লাস্টারের নাম কনফার্ম করুন।

ক্যাপাসিটি সংক্রান্ত প্রয়োজনীয়তা

GDC-তে Private Cloud-এর জন্য Apigee Edge ইনস্টল করতে, নির্দিষ্ট রিসোর্স অ্যাসাইনমেন্ট সহ একাধিক ভার্চুয়াল মেশিন (VM) প্রয়োজন হয়। এইসব VM-এর জন্য কম্পিউট রিসোর্স (RAM, vCPU কোর) এবং লোকাল ডিস্ক স্টোরেজের ভিত্তিতে চার্জ করা হয়। আরও তথ্যের জন্য, মূল্য দেখুন।

নিচের সারণীতে প্রতিটি VM-এর জন্য প্রয়োজনীয় রিসোর্স দেখানো হয়েছে:

VM-এর ধরন RAM vCPU কোর ডিস্ক স্টোরেজ
Repo নোড ৮ জিবি ২-vCPU কোর ৬৪ জিবি
কন্ট্রোল নোড ৮ জিবি ২-vCPU কোর ৬৪ জিবি
Apigee API ম্যানেজমেন্ট নোড ১, ২ ও ৩ ১৬ জিবি র‌্যাম ৮-vCPU কোর ৬৭০ জিবি
Apigee API ম্যানেজমেন্ট নোড ৪ ও ৫ ১৬ জিবি র‌্যাম ৮-vCPU কোর ৫০০ জিবি - ১টিবি

ভূমিকা ও অনুমতি

এয়ার-গ্যাপড GDC এনভায়রনমেন্টে প্রাইভেট ক্লাউডের জন্য Apigee Edge ডেপ্লয় করতে নিম্নলিখিত ভূমিকা ও অনুমতি প্রয়োজন:

  • প্ল্যাটফর্ম অ্যাডমিনিস্ট্রেটর (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 এয়ার-গ্যাপড ভূমিকা ও অনুমতি দেওয়া সম্পর্কে আরও জানতে, অ্যাক্সেস দেওয়া ও প্রত্যাহার করা দেখুন।

    সীমাবদ্ধতা

    GDC এয়ার-গ্যাপে থাকা Apigee-তে নিম্নলিখিত সীমাবদ্ধতা প্রযোজ্য:

    • GDC এয়ার-গ্যাপে থাকা Apigee-তে ডিএনএস সার্ভার থাকে না এবং এটি সাময়িক সমাধান হিসেবে লোকাল ডিএনএস রেজোলিউশন ব্যবহার করে। এক্সটার্নাল DNS সার্ভার সহ কোনও এনভায়রনমেন্টে GDC এয়ার-গ্যাপে Apigee ডেপ্লয় করা হলে, DNS সার্ভারে DNS এন্ট্রি কনফিগার করার মাধ্যমে লোকাল DNS কনফিগার করার ধাপগুলি পরিবর্তন করুন।
    • GDC এয়ার-গ্যাপে থাকা Apigee-তে স্বতন্ত্র SMTP সার্ভার থাকে না। ম্যানেজমেন্ট সার্ভার ও ম্যানেজমেন্ট UI থেকে অ্যাকাউন্ট তৈরি করা ও পাসওয়ার্ড রিসেট করার জন্য আউটবাউন্ড ইমেল বিজ্ঞপ্তি চালু করতে, আপনি যেকোনও সময় একটি SMTP সার্ভার কনফিগার করতে পারবেন। Apigee ব্যবহারকারীর অ্যাকাউন্ট ম্যানেজমেন্টের জন্য ম্যানেজমেন্ট API উপলভ্য থাকে। আরও তথ্যের জন্য Edge SMTP সার্ভার কনফিগার করা দেখুন।
    • GDC এয়ার-গ্যাপে থাকা Apigee-তে অনুপ্রবেশ শনাক্তকরণ ও প্রতিরোধ ব্যবস্থা প্রয়োগ করা হয় না। ক্ষতিকারক অ্যাক্টিভিটি শনাক্ত ও প্রতিরোধ করতে, Snort-এর মতো ইনট্রুশন প্রিভেনশন সিস্টেম (IPS) ইনস্টল ও কনফিগার করুন।

    প্রয়োজনীয় ফাইল পাওয়া

    ইনস্টলেশন ফাইল পেতে, আপনাকে প্রথমে একটি কানেক্ট করা নোড সেট-আপ করতে হবে এবং তারপরে ফাইলগুলি ডাউনলোড করতে হবে।

    কানেক্ট করা নোড সেট-আপ করা

    কানেক্ট করা নোড হল GDC-এর বাইরে থাকা একটি VM যা আপনি ইনস্টলেশন ফাইল ডাউনলোড করতে ব্যবহার করেন। এই VM-এর ইন্টারনেট অ্যাক্সেস প্রয়োজন এবং এটি শুধুমাত্র ইনস্টলেশন প্রক্রিয়ার জন্য ব্যবহার করা হয়।

    কানেক্ট করা নোডের নিম্নলিখিত ক্ষমতা ও কনফিগারেশন থাকতে হবে:

    • অপারেটিং সিস্টেম: Rocky Linux 8
    • মেশিনের সাইজ: ৮ জিবি র‌্যাম; ২-vCPU কোর; ৬৪ জিবি লোকাল ডিস্ক স্টোরেজ
    • কানেক্টিভিটি:
      • ইনগ্রেস: TCP 22 (SSH)
      • ইগ্রেস: ইন্টারনেট

    কানেক্ট করা নোড তৈরি করতে, VM ইনস্ট্যান্স তৈরি ও চালু করুন লিঙ্কে দেওয়া নির্দেশাবলী অনুসরণ করুন। VM তৈরি হয়ে গেলে, Linux VM-এ কানেক্ট করুন লিঙ্কে দেওয়া নির্দেশাবলী অনুসরণ করুন। VM-এ কানেক্ট করতে। কোন কোন অপারেটিং সিস্টেমে GDC কাজ করে তার তালিকা দেখতে GDC-তে কাজ করে এমন অপারেটিং সিস্টেম দেখুন।

    ইনস্টলেশন ফাইল ডাউনলোড করা

    ইনস্টলেশন ফাইল ডাউনলোড করতে:

    1. Edge for Private Cloud কলামে উল্লেখ করা GDC-তে কাজ করে এমন লেটেস্ট অফিসিয়াল রিলিজ ভার্সনের জন্য প্রাইভেট ক্লাউডের জন্য Apigee Edge রিলিজ নোট চেক করুন।
    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 হল GDC-তে ইনস্টল করার জন্য Apigee Edge for Private Cloud রিলিজ ভার্সন, যেমন, 4.53.01।
    3. Apigee Edge for Private Cloud-এর লেটেস্ট bootstrap_VERSION.sh ফাইল /tmp/bootstrap_VERSION.sh-এ ডাউনলোড করুন:
      curl https://software.apigee.com/bootstrap_VERSION.sh -o /tmp/bootstrap_VERSION.sh

      যেখানে VERSION হল GDC-তে ইনস্টল করার জন্য আপনার উদ্দেশ্য অনুযায়ী প্রাইভেট ক্লাউডের জন্য লেটেস্ট Apigee Edge রিলিজ ভার্সন, যেমন, 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 হল GDC-তে ইনস্টল করার জন্য Apigee Edge for Private Cloud রিলিজ ভার্সন।

    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 অপারেটর, Apigee Edge for Private Cloud ব্যাক-আপ ফাইল স্টোর করার জন্য GDC প্রোজেক্টে একটি স্টোরেজ বাকেট সেট-আপ করেন।

    স্টোরেজ বাকেট তৈরি করা

    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 ব্যাক-আপ ফাইল স্টোর করার জন্য তৈরি করতে চান।
    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

      এই কনফিগারেশন ৩০ দিনের রিটেনশন পিরিয়ড সহ একটি বাকেট তৈরি করে।

    বাকেট অ্যাক্সেস কনফিগার করা

    স্টোরেজ বাকেটে অ্যাক্সেস কনফিগার করতে:

    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

      আপনি যে Apigee Edge for Private Cloud ভার্সন ইনস্টল করতে চান সেটি দিয়ে VERSION পরিবর্তন করুন।

    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/helm/values-cookie-air-gapped.yaml-এ apigee_node চালু করুন, যেমন দেখানো হয়েছে::
      apigee_node:
        enabled: true
      
    4. 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. Apigee নোডের জন্য এক্সটার্নাল IP অ্যাড্রেস পান:
      for i in 1 2 3 4 5; do
        kubectl get virtualmachineexternalaccess -n $PROJECT node$i -ojsonpath='{.status.ingressIP}'
        echo
        done
    4. Apigee নোডের ইন্টার্নাল IP অ্যাড্রেস পান:
      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. apigee/helm/scripts/control_setup.sh-এ REPO_INTERNAL_IP, REPO_USER_NAME ও REPO_PASSWORD-এর জায়গায় পছন্দসই ভ্যালু লিখুন।
    2. apigee/helm/values-cookie-air-gapped.yaml-এ control_node চালু করুন, যেমন দেখানো হয়েছে:
      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 চেক-আউট
        • কনফিগারেশন রিপোজিটরি থেকে Git HTTPS চেক-আউট
      3. সেট-আপ প্লেবুক রান করুন:
        cd ~/apigee-repos/ansible-opdk-accelerator/setup
        ansible-playbook setup.yml
    5. কন্ট্রোল নোডে Apigee নোডের জন্য SSH কী আপলোড করুন:
      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 হল আপনার Apigee নোডের SSH ব্যক্তিগত কী থাকা ফাইলের নাম।
      • 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. edge-dc1-এ Apigee নোডের ইন্টার্নাল IP অ্যাড্রেস আপডেট করুন:
      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-এর ভ্যালু হল Apigee নোডের ইন্টার্নাল IP অ্যাড্রেস যা আগের ধাপে পাওয়া গেছে।

    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 রিপোজিটরিের পাসওয়ার্ড।
      • Apigee QPID ম্যানেজমেন্ট সার্ভারের ব্যবহারকারীর নাম হল OPDK_QPID_MGMT_USERNAME।
      • OPDK_QPID_MGMT_PASSWORD হল Apigee QPID ম্যানেজমেন্ট সার্ভারের পাসওয়ার্ড।

    9. সঠিক Apigee Edge for Private Cloud লাইসেন্স ফাইল সহ একটি লাইসেন্স ফাইল যোগ করুন। ফাইলের নাম license.txt হতে হবে।
    10. আপনি এইমাত্র তৈরি করেছেন এমন license.txt ফাইলে ~/.apigee-secure/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 হল Apigee রিপোজিটরির URL.

    12. এনভায়রনমেন্ট ভেরিয়েবেল হিসেবে কনফিগারেশন ফাইল এক্সপোর্ট করুন:
      export ANSIBLE_CONFIG=~/.ansible/multi-planet-configurations/prod.cfg

    Apigee কম্পোনেন্ট ইনস্টল করা

    এই ধাপে, GDC অপারেটর Ansible ব্যবহার করে Apigee কম্পোনেন্ট ইনস্টল করেন।

    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 UI-তে ব্যবহারকারীর পাসওয়ার্ড রিসেট করার লিঙ্ক বন্ধ করুন। GDC এয়ার-গ্যাপে থাকা Apigee-তে SMTP সার্ভার থাকে না। Edge UI-তে পাসওয়ার্ড রিসেট করার লিঙ্ক বন্ধ করার ধাপগুলি অনুসরণ করুন।

    পড ও পরিষেবা ডেপ্লয় করা

    এই ধাপে, আপনি আপলোডার, রিভার্স প্রক্সি, লোড ব্যালেন্সার এবং লগিং পড ও পরিষেবা ডেপ্লয় করবেন।

    পড ও পরিষেবা ডেপ্লয় করতে:

    1. GDC প্রোজেক্টে dev-apigee Harbor ইনস্ট্যান্স তৈরি করতে, Harbor রেজিস্ট্রি ইনস্ট্যান্স তৈরি করুন লিঙ্কে দেওয়া নির্দেশাবলী অনুসরণ করুন।
    2. Harbor প্রোজেক্ট তৈরি করুন লিঙ্কে দেওয়া নির্দেশাবলী অনুসরণ করে apigee নামের একটি Harbor প্রোজেক্ট তৈরি করুন।
    3. Harbor প্রোজেক্টের জন্য অ্যাক্সেস কন্ট্রোল সেট-আপ করতে, অ্যাক্সেস কন্ট্রোল কনফিগার করুন লিঙ্কে দেওয়া নির্দেশাবলী অনুসরণ করুন।
    4. Docker যাচাইকরণ কনফিগার করতে, Docker ও Helm-এ সাইন-ইন করুন লিঙ্কে দেওয়া নির্দেশাবলী অনুসরণ করুন।
    5. apigee/apigee_user_cluster.toml ফাইলে দেখানো IP অ্যাড্রেস আপডেট করুন:
      mgmt-server-proxy = "APIGEE_NODE1_EXTERNAL_IP"
      router-proxy1 = "APIGEE_NODE2_EXTERNAL_IP"
      router-proxy2 = "APIGEE_NODE3_EXTERNAL_IP"
      

      যেখানে:

      • APIGEE_NODE1_EXTERNAL_IP হল Apigee node1-এর এক্সটার্নাল IP অ্যাড্রেস যা আগের ধাপে পাওয়া গেছে।
      • APIGEE_NODE2_EXTERNAL_IP হল Apigee node2-এর এক্সটার্নাল IP অ্যাড্রেস যা আগের ধাপে পাওয়া গেছে।
      • APIGEE_NODE3_EXTERNAL_IP হল Apigee node3-এর এক্সটার্নাল IP অ্যাড্রেস যা আগের ধাপে পাওয়া গেছে।

    6. apigee/mgmt-server-proxy ও apigee/router-proxy ফোল্ডারের মধ্যে HTTPS কনফিগার করার জন্য SSL সার্টিফিকেট ফাইল (server.crt) ও কী ফাইল (server.key) রাখুন।

      সেল্ফ-সাইন করা সার্টিফিকেট তৈরি করতে, নিম্নলিখিত কমান্ড ব্যবহার করুন:

      openssl req -newkey rsa:4096 -x509 -nodes -keyout server.key -new -out server.crt -subj "/CN=*.apigeetest.com" -sha256 -days 365
    7. apigee/uploader/Dockerfile ফাইলে আপলোডার কন্টেনারে থাকা মূল ব্যবহারকারীর জন্য SSH-PASSWORD-এর ভ্যালু আপডেট করুন:
      RUN echo 'root:SSH_PASSWORD' | chpasswd
    8. ব্যবহারকারীর ক্লাস্টারের ক্রেডেনশিয়াল পান:
      gdcloud clusters get-credentials USER_CLUSTER

      যেখানে USER_CLUSTER হল ব্যবহারকারীর GKE ক্লাস্টারের নাম।

    9. পড ও পরিষেবা ডেপ্লয় করতে ডেপ্লয় স্ক্রিপ্ট রান করান:
      source venv/bin/activate
      python apigee/solution_deploy_user_cluster.py gdc-air-gapped
    10. পরিষেবার এক্সটার্নাল IP অ্যাড্রেস পান:
      kubectl get svc -n $PROJECT_ID

    আপলোডার ও Fluent Bit ফরওয়ার্ডারের IP আপডেট করা

    এই ধাপে, ব্যাক-আপ ও Apigee সেট-আপ স্ক্রিপ্টে আপনি আপলোডার ও Fluent Bit ফরওয়ার্ডারের IP আপডেট করবেন।

    1. apigee/helm/scripts/backup_setup.sh-এ SSH_PASSWORD, root ও UPLOADER_EXTERNAL_IP আপডেট করুন:
      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. apigee/helm/scripts/apigee_setup.sh-এ FLUENTBIT_EXTERNAL_IP আপডেট করুন:
      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. Helm চার্ট আবার ডেপ্লয় করুন:
      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 হল Apigee নোড১-এর ইন্টার্নাল IP অ্যাড্রেস যা আগের ধাপে পাওয়া গেছে।
      • APIGEE_NODE2_EXTERNAL_IP হল Apigee node2-এর এক্সটার্নাল IP অ্যাড্রেস যা আগের ধাপে পাওয়া গেছে।
      • APIGEE_NODE3_EXTERNAL_IP হল Apigee node3-এর এক্সটার্নাল IP অ্যাড্রেস যা আগের ধাপে পাওয়া গেছে।

    2. সংস্থাকে অনবোর্ড করতে node1-এ স্ক্রিপ্ট চালান:
      chmod a+x apigee_org_setup.sh
      ./apigee_org_setup.sh

    HTTP কানেক্টিভিটি পরীক্ষা করা

    এই ধাপে, আপনি ম্যানেজমেন্ট API ও API প্রক্সির জন্য HTTP কানেক্টিভিটি পরীক্ষা করবেন।

    HTTP কানেক্টিভিটি পরীক্ষা করতে:

    1. apigee-elb পরিষেবার এক্সটার্নাল IP অ্যাড্রেস পান:
      gdcloud clusters get-credentials USER_CLUSTER
      export PROJECT=dev-apigee
      kubectl get svc apigee-elb -n $PROJECT

      যেখানে USER_CLUSTER হল ব্যবহারকারীর GKE ক্লাস্টারের নাম।

      এই পরিষেবা Edge UI, ম্যানেজমেন্ট API এবং 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 হল apigee-elb পরিষেবার এক্সটার্নাল IP অ্যাড্রেস যা আগের ধাপে পাওয়া গেছে।
    • ORG_NAME হল Apigee সংস্থার নাম।
    • ENV_NAME হল Apigee এনভায়রনমেন্টের নাম।

    API প্রক্সি টেস্ট করা

    API প্রক্সি পরীক্ষা করতে:

    1. Edge UI-তে লগ-ইন করুন।
    2. API প্রক্সি পৃষ্ঠায়, নতুন API প্রক্সি তৈরি করতে তৈরি করুন বিকল্পে ক্লিক করুন।
    3. প্রক্সি বিবরণ পৃষ্ঠায়, নিম্নলিখিত ভ্যালু লিখুন:
      • প্রক্সি ধরন: কোনও টার্গেট নেই বিকল্প বেছে নিন।
      • প্রক্সির নাম: ok
      • বেস পাথ: /ok
      • টার্গেট: http://APIGEE_ELB_EXTERNAL_IP:9001
    4. API প্রক্সি তৈরি করতে তৈরি করুন বিকল্পে ক্লিক করুন।
    5. /ok-এ একটি HTTP অনুরোধ পাঠান:
      curl -i http://APIGEE_ELB_EXTERNAL_IP:9001/ok
    6. উত্তরটি 200 OK কিনা তা কনফার্ম করুন।

    TLS কনফিগার করা ও HTTPS পরীক্ষা করা

    এই ধাপে, GDC অপারেটর API প্রক্সি, Edge UI এবং ম্যানেজমেন্ট API-এর জন্য ট্রান্সপোর্ট লেয়ার সিকিউরিটি (TLS) কনফিগার করেন।

    API প্রক্সির জন্য TLS কনফিগার করা

    1. নিম্নলিখিত ভ্যালু সহ একটি সেল্ফ-সাইনড সার্টিফিকেট তৈরি করতে, কীস্টোর/ট্রাস্টস্টোর ও অ্যালিয়াস তৈরি করুন লিঙ্কে দেওয়া ধাপগুলি অনুসরণ করুন:
      • KeyStore: 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 হল apigee-elb পরিষেবার এক্সটার্নাল IP অ্যাড্রেস যা আগের ধাপে পাওয়া গেছে।
      • ORG_NAME হল Apigee সংস্থার নাম।
      • ENV_NAME হল Apigee এনভায়রনমেন্টের নাম যেখানে ভার্চুয়াল হোস্ট তৈরি করতে হবে।
    3. নিরাপদ ভার্চুয়াল হোস্ট ব্যবহার করে API প্রক্সি তৈরি করুন।
    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. এন্ডপয়েন্টের জন্য DNS রেজোলিউশন কনফিগার করুন:
      echo 'APIGEE_ELB_EXTERNAL_IP apigeetest.com' | sudo tee -a /etc/hosts

      যেখানে APIGEE_ELB_EXTERNAL_IP হল apigee-elb পরিষেবার এক্সটার্নাল IP অ্যাড্রেস যা আগের ধাপে পাওয়া গেছে।

    7. ওয়েব ব্রাউজারে https://apigeetest.com/ok-এ নেভিগেট করুন এবং এটি কাজ করছে কিনা তা কনফার্ম করুন।

    Edge UI-এর জন্য TLS কনফিগার করা

    Edge UI-এর জন্য TLS কনফিগার করতে:

    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. node1-এ Apigee ফোল্ডারের মধ্যে কীস্টোর ফাইলটি রাখুন:
      scp -i SSH_PRIVATE_KEY_FILE keystore.jks admin@APIGEE_NODE1_EXTERNAL_IP:/home/admin/

      যেখানে:

      • SSH_PRIVATE_KEY_FILE হল আপনার Apigee নোডের SSH ব্যক্তিগত কী থাকা ফাইলের নাম।
      • APIGEE_NODE1_EXTERNAL_IP হল Apigee node1-এর এক্সটার্নাল IP অ্যাড্রেস যা আগের ধাপে পাওয়া গেছে।

    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 UI-এর জন্য DNS রেজোলিউশন কনফিগার করুন:
      echo 'APIGEE_ELB_EXTERNAL_IP ui.apigeetest.com' | sudo tee -a /etc/hosts

      যেখানে APIGEE_ELB_EXTERNAL_IP হল apigee-elb পরিষেবার এক্সটার্নাল IP অ্যাড্রেস যা আগের ধাপে পাওয়া গেছে।

    8. ওয়েব ব্রাউজারে https://ui.apigeetest.com:9443 অ্যাক্সেস করুন এবং এটি কাজ করছে কিনা তা কনফার্ম করুন। আরও বিবরণের জন্য, নির্দেশিকা দেখুন।

    Management API-এর জন্য TLS কনফিগার করা

    Management API-এর জন্য TLS কনফিগার করতে:

    1. কীস্টোর ফাইলের মালিককে কনফিগার করুন (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-এর ভ্যালু কিস্টোর পাসওয়ার্ড দিয়ে পরিবর্তন করুন, যেমন দেখানো হয়েছে:

      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 অ্যাক্সেস করুন। ক্রেডেনশিয়াল সঠিকভাবে কনফিগার করা হয়েছে কিনা তা কনফার্ম করতে অ্যাডমিনের ইউজারনেম ও পাসওয়ার্ড লিখুন।

    এর পরে কী করতে হবে