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

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

এই নির্দেশিকাটি Apigee অপারেটরদের জন্য যারা প্রাইভেট ক্লাউডের জন্য Apigee Edge এর সাথে পরিচিত এবং Kubernetes সম্পর্কে প্রাথমিক ধারণা রয়েছে তাদের জন্য।

প্রয়োজনীয় পদক্ষেপের ওভারভিউ

এয়ার-গ্যাপড জিডিসি পরিবেশে ব্যক্তিগত ক্লাউডের জন্য অ্যাপিজি এজ ইনস্টল এবং স্থাপন করতে, অপারেটরকে অবশ্যই নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করতে হবে:

আপনি শুরু করার আগে

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

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

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

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

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

ভিএম টাইপ RAM vCPU কোর ডিস্ক স্টোরেজ
রেপো নোড 8GB 2-vCPU কোর 64GB
কন্ট্রোল নোড 8GB 2-vCPU কোর 64GB
Apigee API ম্যানেজমেন্ট নোড 1, 2, এবং 3 16GB RAM 8-vCPU কোর 670 জিবি
Apigee API ব্যবস্থাপনা নোড 4 এবং 5 16GB RAM 8-vCPU কোর 500 GB - 1TB

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

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

  • প্ল্যাটফর্ম অ্যাডমিনিস্ট্রেটর (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 : প্রকল্পগুলিতে কুবারনেটসের গোপনীয়তা পরিচালনা করে।
    • 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 সার্ভার কনফিগার করা দেখুন।
    • জিডিসি এয়ার-গ্যাপড এপিজি অনুপ্রবেশ সনাক্তকরণ এবং প্রতিরোধ বাস্তবায়ন করে না। দূষিত ক্রিয়াকলাপ সনাক্ত এবং প্রতিরোধ করতে একটি অনুপ্রবেশ প্রতিরোধ সিস্টেম (IPS), যেমন Snort , ইনস্টল এবং কনফিগার করুন।

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

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

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

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

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

    • অপারেটিং সিস্টেম: রকি লিনাক্স 8
    • মেশিনের আকার: 8GB RAM; 2-ভিসিপিইউ কোর; 64GB স্থানীয় ডিস্ক স্টোরেজ
    • সংযোগ:
      • প্রবেশ: TCP 22 (SSH)
      • প্রস্থান: ইন্টারনেট

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

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

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

    1. GDC-এর জন্য সমর্থিত সর্বশেষ অফিসিয়াল রিলিজ সংস্করণের জন্য প্রাইভেট ক্লাউড রিলিজ নোটের জন্য Apigee এজ দেখুন, যেমনটি এজ ফর প্রাইভেট ক্লাউড কলামে উল্লেখ করা হয়েছে।
    2. এজ সেটআপ ফাইল ডাউনলোড করুন:
      curl https://software.apigee.com/apigee/tarball/VERSION/rocky8/archive.tar -o /tmp/archive.tar -u 'APIGEE_USER:APIGEE_PASSWORD'

      কোথায়:

      • APIGEE_USER হল Apigee সংস্থার জন্য আপনি যে ব্যবহারকারীর নাম পেয়েছেন।
      • APIGEE_PASSWORD হল একটি পাসওয়ার্ড যা আপনি Apigee প্রতিষ্ঠানের জন্য পেয়েছেন।
      • VERSION হল Apigee Edge-এর জন্য প্রাইভেট ক্লাউড রিলিজ সংস্করণ যা আপনি GDC-তে ব্যবহার করতে চান, উদাহরণস্বরূপ, 4.53.01
    3. ব্যক্তিগত ক্লাউড bootstrap_ VERSION .sh ফাইলের জন্য সর্বশেষ Apigee Edge ডাউনলোড করুন /tmp/bootstrap_ VERSION .sh এ :
      curl https://software.apigee.com/bootstrap_VERSION.sh -o /tmp/bootstrap_VERSION.sh

      যেখানে VERSION হল প্রাইভেট ক্লাউড রিলিজ সংস্করণের জন্য সর্বশেষ Apigee এজ GDC-তে ব্যবহারের জন্য যা আপনি ইনস্টল করতে চান, উদাহরণস্বরূপ, 4.53.01

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

      কোথায়:

      • APIGEE_USER হল Apigee সংস্থার জন্য আপনি যে ব্যবহারকারীর নাম পেয়েছেন।
      • APIGEE_PASSWORD হল একটি পাসওয়ার্ড যা আপনি Apigee প্রতিষ্ঠানের জন্য পেয়েছেন।
      • VERSION হল Apigee Edge-এর জন্য প্রাইভেট ক্লাউড রিলিজ সংস্করণ যা GDC-এ আপনি ইনস্টল করতে চান।

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

      এই ধাপে, স্ক্রিপ্ট নিম্নলিখিত অবস্থানে প্রয়োজনীয় ফাইল তৈরি করে (উদাহরণস্বরূপ, সংস্করণ 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 সংরক্ষণ করতে GDC প্রকল্পে একটি স্টোরেজ বাকেট সেট আপ করে৷

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

    GDC প্রকল্পে একটি স্টোরেজ বালতি তৈরি করতে:

    1. org অ্যাডমিন ক্লাস্টার দিয়ে প্রমাণীকরণ করুন:
      gdcloud auth login --login-config-cert WEB_TLS_CERT
      gdcloud clusters get-credentials ORG_ADMIN_CLUSTER

      কোথায়:

      • WEB_TLS_CERT হল ওয়েব TLS শংসাপত্রের পথ৷
      • ORG_ADMIN_CLUSTER হল org অ্যাডমিন 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

      এই কনফিগারেশনটি 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. org অ্যাডমিন ক্লাস্টার দিয়ে প্রমাণীকরণ করুন:
        gdcloud clusters get-credentials ORG_ADMIN_CLUSTER

        যেখানে ORG_ADMIN_CLUSTER হল org অ্যাডমিন 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 এজ হোস্ট করার জন্য একটি সংগ্রহস্থল নোড সেট আপ করে।

    একটি সংগ্রহস্থল নোড তৈরি করুন

    একটি সংগ্রহস্থল নোড তৈরি করতে:

    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. org অ্যাডমিন ক্লাস্টারের জন্য শংসাপত্র পান:
      gdcloud clusters get-credentials ORG_ADMIN_CLUSTER

      যেখানে ORG_ADMIN_CLUSTER হল org অ্যাডমিন 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]}'

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

    এই ধাপে, 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

      আপনি যে ব্যক্তিগত ক্লাউড সংস্করণটি ইনস্টল করতে চান তার জন্য Apigee Edge দিয়ে VERSION প্রতিস্থাপন করুন৷

    Apigee নোড স্থাপন করুন

    এই ধাপে, GDC অপারেটর Apigee API ব্যবস্থাপনা নোড স্থাপন করে।

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

    Apigee API ব্যবস্থাপনা নোড তৈরি করতে:

    1. apigee/helm/scripts/apigee_setup.shREPO_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_node সক্রিয় করুন apigee/helm/values-cookie-air-gapped.yaml এ দেখানো হয়েছে::
      apigee_node:
        enabled: true
      
    4. Apigee নোড তৈরি করতে ডিপ্লোয় স্ক্রিপ্ট চালান:
        source venv/bin/activate
        python apigee/solution_deploy.py gdc-air-gapped

    Apigee নোড অ্যাক্সেস কনফিগার করুন

    Apigee API ম্যানেজমেন্ট নোডগুলিতে অ্যাক্সেস কনফিগার করুন:

    1. org অ্যাডমিন ক্লাস্টার দিয়ে প্রমাণীকরণ করুন:
      gdcloud clusters get-credentials ORG_ADMIN_CLUSTER

      যেখানে ORG_ADMIN_CLUSTER হল org অ্যাডমিন 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.shREPO_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]}'

    উত্তরযোগ্য কনফিগার করুন

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

    উত্তরযোগ্য পরিবেশ কনফিগার করতে:

    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. 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. উত্তরযোগ্য ইনভেন্টরি কনফিগার ফাইল তৈরি করুন:
      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 সংগ্রহস্থলের পাসওয়ার্ড।
      • OPDK_QPID_MGMT_USERNAME হল Apigee QPID ব্যবস্থাপনা সার্ভারের ব্যবহারকারীর নাম।
      • OPDK_QPID_MGMT_PASSWORD হল Apigee QPID ম্যানেজমেন্ট সার্ভারের পাসওয়ার্ড।

    9. ব্যক্তিগত ক্লাউড লাইসেন্স ফাইলের জন্য একটি বৈধ Apigee Edge সহ একটি লাইসেন্স ফাইল যুক্ত করুন৷ ফাইলের নাম 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 এর জন্য ব্যক্তিগত ক্লাউড সংস্করণ যা আপনি ইনস্টল করতে চান৷
      • APIGEE_REPO_URL হল Apigee সংগ্রহস্থলের URL৷

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

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

    এই ধাপে, GDC অপারেটর Ansible ব্যবহার করে 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-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. apigee/scripts/ansible/install.yml এর বিষয়বস্তুর সাথে install.yml ফাইলের বিষয়বস্তু প্রতিস্থাপন করুন।
    5. Apigee উপাদানগুলি ইনস্টল করতে প্লেবুকটি চালান:
      ansible-playbook install.yml
    6. এজ UI এ ব্যবহারকারীর পাসওয়ার্ড রিসেট লিঙ্ক অক্ষম করুন। GDC এয়ার-গ্যাপড-এ Apigee একটি SMTP সার্ভার অন্তর্ভুক্ত করে না। এজ UI- তে পাসওয়ার্ড রিসেট লিঙ্ক নিষ্ক্রিয় করার ধাপগুলি অনুসরণ করুন।

    পড এবং পরিষেবা স্থাপন করুন

    এই ধাপে, আপনি আপলোডার, রিভার্স প্রক্সি, লোড ব্যালেন্সার এবং লগিং পড এবং পরিষেবাগুলি স্থাপন করবেন৷

    পড এবং পরিষেবা স্থাপন করতে:

    1. GDC প্রজেক্ট dev-apigee এ হারবার ইনস্ট্যান্স তৈরি করতে হারবার রেজিস্ট্রি ইনস্ট্যান্স তৈরি করুন- এর নির্দেশাবলী অনুসরণ করুন।
    2. apigee নামে একটি হারবার প্রকল্প তৈরি করতে হারবার প্রকল্প তৈরি করুন- এর নির্দেশাবলী অনুসরণ করুন।
    3. হারবার প্রকল্পের জন্য অ্যাক্সেস নিয়ন্ত্রণ সেট আপ করতে অ্যাক্সেস নিয়ন্ত্রণ কনফিগার করুন- এ নির্দেশাবলী অনুসরণ করুন।
    4. ডকার প্রমাণীকরণ কনফিগার করতে সাইন ইন ডকার এবং হেলমে নির্দেশাবলী অনুসরণ করুন।
    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. পরিষেবাগুলির বাহ্যিক আইপি ঠিকানাগুলি পান:
      kubectl get svc -n $PROJECT_ID

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

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

    1. apigee/helm/scripts/backup_setup.shSSH_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.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 অপারেটর 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 node1 এর অভ্যন্তরীণ IP ঠিকানা যা একটি আগের ধাপে প্রাপ্ত।
      • APIGEE_NODE2_EXTERNAL_IP হল Apigee node2 এর বাহ্যিক IP ঠিকানা যা একটি আগের ধাপে প্রাপ্ত।
      • APIGEE_NODE3_EXTERNAL_IP হল Apigee node3 এর বাহ্যিক IP ঠিকানা যা একটি আগের ধাপে প্রাপ্ত।

    2. সংস্থায় অনবোর্ড করতে নোড 1 এ স্ক্রিপ্টটি চালান:
      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 ক্লাস্টারের নাম।

      এই পরিষেবাটি এজ 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 হল apigee-elb পরিষেবার বাহ্যিক IP ঠিকানা যা আগের ধাপে প্রাপ্ত হয়েছে।
    • ORG_NAME হল Apigee সংস্থার নাম।
    • ENV_NAME হল Apigee পরিবেশের নাম।

    API প্রক্সি পরীক্ষা করুন

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

    1. এজ UI এ লগ ইন করুন।
    2. API প্রক্সি পৃষ্ঠায়, একটি নতুন 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 অপারেটর API প্রক্সি, এজ UI এবং ম্যানেজমেন্ট API-এর জন্য ট্রান্সপোর্ট লেয়ার সিকিউরিটি (TLS) কনফিগার করে।

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

    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 পরিষেবার বাহ্যিক IP ঠিকানা যা আগের ধাপে প্রাপ্ত হয়েছে।
      • 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 হল আগের ধাপে প্রাপ্ত apigee-elb পরিষেবার বাহ্যিক IP ঠিকানা।

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

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

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

    ব্যবস্থাপনা API-এর জন্য TLS কনফিগার করুন

    ব্যবস্থাপনা API-এর জন্য TLS কনফিগার করতে:

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

    এরপর কি