Google Distributed Cloud air-gapped पर Apigee इंस्टॉल करना

इस गाइड में, एयर-गैप्ड Google Distributed Cloud (GDC) एनवायरमेंट में, Apigee Edge for Private Cloud और API प्रॉक्सी को इंस्टॉल और डिप्लॉय करने का तरीका बताया गया है. GDC एयर-गैप्ड ऑफ़रिंग, जैसे कि Apigee Edge for Private Cloud को इंफ़्रास्ट्रक्चर और सेवाओं को मैनेज करने के लिए, Google Cloud से कनेक्ट करने की ज़रूरत नहीं होती. सभी कार्रवाइयों के लिए, अपने परिसर में होस्ट किए गए लोकल कंट्रोल प्लेन का इस्तेमाल किया जा सकता है. GDC एयर-गैप्ड की खास जानकारी के लिए, खास जानकारी देखें.

यह गाइड, Apigee ऑपरेटर के लिए है. उन्हें Apigee Edge for Private Cloud के बारे में पता होना चाहिए. साथ ही, उन्हें Kubernetes की बुनियादी जानकारी होनी चाहिए.

ज़रूरी चरणों के बारे में खास जानकारी

एयर-गैप्ड GDC एनवायरमेंट में Apigee Edge for Private Cloud को इंस्टॉल और डिप्लॉय करने के लिए, ऑपरेटर को यह तरीका अपनाना होगा:

शुरू करने से पहले

इंस्टॉल करने की प्रोसेस शुरू करने से पहले, पक्का करें कि आपने ये चरण पूरे कर लिए हों:

  1. अगर आपके पास पहले से कोई GDC प्रोजेक्ट नहीं है, तो इंस्टॉलेशन के लिए एक GDC प्रोजेक्ट बनाएं. ज़्यादा जानकारी के लिए, प्रोजेक्ट बनाना लेख पढ़ें.
  2. GDC से कनेक्ट किए गए वर्कस्टेशन पर या अपने संगठन के कंटीन्यूअस डिप्लॉयमेंट एनवायरमेंट में, gdcloud CLI को डाउनलोड करें, इंस्टॉल करें, और कॉन्फ़िगर करें.
  3. gdcloud CLI और kubectl API का इस्तेमाल करने के लिए ज़रूरी क्रेडेंशियल पाएं. ज़रूरी चरणों के लिए, ऐक्सेस पाने के लिए अपने खाते की पुष्टि करना लेख पढ़ें.
  4. पुष्टि करें कि Apigee का वह उपयोगकर्ता नाम और पासवर्ड सही है जो आपको Apigee के खाता मैनेजर से मिला है.
  5. अपने GKE एडमिन क्लस्टर और GKE उपयोगकर्ता क्लस्टर के नाम की पुष्टि करें.

क्षमता से जुड़ी ज़रूरी शर्तें

GDC पर Apigee Edge for Private Cloud इंस्टॉल करने के लिए, खास संसाधन आवंटन वाली कई वर्चुअल मशीन (वीएम) की ज़रूरत होती है. इन वीएम के लिए, कंप्यूट रिसॉर्स (रैम, वीसीपीयू कोर) और लोकल डिस्क स्टोरेज के आधार पर शुल्क लिया जाता है. ज़्यादा जानकारी के लिए, कीमत देखें.

यहां दी गई टेबल में, हर वीएम के लिए ज़रूरी संसाधनों के बारे में बताया गया है:

वीएम का टाइप RAM vCPU कोर डिस्क स्टोरेज
Repo नोड 8 जीबी 2-vCPU कोर 64GB
कंट्रोल नोड 8 जीबी 2-vCPU कोर 64GB
Apigee API मैनेजमेंट नोड 1, 2, और 3 16 जीबी रैम 8-वीसीपीयू कोर 670 जीबी
Apigee API मैनेजमेंट नोड 4 और 5 16 जीबी रैम 8-वीसीपीयू कोर 500 जीबी - 1 टीबी

भूमिकाएं और अनुमतियां

