संगठन, एनवायरमेंट, और वर्चुअल होस्ट बनाना

Edge for Private Cloud v. 4.17.05

संगठन, एनवायरमेंट, और वर्चुअल होस्ट एक साथ बनाना

Apigee Edge पर एपीआई प्रॉक्सी बनाने से पहले, आपको कम से कम एक संगठन के साथ-साथ हर संगठन में एक या एक से ज़्यादा एनवायरमेंट और वर्चुअल होस्ट बनाने होंगे.

आम तौर पर, संगठन और एनवायरमेंट एक साथ बनाए जाते हैं. इस प्रोसेस को आसान बनाने के लिए, apigee-provision यूटिलिटी का इस्तेमाल करें. इसे एज मैनेजमेंट सर्वर पर कमांड लाइन से शुरू करें:

> /opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

कॉन्फ़िगरेशन फ़ाइल में ये शामिल हैं:

# Set Edge sys admin credentials.
ADMIN_EMAIL=your@email.com
APIGEE_ADMINPW=adminPword     # If omitted, you are prompted for it.
NEW_USER="y"
USER_NAME=orgAdmin@myCo.com
FIRST_NAME=foo
LAST_NAME=bar
USER_PWD="userPwrod"
ORG_NAME=example  # lowercase only, no spaces, underscores, or periods.
ENV_NAME=prod
VHOST_PORT=9001
VHOST_NAME=default
VHOST_ALIAS="$IP1:9001"
# Optionally configure TLS/SSL for virtual host.
# VHOST_SSL=y     # Set to "y" to enable TLS/SSL on the virtual host.
# KEYSTORE_JAR=   # JAR file containing the cert and private key.
# KEYSTORE_NAME=  # Name of the keystore. 
# KEYSTORE_ALIAS= # The key alias.
# KEY_PASSWORD=   # The key password, if it has one. 
# Optionally set the base URL displayed by the Edge UI for an
# API proxy deployed to the virtual host.
# VHOST_BASEURL="http://myCo.com"
# AXGROUP=axgroup-001 # Default value is axgroup-001 

इसके बाद कमांड:

  • संगठन बनाएं
    ध्यान दें: संगठन बनाने के बाद, उसका नाम नहीं बदला जा सकता.
  • संगठन को पॉड से जोड़ें. यह डिफ़ॉल्ट रूप से, "गेटवे" पॉड से जुड़ा होता है
  • बताए गए उपयोगकर्ता को संगठन के एडमिन के तौर पर जोड़ें. अगर उपयोगकर्ता मौजूद नहीं है, तो एक उपयोगकर्ता खाता बनाया जा सकता है.
  • एक या ज़्यादा परिवेश बनाएं
  • हर एनवायरमेंट के लिए एक या इससे ज़्यादा वर्चुअल होस्ट बनाएं
  • एनवायरमेंट को सभी मैसेज प्रोसेसर के साथ जोड़ें
  • आंकड़े पाने की सुविधा चालू करें

पूरी साइलेंट कॉन्फ़िगरेशन फ़ाइल के लिए, संगठन को शामिल करना देखें.

apigee-provision यूटिलिटी का इस्तेमाल करते समय, संगठन का नाम और एनवायरमेंट का नाम डिफ़ॉल्ट रूप से ज़्यादा से ज़्यादा 20 वर्ण होना चाहिए. अगर संगठन या एनवायरमेंट बनाने के लिए, सीधे Edge API का इस्तेमाल किया जाता है, तो यह सीमा लागू नहीं होती.

संगठन बनाएं

कोई संगठन बनाने के लिए, 'संगठन बनाएं' निर्देश का इस्तेमाल करें:

> /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-org -f configFile

यह स्क्रिप्ट संगठन बनाती है, लेकिन उन एनवायरमेंट और वर्चुअल होस्ट को न तो जोड़ती है और न ही कॉन्फ़िगर करती है जो संगठन के लिए एपीआई कॉल मैनेज करने के लिए ज़रूरी हैं.

कॉन्फ़िगरेशन फ़ाइल में, संगठन का नाम और संगठन के एडमिन का ईमेल पता शामिल होता है. नाम एट्रिब्यूट में इस्तेमाल किए जा सकने वाले वर्ण: a-z0-9\-$% तक सीमित हैं. नाम में स्पेस, पीरियड या अंग्रेज़ी के बड़े अक्षरों का इस्तेमाल न करें:

APIGEE_ADMINPW=adminPword    # If omitted, you are prompted for it.
ORG_NAME=example  # lowercase only, no spaces, underscores, or periods.
ORG_ADMIN=orgAdmin@myCo.com

इसके बाद कमांड:

  • यह संगठन बनाता है
  • संगठन को पॉड से जोड़ता है और डिफ़ॉल्ट रूप से, इसे "गेटवे" पॉड से जोड़ता है
  • चुने गए उपयोगकर्ता को संगठन के एडमिन के रूप में जोड़ता है. उपयोगकर्ता पहले से मौजूद होना चाहिए. ऐसा न होने पर, स्क्रिप्ट गड़बड़ी करती है.
