התקנה של ממשק API ל-BaaS עם 7 מארחים ו-10 מארחים

Edge for Private Cloud גרסה 4.16.05

שימוש במאזן עומסים

בהתקנה של API BaaS בסביבת ייצור, משתמשים במאזן עומסים בין הצומת של API BaaS Portal לבין הצמתים של API BaaS Stack. כשמגדירים את הפורטל, מציינים את כתובת ה-IP או את שם ה-DNS של מאזן העומסים, ולא של צומתי ה-Stack.

במקום מאזן עומסים, אתם יכולים להשתמש ב-DNS מסוג Round-Robin. בתרחיש הזה, יוצרים רשומת DNS עם כמה רשומות A שתואמות לכתובות ה-IP של מחסנית ה-BaaS. במהלך חיפוש DNS, שרת ה-DNS מחזיר באופן אוטומטי ערכים של רשומת כתובת קבועה בשיטת Round Robin.

התחברות ל-Cassandra

כשמתקינים את BaaS, אפשר לחבר את BaaS ואת Edge לאותו אשכול Cassandra, או ליצור אשכול Cassandra נפרד ל-BaaS. בהתקנות BaaS קטנות יותר, כלומר כאלה עם נפחי תנועה נמוכים יותר, לעיתים קרובות יש אשכול Cassandra משותף עם Edge.

כדי להשיג תפוקה וזמינות גבוהות, או כדי להפריד בין אשכולות Cassandra לאזורי רשת שונים, מומלץ להשתמש באשכולות Cassandra נפרדים. אשכולות נפרדים משפרים את הביצועים אם יש עומסי תנועה גבוהים ב-BaaS.

סנכרון תאריכים

התאריך והשעה חייבים להיות מסונכרנים בכל השרתים. אם הוא עדיין לא מוגדר, אפשר להשתמש בכלי ntpdate כדי לוודא שהשרתים מסונכרנים מבחינת הזמן. כדי להתקין את הכלי, אפשר להשתמש בפקודה "yum install ntp".

אבטחת Tomcat

מנהל ההתקנה של API BaaS מתקין גם את שרת Apache Tomcat בכל הצמתים של API BaaS Stack, כולל ממשק המשתמש של מנהל המערכת של Tomcat. המתקין משאיר את פרטי הכניסה של מנהל המערכת כברירת מחדל ללא שינוי מ-admin:admin.

אם צריך, אפשר לשנות את פרטי הכניסה האלה כחלק מאבטחת Tomcat. למידע נוסף:

סקירה כללית על ההתקנה

אחרי שמתקינים את כלי השירות apigee-setup של Edge בצומת, משתמשים בכלי השירות הזה כדי להתקין רכיב BaaS אחד או יותר בצומת. הפורמט של הכלי apigee-setup הוא:

> sudo /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

מעבירים קובץ תצורה לכלי apigee-setup שמכיל את המידע על ההתקנה. אם חסר מידע נדרש בקובץ התצורה, הכלי apigee-setup יבקש מכם להזין אותו בשורת הפקודה.

הדרישה היחידה היא שקובץ התצורה יהיה נגיש או קריא למשתמש "apigee". לדוגמה, אפשר לשים את הקובץ בספרייה ‎ /tmp בצומת.

לדוגמה, משתמשים בפקודה הבאה כדי להתקין את API BaaS Stack:

> sudo /opt/apigee/apigee-setup/bin/setup.sh -p b -f myConfig

הכלי setup.sh של Apigee תומך בכמה אפשרויות להתקנת רכיבי API BaaS. בהוראות הבאות נעשה שימוש באפשרויות העצמאיות (c, ‏ e, ‏ b ו-p), אבל אתם יכולים להשתמש באפשרויות אחרות בהתאם להגדרות של הצומת:

אפשרות

תיאור

e

מתקינים רק את ElasticSearch.

b

התקנה של API BaaS Stack בלבד, שמתקינה גם את Tomcat.

