התקנת API של BaaS

Edge for Private Cloud גרסה 4.16.09

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

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

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

מתחברים לקסנדרה

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

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

סנכרון תאריך

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

אבטחה של Tomcat

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

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

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

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

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

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

הדרישה היחידה היא שקובץ התצורה יהיה נגיש או קריא למשתמש "apigee".

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

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

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

אפשרות

תיאור

e

התקנת ElasticSearch בלבד.

b

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

p

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

c

מתקינים את Cassandra בלבד.

eb

התקנה של ElasticSearch , API BaaS Stack ו-Tomcat בצומת.

BP

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

Asa

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

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

למטה מוצגת דוגמה לקובץ תצורה שקט של התקנת BaaS של API עם 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 וטווח/זמינות 192.168.124.204:2,1 = מרכז נתונים 2.

CASS_USERNAME
CASS_סיסמה

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

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

BAAS_CASS_LOCALDC

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

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

אם התקנת את Cassandra כחלק מהתקנת ממשקי BaaS של ה-API, במהלך ההתקנה של 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

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

http://stackIPorDNS:8080

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

BAAS_PORTAL_URL

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

http://myPortalLoadBalancer:8443

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

http://myPortalLoadBalancer:8443

מספר היציאה 90 של ה-API הוא ברירת המחדל.

BAAS_PORTAL_LISTEN_PORT

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

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

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

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

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

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

    האפשרות ' -p c' מציינת אם להתקין את Cassandra.
    קובץ התצורה חייב להיות נגיש או קריא למשתמש "apigee".

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

חשוב לשים לב ש-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: Machine 1, 2 ו-3

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

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

    האפשרות ' -p e' מציינת אם להתקין את ElasticSearch.
    קובץ התצורה חייב להיות נגיש או קריא למשתמש "apigee".
  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 הפעלה מחדש

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

התקנת מקבץ BaaS של API: מכונה 4, 5 ו-6

כדי להתקין את מקבץ BaaS של ה-API:

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

    האפשרות ' -p b' מציינת אם להתקין את API BaaS Stack.
    קובץ התצורה חייב להיות נגיש או קריא למשתמש "apigee".

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

התקנה של פורטל BaaS של API: מכונה 7

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

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

    האפשרות ' -p p' מציינת אם להתקין את פורטל BaaS של API.
    קובץ התצורה חייב להיות נגיש או קריא למשתמש "apigee".

מנהל ההתקנה מפעיל את שרת האינטרנט של Nginx, ולאחר מכן מסיים את ההגדרה של API BaaS Portal.

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

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

אם כוללים מאזן עומסים לפני הצמתים ב-Stack או בפורטל, צריך להגדיר בצמתים את כתובת ה-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.

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

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 configuration
  2. פורסים את השינויים ב-Tomcat:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid deploy
  3. מפעילים מחדש את מקבץ BaaS:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid הפעלה מחדש
  4. אם שיניתם את portal.properties, צריך להגדיר את צומת הפורטל:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal configuration
  5. פורסים את השינויים:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal deploy
  6. מפעילים מחדש את BaaS Portal:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal מחדש

תהליך קליטת ארגון חדש

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

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

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

כדי לבצע את ההדרכה למשתמשים חדשים, צריך להשתמש בסקריפט 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. מפעילים את סקריפט ה-Python create_org_and_user.py.
    תוצג לכם בקשה להזין את שם המשתמש והסיסמה של מנהל המערכת ב-BaaS, כדי שרק אדמין ב-sys יוכל להפעיל אותם.
  3. מתחברים ל-API BaaS Portal בדפדפן אינטרנט באמצעות כתובת ה-URL שציינתם בסוף התקנת כתובת ה-URL של פורטל BaaS של ה-API. כדי לגשת לפורטל, צריך להזין את כתובת ה-URL של פורטל BaaS של ה-API בצורה הבאה:
    http://{portalExternalIP}:9000/

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

גישה ל-API BaaS REST API

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

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

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

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

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