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

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

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

প্রয়োজনীয় পদক্ষেপগুলির সংক্ষিপ্ত বিবরণ

একটি এয়ার-গ্যাপড জিডিসি পরিবেশে প্রাইভেট ক্লাউডের জন্য Apigee Edge ইনস্টল ও ডেপ্লয় করতে, অপারেটরকে নিম্নলিখিত ধাপগুলো সম্পন্ন করতে হবে:

শুরু করার আগে

ইনস্টলেশন প্রক্রিয়া শুরু করার আগে, নিম্নলিখিত ধাপগুলো সম্পন্ন করে নিন:

  1. ইনস্টলেশনের জন্য ব্যবহার করতে একটি GDC প্রজেক্ট তৈরি করুন, যদি আপনার আগে থেকে কোনোটি না থাকে। আরও তথ্যের জন্য, ‘একটি প্রজেক্ট তৈরি করুন’ দেখুন।
  2. একটি GDC সংযুক্ত ওয়ার্কস্টেশনে অথবা আপনার প্রতিষ্ঠানের কন্টিনিউয়াস ডেপ্লয়মেন্ট এনভায়রনমেন্টের মধ্যে gdcloud CLI ডাউনলোড, ইনস্টল এবং কনফিগার করুন
  3. gdcloud CLI এবং kubectl API ব্যবহার করার জন্য প্রয়োজনীয় ক্রেডেনশিয়াল সংগ্রহ করুন। প্রয়োজনীয় ধাপগুলোর জন্য অ্যাক্সেস পেতে আপনার অ্যাকাউন্ট প্রমাণীকরণ (Authenticate your account for access) দেখুন।
  4. আপনার Apigee অ্যাকাউন্ট ম্যানেজারের কাছ থেকে পাওয়া Apigee ইউজারনেম এবং পাসওয়ার্ডটি নিশ্চিত করুন।
  5. আপনার GKE অ্যাডমিন ক্লাস্টারের নাম এবং আপনার GKE ইউজার ক্লাস্টারের নাম নিশ্চিত করুন।

ধারণক্ষমতার প্রয়োজনীয়তা

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

নিম্নলিখিত সারণিতে প্রতিটি ভিএম-এর জন্য প্রয়োজনীয় রিসোর্স দেখানো হলো:

ভিএম টাইপ রাম vCPU কোর ডিস্ক স্টোরেজ
রিপো নোড ৮জিবি ২-vCPU কোর ৬৪জিবি
নিয়ন্ত্রণ নোড ৮জিবি ২-vCPU কোর ৬৪জিবি
Apigee API ব্যবস্থাপনা নোড ১, ২, এবং ৩ ১৬ জিবি র‍্যাম ৮-vCPU কোর ৬৭০ জিবি
Apigee API ব্যবস্থাপনা নোড ৪ এবং ৫ ১৬ জিবি র‍্যাম ৮-vCPU কোর ৫০০ জিবি - ১ টেরাবাইট