p

התקנה של API BaaS Portal בלבד, שמתקינה גם את הנתב Nginx שישמש כשרת אינטרנט.

c

מתקינים רק את Cassandra.

eb

מתקינים בצומת את ElasticSearch,‏ API BaaS Stack ו-Tomcat.

ebp

התקנה של ElasticSearch,‏ API BaaS Portal,‏ API BaaS Stack ו-Tomcat. הפורטל כל כך קל, שלא צריך משאבים נוספים בשבילו.

asa

התקנה של כל רכיבי ה-API בצומת אחד (Cassandra,‏ Elasticsearch,‏ API BaaS Stack ו-API BaaS Portal). האפשרות הזו מיועדת לפיתוח ולבדיקה בלבד, ולא לייצור.

יצירת קובץ תצורה שקט

בהמשך מוצגת דוגמה לקובץ תצורה שקט להתקנה של API BaaS עם 10 צמתים. עורכים את הקובץ הזה לפי הצורך בהתאם להגדרות האישיות. כדי לכלול את הקובץ הזה, משתמשים באפשרות ‎-f ב-setup.sh.

# Specify IP address or DNS name of node.
IP1=192.168.1.1   # ElasticSearch
IP2=192.168.1.2   # ElasticSearch
IP3=192.168.1.3   # ElasticSearch
IP4=192.168.1.4   # API BaaS Stack
IP5=192.168.1.5   # API BaaS Stack
IP6=192.168.1.6   # API BaaS Stack
IP7=192.168.1.7   # API BaaS Portal
IP8=192.168.1.8   # Cassandra (shared with Edge or standalone)
IP9=192.168.1.9   # Cassandra (shared with Edge or standalone)
IP10=192.168.1.10  # Cassandra (shared with Edge or standalone)

# Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost.
HOSTIP=$(hostname -i)

# Define the API BaaS administrator account.  
AS_ADMIN="superuser"    # User name - default is "superuser".
AS_ADMIN_EMAIL=stackAdmin@email.com
AS_PASSWD=stackAdminPWrod

# Only if you are installing Cassandra.
# Specify Cassandra configuration information.
# Must use IP addresses for CASS_HOSTS, not DNS names.
# CASS_HOSTS="$IP8:1,1 $IP9:1,1 $IP10:1,1"

# If connecting to existing Cassandra nodes, 
# specify Cassandra IPs.
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP8 $IP9 $IP10"

# Cassandra uname/pword.
# Even if Cassandra authentication is disabled,
# you must still pass values for these properties.
CASS_USERNAME=cassandra    # Default value
CASS_PASSWORD=cassandra    # Default value

# Specify BaaS Cassandra connection information.
# Specify the data center name.
BAAS_CASS_LOCALDC=dc-1    # Default is dc-1.

# Replication is in the form "dataCenterName:#CassandraNodes". 
# For example, for dc-1 with three Cassandra nodes, it is dc-1:3.
BAAS_CASS_REPLICATION=dc-1:3

# ElasticSearch IPs or DNS names, separated by spaces.
ES_HOSTS="$IP1 $IP2 $IP3"

# API BaaS Stack information.
# Default cluster name is "apigee_baas"
BAAS_USERGRID_CLUSTERNAME="apigee_baas" 

# URL and port of the load balancer for the API BaaS Stack nodes, 
# or IP/DNS and port 8080 of a single Stack node with no load balancer.
BAAS_USERGRID_URL=http://myloadbalancer:8443

# API BaaS Portal information.
# URL and port number of load balancer, if there is one in front of the Portal,
# or the URL and port of the Portal node.  
BAAS_PORTAL_URL="http://$IP7:9000"

# Portal port. Default value is 9000.
BAAS_PORTAL_LISTEN_PORT=9000 

# SMTP information. BaaS requires an SMTP server.
SMTPHOST=smtp.gmail.com
SMTPPORT=465
SMTPUSER=your@email.com
SMTPPASSWORD=yourEmailPassword
SMTPSSL=y