<Error>
    <Code>organizations.OrganizationAlreadyExists</Code>
    <Message>Organization : test already exists</Message>
    <Contexts/>
</Error>

एपीआई कॉल का इस्तेमाल करके संगठन बनाएं

इसके अलावा, संगठन बनाने के लिए इन एपीआई कॉल का इस्तेमाल किया जा सकता है. पहला कॉल यह संगठन बनाता है:

curl -H "Content-Type:application/xml" -u <sysAdminEmail>:<adminPasswd> \
-X POST http://<ms-ip>:8080/v1/organizations \
-d '<Organization name="<org-name>" type="paid"/>'

अगला कॉल, संगठन को पॉड से जोड़ता है:

curl -H "Content-Type:application/x-www-form-urlencoded" \
-u <sysAdminEmail>:<adminPasswd> -X POST \
http://<ms-ip>:8080/v1/organizations/<org-name>/pods \
-d "region=default&pod=gateway" 

संगठन को एक से ज़्यादा पॉड से जोड़ने के लिए, इस कॉल को कई बार किया जा सकता है.

आखिरी कॉल में, किसी मौजूदा उपयोगकर्ता को संगठन के एडमिन के तौर पर जोड़ा जाता है:

curl -H "Content-Type:application/xml" -u <sysAdminEmail>:<adminPasswd> \
-X POST \
http://<ms-ip>:8080/v1/organizations/<org-name>/users/<user-email>/userroles/ \
-d '<Roles><Role name="orgadmin"/></Roles>'

अगर उपयोगकर्ता मौजूद नहीं है, तो नीचे दिए गए कॉल का इस्तेमाल करके, उपयोगकर्ता को जोड़ा जा सकता है. इसका तरीका जानने के लिए, 'उपयोगकर्ता को जोड़ें' सेक्शन में बताया गया है.

एक एनवायरमेंट बनाएं

किसी मौजूदा संगठन में एनवायरमेंट बनाने के लिए, add-env कमांड इस्तेमाल करें:

> /opt/apigee/apigee-service/bin/apigee-service apigee-provision add-env -f configFile

इस कॉन्फ़िगरेशन फ़ाइल में एनवायरमेंट और वर्चुअल होस्ट बनाने के लिए ज़रूरी जानकारी शामिल है:

APIGEE_ADMINPW=adminPword    # If omitted, you are prompted for it.
ORG_NAME=example  # lowercase only, no spaces, underscores, or periods.
ENV_NAME=prod
VHOST_PORT=9001
VHOST_NAME=default
VHOST_ALIAS="$IP1:9001"
# Optionally configure TLS/SSL for virtual host.
# VHOST_SSL=y     # Set to "y" to enable TLS/SSL on the virtual host.
# KEYSTORE_JAR=   # JAR file containing the cert and private key.
# KEYSTORE_NAME=  # Name of the keystore. 
# KEYSTORE_ALIAS= # The key alias.
# KEY_PASSWORD=   # The key password, if it has one. 
# Optionally set the base URL displayed by the Edge UI for an
# API proxy deployed to the virtual host.
# VHOST_BASEURL="http://myCo.com"
# AXGROUP=axgroup-001 # Default value is axgroup-001

निर्देश:

  • इससे एनवायरमेंट बनता है
  • एनवायरमेंट के लिए एक वर्चुअल होस्ट बनाता है
  • एनवायरमेंट को शामिल करने वाले संगठन से जुड़े पॉड में मौजूद सभी मैसेज प्रोसेसर के साथ एनवायरमेंट को जोड़ता है.
  • Analytics चालू करता है
    ध्यान दें: अगर आपने किसी संगठन में एक एनवायरमेंट के लिए Analytics की सुविधा चालू की है, तो आपको संगठन के सभी एनवायरमेंट के लिए Analytics की सुविधा चालू करनी होगी.

एपीआई कॉल का इस्तेमाल करके एनवायरमेंट बनाएं

इसके अलावा, एनवायरमेंट बनाने के लिए इन एपीआई कॉल का इस्तेमाल किया जा सकता है. पहला कॉल एनवायरमेंट बनाता है:

curl -H "Content-Type:application/xml" -u <sysAdminEmail>:<adminPasswd> \
-X POST http://<ms-ip>:8080/v1/organizations/<org-name>/environments \
-d  '<Environment name="<env-name>"/>' 

अगला कॉल, एनवायरमेंट को मैसेज प्रोसेसर से जोड़ता है. हर उस मैसेज प्रोसेसर के लिए यह कॉल करें जिसे आपको एनवायरमेंट से जोड़ना है:

curl -H "Content-Type:application/x-www-form-urlencoded" \
-u <sysAdminEmail>:<adminPasswd> -X POST \
http://<ms-ip>:8080/v1/organizations/<org-name>/environments/<env-name>/servers \
-d "action=add&uuid=<uuid>"