ভূমিকা এবং অনুমতি

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

  • প্ল্যাটফর্ম অ্যাডমিনিস্ট্রেটর (PA): IAM Admin ভূমিকাটি অর্পণ করুন।
  • অ্যাপ্লিকেশন অপারেটর (এও): নিম্নলিখিত ভূমিকাগুলি অর্পণ করুন:
    • Harbor Instance Admin : একটি প্রোজেক্টের অন্তর্গত হারবার ইনস্ট্যান্সগুলো পরিচালনা করার পূর্ণ অ্যাক্সেস রয়েছে।
    • LoggingTarget Creator : প্রজেক্ট নেমস্পেসে LoggingTarget কাস্টম রিসোর্স তৈরি করে।
    • LoggingTarget Editor : প্রজেক্ট নেমস্পেসে অবস্থিত LoggingTarget কাস্টম রিসোর্সসমূহ সম্পাদনা করে।
    • Project Bucket Admin : স্টোরেজ বাকেট এবং বাকেটের ভেতরের অবজেক্টগুলো পরিচালনা করেন।
    • Project Grafana Viewer : প্রজেক্ট নেমস্পেসে অবস্থিত মনিটরিং ইনস্ট্যান্সটি অ্যাক্সেস করে।
    • Project NetworkPolicy Admin : প্রজেক্ট নেমস্পেসে থাকা প্রজেক্ট নেটওয়ার্ক পলিসিগুলো পরিচালনা করেন।
    • Project VirtualMachine Admin : প্রজেক্ট নেমস্পেসের অন্তর্গত ভার্চুয়াল মেশিনগুলো পরিচালনা করেন।
    • Secret Admin : প্রোজেক্টের কুবারনেটিস সিক্রেটগুলো পরিচালনা করে।
    • Service Configuration Admin : একটি প্রজেক্ট নেমস্পেসের অন্তর্গত সার্ভিস কনফিগারেশনগুলোতে তার পড়া এবং লেখার অ্যাক্সেস রয়েছে।
    • Namespace Admin : প্রোজেক্ট নেমস্পেসের অন্তর্গত সকল রিসোর্স পরিচালনা করেন।
  • GDC এয়ার-গ্যাপড রোল এবং পারমিশন প্রদান সম্পর্কে আরও জানতে, "অ্যাক্সেস প্রদান এবং প্রত্যাহার করুন" দেখুন।

    সীমাবদ্ধতা

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

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

    প্রয়োজনীয় ফাইলগুলো সংগ্রহ করুন।

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

    একটি সংযুক্ত নোড সেট আপ করুন

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

    সংযুক্ত নোডটির জন্য নিম্নলিখিত ধারণক্ষমতা এবং কনফিগারেশন প্রয়োজন:

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

    কানেক্টেড নোড তৈরি করতে, "Create and start a VM instance" -এর নির্দেশাবলী অনুসরণ করুন। VM তৈরি হয়ে গেলে, VM-এর সাথে সংযোগ করতে " Connect to Linux VMs" -এর নির্দেশাবলী অনুসরণ করুন। সমর্থিত অপারেটিং সিস্টেমের তালিকার জন্য "GDC supported operating systems" দেখুন।

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

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

    1. Edge for Private Cloud কলামে উল্লিখিত GDC-এর জন্য সমর্থিত সর্বশেষ অফিসিয়াল রিলিজ সংস্করণটির জন্য 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 হলো 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 for Private Cloud-এর সর্বশেষ রিলিজ সংস্করণ, উদাহরণস্বরূপ, 4.53.01

    4. Edge apigee-service ইউটিলিটি এবং এর নির্ভরশীলতাগুলো ইনস্টল করুন:
      sudo bash /tmp/bootstrap_VERSION.sh apigeeuser=APIGEE_USER apigeepassword=APIGEE_PASSWORD

      কোথায়:

      • APIGEE_USER হলো Apigee অর্গানাইজেশনের জন্য আপনাকে দেওয়া ইউজারনেম।
      • APIGEE_PASSWORD হলো Apigee অর্গানাইজেশনের জন্য আপনার পাওয়া পাসওয়ার্ড।
      • VERSION হলো Apigee Edge for Private Cloud-এর সেই রিলিজ সংস্করণ, যা আপনি GDC-তে ইনস্টল করতে চান এবং ব্যবহারের জন্য প্রস্তুত।

    5. সংযুক্ত নোডটিতে সেটআপ স্ক্রিপ্টটি চালান:
      chmod a+x connected-node_setup.sh \
        ./connected-node_setup.sh

      এই ধাপে, স্ক্রিপ্টটি নিম্নলিখিত স্থানগুলিতে প্রয়োজনীয় ফাইলগুলি তৈরি করে (উদাহরণস্বরূপ, সংস্করণ 4.53.01 এর জন্য):

      • /opt/apigee/data/apigee-mirror/apigee-4.53.01.tar.gz
      • /tmp/apigee-nginx/apigee-nginx.tar
      • /tmp/fluentbit/fluentbit.tar
      • /tmp/postgresql14/postgresql14.tar
      • /tmp/ansible-rpms.tar
      • /tmp/apigee-repos.tar
    6. সংযুক্ত নোড থেকে SSH-এর মাধ্যমে প্রয়োজনীয় ফাইলগুলো স্থানীয় মেশিনে স্থানান্তর করুন:
      mkdir apigee-files
      cd apigee-files
      for file in /opt/apigee/data/apigee-mirror/apigee-4.53.01.tar.gz /tmp/ansible-rpms.tar /tmp/apigee-nginx/apigee-nginx.tar /tmp/fluentbit/fluentbit.tar /tmp/postgresql14/postgresql14.tar /tmp/apigee-repos.tar; do
        scp -i SSH_PRIVATE_KEY_FILE USER@CONNECTED_NODE_IP:$file .
        done

      কোথায়:

      • SSH_PRIVATE_KEY_FILE হলো SSH প্রাইভেট কী ফাইলের পাথ।
      • USER হলো সংযুক্ত নোডটির ব্যবহারকারীর নাম।
      • CONNECTED_NODE_IP হলো সংযুক্ত নোডটির আইপি অ্যাড্রেস।

    স্টোরেজ বালতিটি প্রস্তুত করুন

    এই ধাপে, 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 হলো ওয়েব টিএলএস সার্টিফিকেটের পাথ।
      • 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

      এই কনফিগারেশনটি ৩০ দিনের ধারণকাল সহ একটি বাকেট তৈরি করে।

    বালতি অ্যাক্সেস কনফিগার করুন

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

    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_nodecontrol_node উভয়ই নিষ্ক্রিয় আছে। এই নোডগুলো পরবর্তী ধাপে স্থাপন করা হবে।

    2. অর্গ অ্যাডমিন ক্লাস্টারের জন্য ক্রেডেনশিয়াল সংগ্রহ করুন:
      gdcloud clusters get-credentials ORG_ADMIN_CLUSTER

      যেখানে ORG_ADMIN_CLUSTER হলো অর্গ অ্যাডমিন GKE ক্লাস্টারের নাম।

    3. একটি পাইথন ভার্চুয়াল এনভায়রনমেন্ট তৈরি করুন:
      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. রিপোজিটরি নোডের জন্য বাহ্যিক আইপি ঠিকানাটি নিন:
      kubectl get virtualmachineexternalaccess -n $PROJECT $NODE -ojsonpath='{.status.ingressIP}'
    3. রিপোজিটরি নোডের অভ্যন্তরীণ আইপি ঠিকানাটি নিন:
      kubectl get virtualmachines.virtualmachine.gdc.goog -n $PROJECT $NODE -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}'

    ইনস্টলেশন ফাইল আপলোড করুন

    এই ধাপে, জিডিসি অপারেটর নিম্নলিখিত ফাইলগুলির সর্বশেষ সংস্করণ রিপোজিটরি নোডে আপলোড করেন:

    • 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 হলো পূর্ববর্তী ধাপে প্রাপ্ত রিপোজিটরি নোডের এক্সটার্নাল আইপি অ্যাড্রেস।
    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 হলো রিপোজিটরি নোডের বাহ্যিক আইপি ঠিকানা।

    মিরর রিপোজিটরি কনফিগার করুন

    মিরর রিপোজিটরি কনফিগার করতে:

    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 নোড স্থাপন করুন

    এই ধাপে, জিডিসি অপারেটর Apigee API ম্যানেজমেন্ট নোডগুলো স্থাপন করে।

    Apigee নোড তৈরি করুন

    Apigee API ম্যানেজমেন্ট নোড তৈরি করতে:

    1. apigee/helm/scripts/apigee_setup.sh ফাইলে REPO_INTERNAL_IP , REPO_USER_NAME এবং REPO_PASSWORD আপনার কাঙ্ক্ষিত মান দিয়ে প্রতিস্থাপন করুন।
    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 নোডগুলির বাহ্যিক আইপি ঠিকানাগুলি সংগ্রহ করুন:
      for i in 1 2 3 4 5; do
        kubectl get virtualmachineexternalaccess -n $PROJECT node$i -ojsonpath='{.status.ingressIP}'
        echo
        done
    4. 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

    কন্ট্রোল নোড সেট আপ করুন

    এই ধাপে, জিডিসি অপারেটর Apigee ইনস্টলেশনগুলো পরিচালনা করার জন্য একটি কন্ট্রোল নোড সেট আপ করেন।

    একটি নিয়ন্ত্রণ নোড তৈরি করুন

    একটি কন্ট্রোল নোড তৈরি করতে:

    1. apigee/helm/scripts/control_setup.sh ফাইলে REPO_INTERNAL_IP , REPO_USER_NAME এবং REPO_PASSWORD আপনার কাঙ্ক্ষিত মান দিয়ে প্রতিস্থাপন করুন।
    2. দেখানো অনুযায়ী apigee/helm/values-cookie-air-gapped.yamlcontrol_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. কন্ট্রোল নোডের বাহ্যিক আইপি ঠিকানাটি নিন:
      kubectl get virtualmachineexternalaccess -n $PROJECT control -ojsonpath='{.status.ingressIP}'
    3. কন্ট্রোল নোডের অভ্যন্তরীণ আইপি সংগ্রহ করুন:
      kubectl get virtualmachines.virtualmachine.GDC.goog -n $PROJECT control -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}'

    অ্যানসিবল কনফিগার করুন

    এই ধাপে, জিডিসি অপারেটর সেট আপ করে। কন্ট্রোল নোডের পরিবেশ।

    অ্যানসিবল পরিবেশ কনফিগার করতে:

    1. কন্ট্রোল নোডে SSH করুন এবং অ্যানসিবল এনভায়রনমেন্ট সেট আপ করুন:
      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. যে টাস্কগুলোর জন্য গিটহাব অ্যাক্সেস প্রয়োজন, সেগুলো সরিয়ে ফেলুন:
        • কনফিগারেশন রিপোজিটরিগুলির গিট SSH চেকআউট
        • কনফিগারেশন রিপোজিটরিগুলির গিট 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 হলো কন্ট্রোল নোডের বাহ্যিক আইপি ঠিকানা।
    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 নোডগুলির অভ্যন্তরীণ আইপি ঠিকানাগুলি আপডেট করুন:
      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 নোডগুলোর অভ্যন্তরীণ আইপি অ্যাড্রেস।

    8. ~/.apigee-secure/credentials.yml ফাইলটি নিম্নলিখিত মানগুলি দিয়ে কনফিগার করুন:
      • apigee_repo_user: ' APIGEE_REPO_USER '
      • apigee_repo_password: ' APIGEE_REPO_PASSWORD '
      • opdk_qpid_mgmt_username: ' OPDK_QPID_MGMT_USERNAME '
      • opdk_qpid_mgmt_password: ' OPDK_QPID_MGMT_PASSWORD '

      কোথায়:

      • APIGEE_REPO_USER হলো Apigee রিপোজিটরির ইউজারনেম।
      • APIGEE_REPO_PASSWORD হলো Apigee রিপোজিটরির পাসওয়ার্ড।
      • OPDK_QPID_MGMT_USERNAME হলো Apigee QPID ম্যানেজমেন্ট সার্ভারের ইউজারনেম।
      • OPDK_QPID_MGMT_PASSWORD হলো Apigee QPID ম্যানেজমেন্ট সার্ভারের পাসওয়ার্ড।

    9. একটি বৈধ Apigee Edge for Private Cloud লাইসেন্স ফাইল দিয়ে একটি লাইসেন্স ফাইল যুক্ত করুন। ফাইলটির নাম অবশ্যই license.txt হতে হবে।
    10. ~/.apigee-secure/license.txt ফাইলের বিষয়বস্তু আপনার এইমাত্র তৈরি করা license.txt ফাইলে কপি করুন।
    11. ~/.apigee/custom-properties.yml ফাইলে নিম্নলিখিত মানগুলি কনফিগার করুন:
      • opdk_version: ' OPDK_VERSION '
      • apigee_repo_url: ' APIGEE_REPO_URL '

      কোথায়:

      • OPDK_VERSION হলো Apigee Edge for Private Cloud-এর সেই সংস্করণ যা আপনি ইনস্টল করতে চান।
      • APIGEE_REPO_URL হলো Apigee রিপোজিটরির URL।

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

    Apigee উপাদানগুলি ইনস্টল করুন

    এই ধাপে, জিডিসি অপারেটর অ্যানসিবল ব্যবহার করে অ্যাপিজি কম্পোনেন্টগুলো ইনস্টল করেন।

    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. অ্যানসিবল রোলগুলো প্যাচ করুন:
      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. dev-apigee GDC প্রজেক্টে একটি Harbor ইনস্ট্যান্স তৈরি করতে, "Create Harbor registry instances" এর নির্দেশাবলী অনুসরণ করুন।
    2. apigee নামের একটি Harbor প্রজেক্ট তৈরি করতে Create Harbor projects- এর নির্দেশাবলী অনুসরণ করুন।
    3. হারবার প্রকল্পের জন্য অ্যাক্সেস কন্ট্রোল সেট আপ করতে, 'অ্যাক্সেস কন্ট্রোল কনফিগার করুন' (Configure access control ) অংশের নির্দেশাবলী অনুসরণ করুন।
    4. ডকার অথেন্টিকেশন কনফিগার করতে "Sign into Docker and Helm"- এর নির্দেশাবলী অনুসরণ করুন।
    5. দেখানো অনুযায়ী 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 হলো পূর্ববর্তী ধাপে প্রাপ্ত Apigee নোড1-এর এক্সটার্নাল আইপি অ্যাড্রেস।
      • APIGEE_NODE2_EXTERNAL_IP হলো পূর্ববর্তী ধাপে প্রাপ্ত Apigee node2-এর এক্সটার্নাল আইপি অ্যাড্রেস।
      • APIGEE_NODE3_EXTERNAL_IP হলো পূর্ববর্তী ধাপে প্রাপ্ত Apigee node3-এর এক্সটার্নাল আইপি অ্যাড্রেস।

    6. HTTPS কনফিগার করার জন্য SSL সার্টিফিকেট ফাইল ( server.crt ) এবং কী ফাইল ( server.key ) 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. 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. সার্ভিসগুলোর এক্সটার্নাল আইপি অ্যাড্রেসগুলো সংগ্রহ করুন:
      kubectl get svc -n $PROJECT_ID

    আপলোডার এবং ফ্লুয়েন্ট বিট ফরওয়ার্ডার আইপি আপডেট করুন

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

    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 হলো পূর্ববর্তী ধাপে প্রাপ্ত আপলোডার সার্ভিসের এক্সটার্নাল আইপি অ্যাড্রেস।

    2. apigee/helm/scripts/apigee_setup.shFLUENTBIT_EXTERNAL_IP আপডেট করুন:
      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. হেলম চার্টটি পুনরায় স্থাপন করুন:
      python apigee/solution_deploy.py gdc-air-gapped
    3. ভিএমগুলো চালু করুন:
      for i in 1 2 3 4 5; do
        GDCloud compute instances start node$i --project $PROJECT
        done

    Apigee সংস্থায় যোগদান করুন

    এই ধাপে, GDC অপারেটর নোড১ -এ একটি সেটআপ স্ক্রিপ্ট চালিয়ে Apigee অর্গানাইজেশনটিকে অনবোর্ড করেন।

    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 নোড1-এর অভ্যন্তরীণ আইপি ঠিকানা।
      • APIGEE_NODE2_EXTERNAL_IP হলো পূর্ববর্তী ধাপে প্রাপ্ত Apigee node2-এর এক্সটার্নাল আইপি অ্যাড্রেস।
      • APIGEE_NODE3_EXTERNAL_IP হলো পূর্ববর্তী ধাপে প্রাপ্ত Apigee node3-এর এক্সটার্নাল আইপি অ্যাড্রেস।

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

    HTTP সংযোগ পরীক্ষা করুন

    এই ধাপে, আপনি ম্যানেজমেন্ট এপিআই এবং এপিআই প্রক্সির জন্য এইচটিটিপি সংযোগ পরীক্ষা করবেন।

    HTTP সংযোগ পরীক্ষা করতে:

    1. apigee-elb সার্ভিসের এক্সটার্নাল আইপি অ্যাড্রেসটি খুঁজুন:
      gdcloud clusters get-credentials USER_CLUSTER
      export PROJECT=dev-apigee
      kubectl get svc apigee-elb -n $PROJECT

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

      এই পরিষেবাটি এজ ইউআই, ম্যানেজমেন্ট এপিআই এবং এপিআই প্রক্সির এন্ডপয়েন্ট হিসেবে কাজ করে।

    ম্যানেজমেন্ট এপিআই পরীক্ষা করুন

    ম্যানেজমেন্ট এপিআই পরীক্ষা করতে, এই এন্ডপয়েন্টে একটি 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 সার্ভিসের এক্সটার্নাল আইপি অ্যাড্রেস।
    • ORG_NAME হলো Apigee অর্গানাইজেশনের নাম।
    • ENV_NAME হলো Apigee এনভায়রনমেন্টের নাম।

    এপিআই প্রক্সি পরীক্ষা করুন

    এপিআই প্রক্সি পরীক্ষা করতে:

    1. Edge UI- তে লগ ইন করুন।
    2. এপিআই প্রক্সি পেজে, একটি নতুন এপিআই প্রক্সি তৈরি করতে ক্রিয়েট (Create) বাটনে ক্লিক করুন।
    3. প্রক্সি বিবরণ পৃষ্ঠায়, নিম্নলিখিত মানগুলি প্রবেশ করান:
      • প্রক্সি ধরণ: কোনো লক্ষ্যবস্তু নির্বাচন করবেন না।
      • প্রক্সি নাম: ok
      • মূল পথ: /ok
      • লক্ষ্য: http:// APIGEE_ELB_EXTERNAL_IP :9001
    4. এপিআই প্রক্সি তৈরি করতে Create-এ ক্লিক করুন।
    5. /ok তে একটি HTTP অনুরোধ পাঠান:
      curl -i http://APIGEE_ELB_EXTERNAL_IP:9001/ok
    6. প্রতিক্রিয়াটি 200 OK কিনা তা নিশ্চিত করুন।

    TLS কনফিগার করুন এবং HTTPS পরীক্ষা করুন

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

    এপিআই প্রক্সির জন্য টিএলএস কনফিগার করুন

    1. নিম্নলিখিত মানগুলি সহ একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে "একটি কীস্টোর/ট্রাস্টস্টোর এবং অ্যালিয়াস তৈরি করুন" এর ধাপগুলি অনুসরণ করুন:
      • কীস্টোর: 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 সার্ভিসের এক্সটার্নাল আইপি অ্যাড্রেস।
      • ORG_NAME হলো Apigee অর্গানাইজেশনের নাম।
      • ENV_NAME হলো Apigee এনভায়রনমেন্টের নাম যেখানে ভার্চুয়াল হোস্টটি তৈরি করা হবে।
    3. সুরক্ষিত ভার্চুয়াল হোস্ট ব্যবহার করে একটি এপিআই প্রক্সি তৈরি করুন।
    4. রাউটারগুলিতে ভার্চুয়াল হোস্টগুলির জন্য ডিএনএস রেজোলিউশন কনফিগার করুন:
      echo '127.0.0.1 api.apigeetest.com' | sudo tee -a /etc/hosts
    5. এন্ডপয়েন্টে একটি HTTPS অনুরোধ পাঠিয়ে ভার্চুয়াল হোস্টগুলি স্থানীয়ভাবে কাজ করছে কিনা তা নিশ্চিত করুন:
      curl https://api.apigeetest.com:9005/ok -v -k
    6. এন্ডপয়েন্টের জন্য ডিএনএস রেজোলিউশন কনফিগার করুন:
      echo 'APIGEE_ELB_EXTERNAL_IP apigeetest.com' | sudo tee -a /etc/hosts

      যেখানে APIGEE_ELB_EXTERNAL_IP হলো পূর্ববর্তী ধাপে প্রাপ্ত apigee-elb সার্ভিসের এক্সটার্নাল আইপি অ্যাড্রেস।

    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. নোড1- এর 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 নোড1-এর এক্সটার্নাল আইপি অ্যাড্রেস।

    3. নোড১ -এ 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 সার্ভিসের এক্সটার্নাল আইপি অ্যাড্রেস।

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

    ম্যানেজমেন্ট এপিআই-এর জন্য টিএলএস কনফিগার করুন

    ম্যানেজমেন্ট এপিআই-এর জন্য টিএলএস কনফিগার করতে:

    1. কীস্টোর ফাইলের জন্য মালিক নির্ধারণ করুন (এজ 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- এ প্রবেশ করুন। ক্রেডেনশিয়ালগুলো সঠিকভাবে কনফিগার করা হয়েছে কিনা তা নিশ্চিত করতে অ্যাডমিন ইউজারনেম এবং পাসওয়ার্ড লিখুন।

    এরপর কী?