בטבלה הבאה מופיע מידע נוסף על המאפיינים האלה:

נכס

הערה

CASS_HOSTS

אם מתקינים את Cassandra, צריך לציין את כתובות ה-IP של צומת Cassandra (לא שמות DNS) ולכלול את המאפיין "‎:dc,ra" שמציין את מרכז הנתונים ואת המדף של צומת Cassandra.

לדוגמה, '192.168.124.201:1,1 = מרכז נתונים 1 וארון שרתים/אזור זמינות 1, ו-'192.168.124.204:2,1 = מרכז נתונים 2 וארון שרתים/אזור זמינות 1.

CASS_USERNAME
CASS_PASSWORD

שם המשתמש והסיסמה של Cassandra.

אם האימות של Cassandra מושבת, עדיין צריך להעביר את הערכים האלה. עם זאת, המערכת מתעלמת מהערכים.

BAAS_CASS_LOCALDC

שמות האזורים צריכים להיות בפורמט dc-# ‎, כאשר # מייצג ערך של מספר שלם.

לדוגמה, dc-1,‏ dc-2 וכו'. אם אתם מתחברים לאשכול Cassandra שמותקן עם Edge, אתם יכולים לבקש את הערך הזה ממנהל המערכת של Edge. בהתקנה של מרכז נתונים יחיד ב-Edge, ערך ברירת המחדל הוא dc-1.

אם התקנתם את Cassandra כחלק מההתקנה של API BaaS, אז במהלך ההתקנה של Cassandra הוספתם את המאפיין ":dc,ra" לכתובות ה-IP של Cassandra. הערך הראשון, "dc", הוא מספר מרכז הנתונים. שם מרכז הנתונים הוא המחרוזת "dc-‎" עם מספר מרכז הנתונים כסיומת.

BAAS_CASS_REPLICATION

הפורמט הוא "dataCenterName:#CassandraNodes". לדוגמה, עבור dc-1 עם שלושה צומתי Cassandra, הערך הוא dc-1:3.

BAAS_USERGRID_URL

בסביבת ייצור, זו כתובת ה-URL והיציאה של מאזן העומסים שנמצא לפני הצמתים של API BaaS Stack, בפורמט:

http://myStackLoadBalancer:8443

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

http://stackIPorDNS:8080

מספר היציאה של שרת API BaaS Stack הוא 8080.

BAAS_PORTAL_URL

כתובת ה-URL ומספר היציאה של מאזן העומסים, אם יש כזה לפני הפורטל, בפורמט:

http://myPortalLoadBalancer:8443

אם אין מאזן עומסים, כתובת ה-URL ומספר היציאה של צומת הפורטל, בפורמט:

http://portalIPorDNS:9000

כברירת מחדל, מספר היציאה של פורטל API BaaS הוא 9000.

BAAS_PORTAL_LISTEN_PORT

מספר היציאה של שרת API BaaS Portal הוא 9000. אם היציאה הזו לא זמינה, צריך לציין יציאה אחרת.

אם מגדירים את BAAS_PORTAL_URL לכתובת ה-URL של צומת הפורטל, מספרי היציאות צריכים להיות זהים בשני המאפיינים.

אופציונלי – התקנת Cassandra: מכונות 8, 9 ו-10

אפשר לחבר את API BaaS לאותו אשכול Cassandra שמשמש את Edge, אבל Apigee ממליצה להשתמש באשכולות נפרדים.

אפשר להשתמש באימות באשכול Cassandra, או להשבית את האימות של Cassandra. למידע נוסף, ראו הפעלת אימות של Cassandra.

  1. מתקינים את כלי השירות apigee-setup של Edge בצומת באמצעות ההליך עם האינטרנט או בלי האינטרנט. מידע נוסף זמין במאמר התקנת כלי השירות apigee-setup של Edge.
  2. בשורת הפקודה, מריצים את סקריפט ההגדרות:
    > ‎/opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

    האפשרות "‎-p c" מציינת שצריך להתקין את Cassandra.
    למשתמש apigee צריכה להיות גישה לקובץ התצורה או הרשאת קריאה שלו. לדוגמה, שומרים את הקובץ בספרייה ‎ /tmp בצומת.

