יצירת ארגון, סביבה ומארח וירטואלי

Edge for Private Cloud גרסה 4.17.05

יצירת ארגון, סביבה ומארח וירטואלי בו-זמנית

לפני שיוצרים שרת proxy ל-API ב-Apigee Edge, צריך ליצור לפחות ארגון אחד, ובכל ארגון צריך ליצור סביבה אחת או יותר ומארחים וירטואליים.

בדרך כלל, ארגונים וסביבות נוצרים ביחד. כדי לפשט את התהליך, אפשר להשתמש בכלי apigee-provision. מפעילים אותו משורת הפקודה בשרת הניהול של Edge:

> /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 

ואז הפקודה:

  • יוצרים את הארגון
    הערה: אי אפשר לשנות את השם של הארגון אחרי שיוצרים אותו.
  • שיוך הארגון ל-pod, כברירת מחדל הוא משויך ל-pod של "gateway"
  • מוסיפים את המשתמש שצוין כמנהל החשבון הארגוני. אם המשתמש לא קיים, אתם יכולים ליצור אותו.
  • יוצרים סביבה אחת או יותר
  • יוצרים מארח וירטואלי אחד או יותר לכל סביבה
  • משייכים את הסביבה לכל מעבדי הבקשות
  • הפעלת ניתוח נתונים

קובץ תצורה מלא ושקט מופיע במאמר הצטרפות של ארגון.

כברירת מחדל, האורך המקסימלי של שם הארגון ושם הסביבה הוא 20 תווים כשמשתמשים בכלי apigee-provision. המגבלה הזו לא חלה אם משתמשים ישירות ב-Edge API כדי ליצור את הארגון או הסביבה.

בחלקים הבאים נרחיב על הסקריפטים וממשקי ה-API האלה.

יצירת ארגון

משתמשים בפקודה create-org כדי ליצור ארגון:

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

הסקריפט הזה יוצר את הארגון, אבל לא מוסיף או מגדיר את הסביבות והמארחים הווירטואליים שהארגון צריך כדי לטפל בקריאות ל-API.

קובץ התצורה מכיל את שם הארגון ואת כתובת האימייל של מנהל החשבון הארגוני. התווים שאפשר להשתמש בהם במאפיין השם מוגבלים ל: 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

ואז הפקודה:

  • יוצר את הארגון
  • משייך את הארגון ל-pod. כברירת מחדל, הוא משויך ל-pod של השער (gateway)
  • הוספת המשתמש שצוין כמנהל חשבון ארגוני. המשתמש כבר צריך להיות קיים, אחרת הסקריפט יציג שגיאה.
<Error>
    <Code>organizations.OrganizationAlreadyExists</Code>
    <Message>Organization : test already exists</Message>
    <Contexts/>
</Error>

יצירת ארגון באמצעות קריאות ל-API

לחלופין, אפשר להשתמש בקריאות הבאות ל-API כדי ליצור ארגון. הקריאה הראשונה יוצרת את הארגון:

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

הקריאה הבאה משייכת את הארגון ל-pod:

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

הפקודה:

  • יוצר את הסביבה
  • יוצר מארח וירטואלי אחד לסביבה
  • משייכת את הסביבה לכל מעבדי הבקשות ב-pod שמשויך לארגון שמכיל את הסביבה.
  • הפעלת ניתוח נתונים
    הערה: אם מפעילים ניתוח נתונים לסביבה אחת בארגון, צריך להפעיל ניתוח נתונים לכל הסביבות בארגון.

יצירת סביבה באמצעות קריאות ל-API

לחלופין, אתם יכולים להשתמש בקריאות הבאות ל-API כדי ליצור סביבה. הקריאה הראשונה יוצרת את הסביבה:

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>" הוא ה-UUID של מעבד הבקשות. כדי לקבל את ה-UUID, אפשר להשתמש בפקודה:

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

כאשר "<mp-ip>" הוא כתובת ה-IP של מעבד הבקשות.

הקריאה הבאה ל-API מפעילה את Analytics בסביבה נתונה. הוא מאמת את קיומם של שרתי Qpid ו-Postgres ב-PODs של כל מרכזי הנתונים. לאחר מכן, הוא מתחיל את תהליך ההצטרפות ל-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 מכיל רשימה מופרדת בפסיקים של מזהי ה-UUID של Postgres, והמאפיין qpid-server מכיל את מזהי ה-UUID של 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"

יצירת מארח וירטואלי

אתם יכולים ליצור מארח וירטואלי בסביבה קיימת בארגון. בדרך כלל, סביבה תומכת בכמה מארחים וירטואליים. לדוגמה, מארח וירטואלי אחד יכול לתמוך בפרוטוקול HTTP, ומארח וירטואלי אחר באותה סביבה יכול לתמוך בפרוטוקול HTTPS המוצפן.

כדי ליצור מארחים וירטואליים נוספים, או כדי ליצור מארח וירטואלי לסביבה ללא מארח וירטואלי, משתמשים בקריאה הבאה ל-API:

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 ל-API ב-Private Cloud מוסבר איך ליצור מארח וירטואלי, כולל מארח וירטואלי מאובטח שמשתמש ב-TLS/SSL דרך HTTPS.