जहां "<uuid>", Message प्रोसेसर का UUID है. इस निर्देश का इस्तेमाल करके, यूयूआईडी पाया जा सकता है:

> curl http://<mp-ip>:8082/v1/servers/self

जहां "<mp-ip>", मैसेज प्रोसेसर का आईपी पता है.

अगला एपीआई कॉल, दिए गए एनवायरमेंट के लिए Analytics को चालू करता है. इससे, सभी डेटासेंटर के पीओडी में, Qpid और Postgres सर्वर की मौजूदगी की पुष्टि की जाती है. इसके बाद, दिए गए संगठन और एनवायरमेंट के लिए Analytics को शामिल करना शुरू किया जाता है.

> /opt/apigee/apigee-service/bin/apigee-service apigee-provision enable-ax -f configFile

इस कॉन्फ़िगरेशन फ़ाइल में ये चीज़ें शामिल हैं:

ORG_NAME=orgName  # lowercase only, no spaces, underscores, or periods.
ENV_NAME=envName
curl -H "Content-Type:application/json" -u <sysAdminEmail>:<adminPasswd> 
-X POST http://<ms-ip>:8080/v1/organizations/<org-name>/environments/<env-name>/analytics/admin -d "@sample.json"

जहां sample.json में यह जानकारी शामिल है:

{
  "properties" : {
    "samplingAlgo" : "reservoir_sampler",
    "samplingTables" : "10=ten;1=one;",
    "aggregationinterval" : "300000",
    "samplingInterval" : "300000",
    "useSampling" : "100",
    "samplingThreshold" : "100000"
  },
  "servers" : {
    "postgres-server" : [ "1acff3a5-8a6a-4097-8d26-d0886853239c", "f93367f7-edc8-4d55-92c1-2fba61ccc4ab" ],  
    "qpid-server" : [ "d3c5acf0-f88a-478e-948d-6f3094f12e3b", "74f67bf2-86b2-44b7-a3d9-41ff117475dd"] 
  }
}

postgres-servers प्रॉपर्टी में Postgres के यूयूआईडी की कॉमा-सेपरेटेड लिस्ट होती है. साथ ही, qpid-server प्रॉपर्टी में Qpid UUID शामिल होता है. अगर आपको ये यूयूआईडी चाहिए, तो यहां दिए गए निर्देशों का पालन करें.

Qpid के लिए, कमांड चलाएं:

curl -u <sysAdminEmail>:<passwd> http://<ms-ip>/v1/servers?pod=central

इस निर्देश का आउटपुट एक JSON ऑब्जेक्ट है. हर Qpid सर्वर के लिए, आपको इस फ़ॉर्म में आउटपुट दिखेगा:

"type" : [ "qpid-server" ],
"uUID" : "d3c5acf0-f88a-478e-948d-6f3094f12e3b"

Postgres के लिए, निर्देश चलाएं:

curl -u <sysAdminEmail>:<passwd> http://<ms-ip>/v1/servers?pod=analytics

हर Postgres सर्वर के लिए, आपको इस फ़ॉर्म में आउटपुट दिखेगा:

"type" : [ "postgres-server" ],
"uUID" : "d3c5acf0-f88a-478e-948d-6f3094f12e3b"

वर्चुअल होस्ट बनाना

आपके पास किसी संगठन में मौजूदा एनवायरमेंट में वर्चुअल होस्ट बनाने का विकल्प होता है. आम तौर पर, एक एनवायरमेंट में एक से ज़्यादा वर्चुअल होस्ट काम करते हैं. उदाहरण के लिए, हो सकता है कि एक वर्चुअल होस्ट, एचटीटीपी प्रोटोकॉल के साथ काम करता हो, जबकि उसी एनवायरमेंट में मौजूद कोई दूसरा वर्चुअल होस्ट, एन्क्रिप्ट (सुरक्षित) किए गए एचटीटीपीएस प्रोटोकॉल के साथ काम करता हो.

ज़्यादा वर्चुअल होस्ट बनाने के लिए या बिना वर्चुअल होस्ट वाले एनवायरमेंट के लिए वर्चुअल होस्ट बनाने के लिए, नीचे दिए गए एपीआई कॉल का इस्तेमाल करें:

curl -H "Content-Type:application/xml" -u <sysAdminEmail>:<adminPasswd> \
-X POST \
http://<ms-ip>:8080/v1/organizations/<org-name>/environments/<env-name>/virtualhosts \
-d '<VirtualHost name="default"> \
    <HostAliases> \
      <HostAlias>myorg-test.apigee.net</HostAlias> \ 
    </HostAliases> \
    <Interfaces/> \
    <Port>443</Port> \
  </VirtualHost>' 

वर्चुअल होस्ट बनाने के साथ-साथ एचटीटीपीएस पर TLS/एसएसएल का इस्तेमाल करने वाला सुरक्षित वर्चुअल होस्ट बनाने के बारे में पूरी जानकारी के लिए, प्राइवेट क्लाउड के लिए TLS को एपीआई के ऐक्सेस को कॉन्फ़िगर करना देखें.