ההגדרה משלימה את הגדרת מאגר הנתונים בצומת.

שימו לב ש-JMX מופעל כברירת מחדל ב-Cassandra. הגישה מרחוק של JMX ל-Cassandra לא דורשת סיסמה. אפשר להגדיר את Cassandra כך שתשתמש באימות ל-JMX. איך עוקבים אחרי אירועים

הגדרת משימת cron של Cassandra

מגדירים משימת cron שמשתמשת ב-nodetool כדי לנקות את הנעילות, כך שהיא תפעל כל שעה בכל צומת של Cassandra.

אם יש לכם כמה צומתי Cassandra, צריך להגדיר היסט של חמש דקות למשימת ה-cron בכל שרת כדי שכל הצמתים לא ירוקנו את הנתונים בו-זמנית.

משימת ה-cron צריכה להריץ את הפקודה הבאה:

/opt/apigee/apigee-cassandra/bin/nodetool -h IP_address flush Apigee_Baas_Locks

כאשר IP_address היא כתובת ה-IP של צומת Cassandra.

התקנת ElasticSearch: מכונה 1, 2 ו-3

כדי להתקין את ElasticSearch:

  1. מתקינים את כלי השירות apigee-setup של Edge בצומת באמצעות ההליך עם האינטרנט או בלי האינטרנט. מידע נוסף זמין במאמר התקנת כלי השירות apigee-setup ב-Edge.
  2. בשורת הפקודה, מריצים את סקריפט ההגדרות:
    > ‎/opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile

    האפשרות "‎-p e" מציינת שצריך להתקין את ElasticSearch.
    למשתמש apigee צריכה להיות גישה לקובץ התצורה או הרשאת קריאה שלו. לדוגמה, שומרים את הקובץ בספרייה ‎ /tmp בצומת.
  3. (אופציונלי) אם מתקינים את ElasticSearch בצומת עצמאי, כלומר הוא לא מותקן עם API BaaS Stack, צריך לשנות את אפשרות ברירת המחדל של הזיכרון כדי להגדיל את הזיכרון שהוקצה ל-ElasticSearch מ-4GB ל-6GB:
    1. פותחים את הקובץ /opt/apigee/customer/application/elasticsearch.properties בכלי לעריכת קוד. אם הקובץ הזה לא קיים, יוצרים אותו.
    2. מגדירים את המאפיין setenv_elasticsearch_max_mem_size ל-6g (ברירת המחדל היא 4g):
      setenv_elasticsearch_max_mem_size=6g
    3. שומרים את הקובץ.
    4. מריצים את הפקודה הבאה:
      > ‎/opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart

ההגדרה משלימה את תהליך ההגדרה בצומת.

התקנת API BaaS Stack: מכונות 4, 5 ו-6

כדי להתקין את API BaaS Stack:

  1. מתקינים את כלי השירות apigee-setup של Edge בצומת באמצעות ההליך עם האינטרנט או בלי האינטרנט. מידע נוסף זמין במאמר התקנת כלי השירות apigee-setup ב-Edge.
  2. בשורת הפקודה, מריצים את סקריפט ההגדרות:
    > ‎/opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile

    האפשרות "‎-p b" מציינת שצריך להתקין את API BaaS Stack.
    למשתמש apigee צריכה להיות גישה לקובץ התצורה או הרשאת קריאה שלו. לדוגמה, שומרים את הקובץ בספרייה ‎ /tmp בצומת.