एयर-गैप्ड GDC एनवायरमेंट में Apigee Edge for Private Cloud को डिप्लॉय करने के लिए, इन भूमिकाओं और अनुमतियों की ज़रूरत होती है:

  • प्लैटफ़ॉर्म एडमिन (पीए): IAM Admin भूमिका असाइन करें.
  • ऐप्लिकेशन ऑपरेटर (एओ): ये भूमिकाएं असाइन करें:
    • 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 में डीएनएस सर्वर नहीं होते हैं. इसलिए, यह समस्या हल करने के लिए लोकल डीएनएस रिज़ॉल्यूशन का इस्तेमाल करता है. अगर GDC एयर-गैप्ड पर Apigee को बाहरी डीएनएस सर्वर वाले एनवायरमेंट में डिप्लॉय किया गया है, तो स्थानीय डीएनएस को कॉन्फ़िगर करने वाले चरणों को डीएनएस सर्वर में डीएनएस एंट्री कॉन्फ़िगर करने वाले चरणों से बदलें.
    • GDC एयर-गैप्ड पर Apigee में, स्टैंड-अलोन एसएमटीपी सर्वर शामिल नहीं होता है. मैनेजमेंट सर्वर और मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) से, खाता बनाने और पासवर्ड रीसेट करने के लिए आउटबाउंड ईमेल सूचनाएं पाने की सुविधा चालू करने के लिए, किसी भी समय एसएमटीपी सर्वर को कॉन्फ़िगर किया जा सकता है. Apigee के उपयोगकर्ता खाते के मैनेजमेंट के लिए, मैनेजमेंट एपीआई उपलब्ध रहेंगे. ज़्यादा जानकारी के लिए, Edge SMTP सर्वर को कॉन्फ़िगर करना लेख पढ़ें.
    • Apigee on GDC air-gapped में, मैलवेयर गतिविधि की पहचान करने और उसे रोकने की सुविधा लागू नहीं की जाती. नुकसान पहुंचाने वाली गतिविधियों का पता लगाने और उन्हें रोकने के लिए, घुसपैठ रोकथाम सिस्टम (आईपीएस) इंस्टॉल और कॉन्फ़िगर करें. जैसे, Snort.

    ज़रूरी फ़ाइलें पाना

    इंस्टॉलेशन फ़ाइलें पाने के लिए, आपको पहले कनेक्ट किया गया नोड सेट अप करना होगा. इसके बाद, फ़ाइलें डाउनलोड करनी होंगी.

    कनेक्ट किया गया नोड सेट अप करना

    कनेक्ट किया गया नोड, GDC के बाहर का एक ऐसा वीएम होता है जिसका इस्तेमाल इंस्टॉलेशन फ़ाइलें डाउनलोड करने के लिए किया जाता है. इस वीएम को इंटरनेट ऐक्सेस करने की ज़रूरत होती है. इसका इस्तेमाल सिर्फ़ इंस्टॉलेशन प्रोसेस के लिए किया जाता है.

    कनेक्ट किए गए नोड के लिए, यह क्षमता और कॉन्फ़िगरेशन ज़रूरी है:

    • ऑपरेटिंग सिस्टम: Rocky Linux 8
    • मशीन का साइज़: 8 जीबी रैम; 2-वीसीपीयू कोर; 64 जीबी लोकल डिस्क स्टोरेज
    • कनेक्टिविटी:
      • इनग्रेस: टीसीपी 22 (एसएसएच)
      • इग्रेस: इंटरनेट

    कनेक्ट किया गया नोड बनाने के लिए, वीएम इंस्टेंस बनाएं और शुरू करें में दिए गए निर्देशों का पालन करें. वीएम बनाने के बाद, Linux वीएम से कनेक्ट करना में दिए गए निर्देशों का पालन करें. से कनेक्ट करें. जिन ऑपरेटिंग सिस्टम पर GDC काम करता है उनकी सूची देखने के लिए, GDC के साथ काम करने वाले ऑपरेटिंग सिस्टम देखें.

    इंस्टॉलेशन फ़ाइलें डाउनलोड करना

    इंस्टॉलेशन फ़ाइलें डाउनलोड करने के लिए:

    1. GDC के लिए उपलब्ध आधिकारिक रिलीज़ वर्शन की जानकारी पाने के लिए, Apigee Edge for Private Cloud के रिलीज़ नोट देखें. यह जानकारी, Edge for Private Cloud कॉलम में दी गई है.
    2. Edge सेटअप फ़ाइल डाउनलोड करें:
      curl https://software.apigee.com/apigee/tarball/VERSION/rocky8/archive.tar -o /tmp/archive.tar -u 'APIGEE_USER:APIGEE_PASSWORD'

      कहां:

      • APIGEE_USER, Apigee संगठन के लिए मिला उपयोगकर्ता नाम है.
      • APIGEE_PASSWORD वह पासवर्ड है जो आपको Apigee संगठन के लिए मिला है.
      • VERSION, Apigee Edge for Private Cloud का रिलीज़ वर्शन है. इसका इस्तेमाल उस GDC पर किया जाता है जिसे आपको इंस्टॉल करना है. उदाहरण के लिए, 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, Apigee Edge for Private Cloud का सबसे नया रिलीज़ वर्शन है. इसे उस GDC पर इस्तेमाल किया जाएगा जिसे आपको इंस्टॉल करना है. उदाहरण के लिए, 4.53.01.

    4. Edge apigee-service यूटिलिटी और डिपेंडेंसी इंस्टॉल करें:
      sudo bash /tmp/bootstrap_VERSION.sh apigeeuser=APIGEE_USER apigeepassword=APIGEE_PASSWORD

      कहां:

      • APIGEE_USER, Apigee संगठन के लिए मिला उपयोगकर्ता नाम है.
      • APIGEE_PASSWORD वह पासवर्ड है जो आपको Apigee संगठन के लिए मिला है.
      • VERSION, Apigee Edge 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. एसएसएच की मदद से, कनेक्ट किए गए नोड से ज़रूरी फ़ाइलों को लोकल मशीन पर ट्रांसफ़र करें:
      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 एसएसएच निजी पासकोड वाली फ़ाइल का पाथ है.
      • USER कनेक्ट किए गए नोड का उपयोगकर्ता नाम है.
      • CONNECTED_NODE_IP कनेक्ट किए गए नोड का आईपी पता है.

    स्टोरेज बकेट सेट अप करना

    इस चरण में, GDC ऑपरेटर, GDC प्रोजेक्ट में एक स्टोरेज बकेट सेट अप करता है. इसमें Apigee Edge for Private Cloud की बैकअप फ़ाइलें सेव की जाती हैं.

    स्टोरेज बकेट बनाना

    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

      इस कॉन्फ़िगरेशन से, 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. बकेट का स्टोरेज एंडपॉइंट, पूरी तरह क्वालिफ़ाइड डोमेन नेम (एफ़क्यूडीएन), और क्षेत्र पाएं:
      1. संगठन के एडमिन क्लस्टर से पुष्टि करें:
        gdcloud clusters get-credentials ORG_ADMIN_CLUSTER

        यहां ORG_ADMIN_CLUSTER, संगठन के एडमिन GKE क्लस्टर का नाम है.

      2. बकेट का स्टोरेज एंडपॉइंट, पूरी तरह क्वालिफ़ाइड डोमेन नेम (एफ़क्यूडीएन), और क्षेत्र पाएं:
        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. रिपॉज़िटरी नोड के लिए एसएसएच कॉन्फ़िगर करें:
      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 आपकी सार्वजनिक एसएसएच कुंजी वाली फ़ाइल का नाम है.

    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. एसएसएच निजी पासकोड वाली फ़ाइल को रिपॉज़िटरी नोड पर कॉपी करें:
      scp -i SSH_PRIVATE_KEY_FILE ~/apigee-files/* admin@REPO_EXTERNAL_IP:/tmp

      कहां:

      • SSH_PRIVATE_KEY_FILE आपकी निजी एसएसएच कुंजी वाली फ़ाइल का नाम है.
      • 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 आपकी निजी एसएसएच कुंजी वाली फ़ाइल का नाम है.
      • 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

      VERSION की जगह, Apigee Edge for Private Cloud का वह वर्शन डालें जिसे आपको इंस्टॉल करना है.

    Apigee नोड डिप्लॉय करना

    इस चरण में, GDC ऑपरेटर 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. हर नोड के लिए एसएसएच कुंजी बनाएं:
      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 आपकी सार्वजनिक एसएसएच कुंजी वाली फ़ाइल का नाम है.

    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

    कंट्रोल नोड सेट अप करना

    इस चरण में, 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. कंट्रोल नोड के लिए एसएसएच ऐक्सेस कॉन्फ़िगर करें:
      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]}'

    Ansible को कॉन्फ़िगर करना

    इस चरण में, GDC ऑपरेटर कंट्रोल नोड पर एनवायरमेंट सेट अप करता है.

    Ansible एनवायरमेंट को कॉन्फ़िगर करने के लिए:

    1. कंट्रोल नोड से एसएसएच करें और Ansible एनवायरमेंट सेट अप करें:
      cd /home/admin
      cp -r /tmp/apigee-repos .
      cd apigee-repos/ansible-opdk-accelerator/setup
    2. रिमोट गिट रिपॉज़िटरी को लोकल फ़ाइल से बदलें:
      sed -i 's/https:\/\/github.com\/carlosfrias/git+file:\/\/\/home\/admin\/apigee-repos/g'  requirements.yml
      sed -i 's/\.git$//g'  requirements.yml
      
    3. Install Ansible requirements:
        sudo chown -R admin /home/admin/apigee-repos
        ansible-galaxy install -r requirements.yml -f
    4. सेटअप कॉन्फ़िगरेशन अपडेट करें:
      1. main.yml फ़ाइल में बदलाव करने के लिए:
        vi ~/apigee-repos/ansible-opdk-accelerator/setup/roles/apigee-opdk-setup-ansible-controller/tasks/main.yml
      2. उन टास्क को हटाएं जिनके लिए GitHub का ऐक्सेस ज़रूरी है:
        • कॉन्फ़िगरेशन रिपॉज़िटरी का Git SSH चेकआउट
        • कॉन्फ़िगरेशन रिपॉज़िटरी का Git HTTPS चेकआउट
      3. सेटअप प्लेबुक चलाएं:
        cd ~/apigee-repos/ansible-opdk-accelerator/setup
        ansible-playbook setup.yml
    5. Apigee नोड के लिए एसएसएच कुंजी को कंट्रोल नोड पर अपलोड करें:
      scp -i CONTROL_SSH_PRIVATE_KEY_FILE APIGEE_NODE_SSH_PRIVATE_KEY_FILE admin@CONTROL_EXTERNAL_IP:/home/admin/.ssh/id_rsa

      कहां:

      • CONTROL_SSH_PRIVATE_KEY_FILE आपके कंट्रोल नोड के एसएसएच निजी पासकोड वाली फ़ाइल का नाम है.
      • APIGEE_NODE_SSH_PRIVATE_KEY_FILE आपकी Apigee नोड की एसएसएच निजी कुंजी वाली फ़ाइल का नाम है.
      • 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 रिपॉज़िटरी का यूआरएल है.

    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 की ज़रूरी शर्तें इंस्टॉल करें:
      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 के यूज़र इंटरफ़ेस (यूआई) में, उपयोगकर्ता के पासवर्ड रीसेट करने के लिंक को बंद करें. GDC एयर-गैप्ड पर Apigee में एसएमटीपी सर्वर शामिल नहीं होता है. Edge के यूज़र इंटरफ़ेस (यूआई) में, पासवर्ड रीसेट करने का लिंक बंद करें में दिया गया तरीका अपनाएं.

    पॉड और सेवाएं डिप्लॉय करना

    इस चरण में, आपको अपलोडर, रिवर्स प्रॉक्सी, लोड बैलेंसर, और लॉगिंग पॉड और सेवाओं को डिप्लॉय करना होगा.

    पॉड और सेवाएं डिप्लॉय करने के लिए:

    1. GDC प्रोजेक्ट dev-apigee में Harbor इंस्टेंस बनाने के लिए, Harbor रजिस्ट्री इंस्टेंस बनाएं में दिए गए निर्देशों का पालन करें.
    2. apigee नाम का Harbor प्रोजेक्ट बनाने के लिए, Harbor प्रोजेक्ट बनाएं में दिए गए निर्देशों का पालन करें.
    3. Harbor प्रोजेक्ट के लिए ऐक्सेस कंट्रोल सेट अप करने के लिए, ऐक्सेस कंट्रोल कॉन्फ़िगर करना में दिए गए निर्देशों का पालन करें.
    4. Docker की पुष्टि करने की सुविधा कॉन्फ़िगर करने के लिए, Docker और 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 node1 का एक्सटर्नल आईपी पता है. यह हमें पिछले चरण में मिला था.
      • APIGEE_NODE2_EXTERNAL_IP Apigee node2 का एक्सटर्नल आईपी पता है, जिसे पिछले चरण में हासिल किया गया था.
      • APIGEE_NODE3_EXTERNAL_IP Apigee node3 का एक्सटर्नल आईपी पता है. इसे पिछले चरण में हासिल किया गया था.

    6. एचटीटीपीएस को कॉन्फ़िगर करने के लिए, एसएसएल सर्टिफ़िकेट फ़ाइल (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

    अपलोड करने वाले और Fluent Bit फ़ॉरवर्डर के आईपी पते अपडेट करना

    इस चरण में, आपको बैकअप और Apigee सेटअप स्क्रिप्ट में, अपलोडर और Fluent Bit फ़ॉरवर्डर के आईपी पते अपडेट करने होंगे.

    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.sh में FLUENTBIT_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. Helm चार्ट को फिर से डिप्लॉय करें:
      python apigee/solution_deploy.py gdc-air-gapped
    3. वीएम शुरू करें:
      for i in 1 2 3 4 5; do
        GDCloud compute instances start node$i --project $PROJECT
        done

    Apigee संगठन को शामिल करना

    इस चरण में, GDC ऑपरेटर, Apigee संगठन को ऑनबोर्ड करता है. इसके लिए, वह node1 पर सेटअप स्क्रिप्ट चलाता है.

    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 का इंटरनल आईपी पता है. यह हमें पिछले चरण में मिला था.
      • APIGEE_NODE2_EXTERNAL_IP Apigee node2 का एक्सटर्नल आईपी पता है, जिसे पिछले चरण में हासिल किया गया था.
      • APIGEE_NODE3_EXTERNAL_IP Apigee node3 का एक्सटर्नल आईपी पता है. इसे पिछले चरण में हासिल किया गया था.

    2. संगठन को शामिल करने के लिए, node1 पर स्क्रिप्ट चलाएं:
      chmod a+x apigee_org_setup.sh
      ./apigee_org_setup.sh

    एचटीटीपी कनेक्टिविटी की जांच करना

    इस चरण में, Management API और एपीआई प्रॉक्सी के लिए एचटीटीपी कनेक्टिविटी की जांच की जाएगी.

    एचटीटीपी कनेक्टिविटी की जांच करने के लिए:

    1. apigee-elb सेवा का एक्सटर्नल आईपी पता पाएं:
      gdcloud clusters get-credentials USER_CLUSTER
      export PROJECT=dev-apigee
      kubectl get svc apigee-elb -n $PROJECT

      यहां USER_CLUSTER, उपयोगकर्ता के GKE क्लस्टर का नाम है.

      यह सेवा, Edge यूज़र इंटरफ़ेस (यूआई), Management API, और एपीआई प्रॉक्सी के लिए एंडपॉइंट के तौर पर काम करती है.

    Management API की जांच करना

    Management API को आज़माने के लिए, इस एंडपॉइंट पर एचटीटीपी अनुरोध भेजें:

    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. एपीआई प्रॉक्सी पेज पर, नई एपीआई प्रॉक्सी बनाने के लिए बनाएं पर क्लिक करें.
    3. प्रॉक्सी की जानकारी पेज पर, ये वैल्यू डालें:
      • प्रॉक्सी टाइप: कोई टारगेट नहीं चुनें.
      • प्रॉक्सी का नाम: ok
      • बेस पाथ: /ok
      • टारगेट: http://APIGEE_ELB_EXTERNAL_IP:9001
    4. एपीआई प्रॉक्सी बनाने के लिए, बनाएं पर क्लिक करें.
    5. /ok पर एचटीटीपी अनुरोध भेजें:
      curl -i http://APIGEE_ELB_EXTERNAL_IP:9001/ok
    6. पुष्टि करें कि जवाब 200 OK है.

    टीएलएस को कॉन्फ़िगर करना और एचटीटीपीएस की जांच करना

    इस चरण में, GDC ऑपरेटर, एपीआई प्रॉक्सी, Edge यूज़र इंटरफ़ेस (यूआई), और मैनेजमेंट एपीआई के लिए ट्रांसपोर्ट लेयर सिक्योरिटी (टीएलएस) को कॉन्फ़िगर करता है.

    एपीआई प्रॉक्सी के लिए टीएलएस कॉन्फ़िगर करना

    1. कीस्टोर/ट्रस्टस्टोर और एलियास बनाएं में दिया गया तरीका अपनाकर, इन वैल्यू के साथ एक सेल्फ-साइन्ड सर्टिफ़िकेट बनाएं:
      • KeyStore: myTestKeystore
      • KeyAlias: myKeyAlias
      • सामान्य नाम: apigeetest.com
    2. api.apigeetest.com नाम का वर्चुअल होस्ट बनाने के लिए, एपीआई कॉल करें:
      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. पुष्टि करें कि वर्चुअल होस्ट, स्थानीय तौर पर काम करते हैं. इसके लिए, एंडपॉइंट पर एचटीटीपीएस अनुरोध भेजें:
      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 यूज़र इंटरफ़ेस (यूआई) के लिए टीएलएस कॉन्फ़िगर करना

    Edge यूज़र इंटरफ़ेस (यूआई) के लिए टीएलएस कॉन्फ़िगर करने के लिए:

    1. एसएसएल सर्टिफ़िकेट फ़ाइल और कुंजी फ़ाइल से कीस्टोर फ़ाइल जनरेट करें:
      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 नोड की एसएसएच निजी कुंजी वाली फ़ाइल का नाम है.
      • APIGEE_NODE1_EXTERNAL_IP Apigee node1 का एक्सटर्नल आईपी पता है. यह हमें पिछले चरण में मिला था.

    3. node1 से एसएसएच करें और कीस्टोर फ़ाइल को Apigee फ़ोल्डर में ले जाएं:
      sudo mv keystore.jks /opt/apigee/customer/application/
    4. एसएसएल कॉन्फ़िगरेशन फ़ाइल बनाएं:
      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. कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करके एसएसएल कॉन्फ़िगर करें:
      sudo chown apigee:apigee /tmp/sslConfigFile
      /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f /tmp/sslConfigFile
    7. Edge यूज़र इंटरफ़ेस (यूआई) के लिए डीएनएस रिज़ॉल्यूशन कॉन्फ़िगर करें:
      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 को ऐक्सेस करें और पुष्टि करें कि यह काम कर रहा है. ज़्यादा जानकारी के लिए, गाइड देखें.

    Management API के लिए टीएलएस कॉन्फ़िगर करना

    Management API के लिए टीएलएस कॉन्फ़िगर करने के लिए:

    1. कीस्टोर फ़ाइल के लिए मालिक को कॉन्फ़िगर करें (Edge यूज़र इंटरफ़ेस (यूआई) के लिए इस्तेमाल किए गए मालिक का ही इस्तेमाल करें):
      sudo chown apigee:apigee /opt/apigee/customer/application/keystore.jks
    2. प्रॉपर्टी फ़ाइल बनाएं:
      sudo vi /opt/apigee/customer/application/management-server.properties
    3. KEY_PASS_PHRASE की वैल्यू को कीस्टोर के पासवर्ड से बदलें. इसके लिए, यहां दिया गया तरीका अपनाएं:

      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. पुष्टि करें कि एचटीटीपीएस, स्थानीय तौर पर काम करता है या नहीं:
      curl -u "opdk@apigee.com:Apigee123!" "https://localhost:8443/v1/users" -k
    6. क्लाइंट से, ब्राउज़र में https://apigeetest.com:8443/v1/users को ऐक्सेस करें. एडमिन का उपयोगकर्ता नाम और पासवर्ड डालकर पुष्टि करें कि क्रेडेंशियल सही तरीके से कॉन्फ़िगर किए गए हैं.

    आगे क्या करना है