אחרי שמנהל ההתקנה מאחזר את פרטי הכניסה הנכונים של האדמין, הוא מתקין את Tomcat, יוצר מרחבי מפתחות של API BaaS ומגדיר את API BaaS Stack בשרת. ‫SMTP מוגדר גם כדי לאפשר לממשק המשתמש לשלוח הודעות אישור באימייל עם סיסמה.

התקנת API BaaS Portal: מכונה 7

כדי להתקין את פורטל API BaaS:

  1. מתקינים את כלי השירות apigee-setup של Edge בצומת באמצעות ההליך עם האינטרנט או בלי האינטרנט. מידע נוסף זמין במאמר התקנת כלי השירות apigee-setup ב-Edge.
  2. בשורת הפקודה, מריצים את סקריפט ההגדרות:
    > /opt/apigee/setup/bin/setup.sh -p p -f configFile

    האפשרות "‎-p p" מציינת שצריך להתקין את פורטל API BaaS.
    למשתמש apigee צריכה להיות גישה לקובץ התצורה או הרשאת קריאה שלו. לדוגמה, שומרים את הקובץ בספרייה ‎ /tmp בצומת.

מנהל ההתקנה מפעיל את שרת האינטרנט Nginx ואז מסיים את הגדרת פורטל API BaaS.

שימו לב לכתובת ה-URL של פורטל API BaaS. זוהי כתובת ה-URL שמזינים בדפדפן כדי לגשת לממשק המשתמש של פורטל API BaaS.

הגדרת צומתי API BaaS למאזן עומסים של Stack או של Portal

אם אתם כוללים מאזן עומסים לפני צומתי Stack או Portal, אתם צריכים להגדיר את הצמתים עם כתובת ה-URL הנכונה של מאזן העומסים. לדוגמה, צומתי Stack דורשים את המידע הזה במקרים הבאים:

  • הכללת כתובת URL בתשובות לבקשות API של BaaS.
  • הוספת קישורים בתבניות של אימיילים כשמאפסים סיסמה או שולחים התראות אחרות.
  • הפניית משתמשים לדפים ספציפיים בפורטל.

אם אתם משתמשים במאזן עומסים לפני צומתי Stack, צריך להגדיר את המאפיינים הבאים ב-/opt/apigee/customer/application/usergrid.properties:

usergrid-deployment_swagger.basepath=http://localhost:8080
usergrid-deployment_usergrid.organization.activation.url=http://localhost:8080/management/organizations/%s/activate
usergrid-deployment_usergrid.admin.activation.url=http://localhost:8080/management/users/%s/activate
usergrid-deployment_usergrid.admin.resetpw.url=http://localhost:8080/management/users/%s/resetpw
usergrid-deployment_usergrid.admin.confirmation.url=http://localhost:8080/management/users/%s/confirm
usergrid-deployment_usergrid.user.activation.url=http://localhost:8080/%s/%s/users/%s/activate
usergrid-deployment_usergrid.user.confirmation.url=http://localhost:8080/%s/%s/users/%s/confirm
usergrid-deployment_usergrid.user.resetpw.url=http://localhost:8080/%s/%s/users/%s/resetpw

מחליפים את http://localhost:8080 בכתובת ה-URL של מאזן העומסים. אם מאזן העומסים מוגדר לשימוש ב-TLS, צריך להשתמש בפרוטוקול HTTPS. צריך לכלול את היציאה רק אם משתמשים ביציאה לא סטנדרטית, כלומר יציאה שאינה 80 ל-HTTP ו-443 ל-HTTPS.

אם אתם משתמשים במאזן עומסים לפני צומתי ה-Stack, אתם צריכים גם להגדיר את המאפיין הבא ב-‎/opt/apigee/customer/application/portal.properties :

baas.portal.config.overrideUrl=http://localhost:8080

מחליפים את http://localhost:8080 בכתובת ה-URL של מאזן העומסים של Stack.

אם אתם משתמשים במאזן עומסים לפני צומת הפורטל, הגדירו את המאפיינים הבאים ב-usergrid.properties:

usergrid-deployment_usergrid.view.management.organizations.organization.activate=http://localhost:9000
usergrid-deployment_usergrid.view.management.organizations.organization.confirm=http://localhost:9000
usergrid-deployment_usergrid.view.management.users.user.activate=http://localhost:9000
usergrid-deployment_usergrid.view.management.users.user.confirm=http://localhost:9000

מחליפים את http://localhost:9000 בכתובת ה-URL של מאזן העומסים. אם מאזן העומסים מוגדר לשימוש ב-TLS, צריך להשתמש בפרוטוקול HTTPS. צריך לכלול את היציאה רק אם משתמשים ביציאה לא סטנדרטית, כלומר יציאה שהיא לא 80 ל-HTTP או 443 ל-HTTPS.

אחרי שעורכים את usergrid.properties ואת portal.properties:

  1. מגדירים את צומת Stack:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  2. פורסים את השינויים ב-Tomcat:
    > ‎/<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid deploy
  3. מפעילים מחדש את BaaS Stack:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  4. אם שיניתם את portal.properties, מגדירים את צומת הפורטל:
    > ‎/<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal configure
  5. פורסים את השינויים:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal deploy
  6. מפעילים מחדש את פורטל BaaS:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal restart

הוספת ארגון חדש

התהליך של יצירת ארגון ומנהל ארגון נקרא "הצטרפות". אחרי שיוצרים את הארגון ואת מנהל חשבון ארגוני, אפשר להתחבר לממשק המשתמש של פורטל API BaaS ולשלוח בקשות ל-API בארכיטקטורת REST של API BaaS.

כשיוצרים ארגון, כתובת האימייל של האדמין הארגוני:

  • היא חייבת להיות שונה מכתובת האימייל של מנהל המערכת.
  • חייב להיות ייחודי מבין כל הארגונים האחרים. כלומר, אי אפשר ליצור שני ארגונים עם אותה כתובת אימייל של מנהל החשבון הארגוני. עם זאת, אחרי שיוצרים את הארגון, אפשר להוסיף עוד אדמינים שאפשר לשכפל בכמה ארגונים.

כדי להגדיר את הארגון, משתמשים בסקריפט Python‏ create_org_and_user.py. אם תפעילו את הסקריפט הזה בלי ארגומנטים בשורת הפקודה, תתבקשו להזין את כל המידע:

> python create_org_and_user.py

לחלופין, אפשר להעביר כל אחת מהאפשרויות או את כולן כארגומנט של שורת הפקודה. תתבקשו להזין את כל המידע שהשמטתם משורת הפקודה:

> python create_org_and_user.py -o '<org name>'
> python create_org_and_user.py -o '<org name>' -a '<new admin email>' -p '<new admin password>'

כדי ליצור ארגון:

  1. משנים את הספרייה ל-opt/apigee/baas-usergrid/bin.
  2. מפעילים את הסקריפט create_org_and_user.py ב-Python.
    תתבקשו להזין את שם המשתמש והסיסמה של מנהל המערכת של BaaS, כדי שרק מנהל מערכת יוכל להריץ אותו.
  3. נכנסים לפורטל API BaaS בדפדפן אינטרנט באמצעות כתובת ה-URL שציינתם בסוף ההתקנה של כתובת ה-URL של פורטל API BaaS. כדי לגשת לפורטל, מזינים את כתובת ה-URL של פורטל API BaaS בפורמט הבא:
    http://{portalExternalIP}:9000/

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

גישה ל-API בארכיטקטורת REST של API BaaS

כדי לגשת ל-API בארכיטקטורת REST של API BaaS, משתמשים בכתובת URL בפורמט הבא:

https://{loadBalancerIP}:8080/{your-org}/{your-app}

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

curl -v "http://portalExternalIP:8080/status"

מידע נוסף על תחילת העבודה עם פורטל API BaaS זמין במסמכי התיעוד של Apigee בכתובת: http://apigee.com/docs/content/build-apps-home.