התקנת API של BaaS

Edge for Private Cloud גרסה 4.17.09

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

אחרי שמתקינים את כלי השירות 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, אבל לא את Cassandra. הפורטל הוא כל כך פשוט, ואין צורך במשאבים נוספים לשם כך.

Asa

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

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

קובץ התצורה מכיל את כל המידע הנדרש להתקנת BaaS של API. לעיתים קרובות אפשר להשתמש באותו קובץ תצורה כדי להתקין את כל הרכיבים בהתקנת BaaS.

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

התקנת BaaS של API בצומת יחיד

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

IP1=192.168.56.101   # IP address of single node

# 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=stackAdminPWord

# Because you are installing Cassandra,
# specify Cassandra data center and rack suffix.
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1"

# Specify the Cassandra region.
REGION=dc-1

# 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 Cassandra data center name.
BAAS_CASS_LOCALDC=dc-1

# For a single data center, specify the same value as BAAS_CASS_LOCALDC.
BAAS_CASS_DC_LIST=dc-1

# Replication is in the form "dataCenterName:#CassandraNodes".
# For dc-1 with one Cassandra node, it is dc-1:1.
BAAS_CASS_REPLICATION=dc-1:1

# Defines the initial contact points for members of the BaaS cluster.
# For a single node install, specify the IP address of the node.
BAAS_CLUSTER_SEEDS="dc-1:$IP1"

# Single ElasticSearch IP.
ES_HOSTS="$IP1"

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

# IP/DNS and port 8080 of a single Stack node.
BAAS_USERGRID_URL="http://$IP1:8080"

# URL and port of the BaaS Portal node.
BAAS_PORTAL_URL="http://$IP1: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
SMTPMAILFROM="My Company <myco@company.com>"

כדי להתקין את BaaS של API בצומת משלו:

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

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

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

  3. מכיוון שהתקנת את ElasticSearch בצומת עצמאי, עליך לשנות את אפשרות ברירת המחדל של הזיכרון כדי להגדיל את הזיכרון שהוקצה ל-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
  4. תהליך קליטה לארגון חדש, כפי שמתואר בהמשך במאמר איך מצטרפים לארגון חדש.

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

התקנת BaaS של API ב-7 צמתים או ב-10 צמתים

התהליך להתקנת גרסת 7 או 10 צמתים של API BaaS דומה מאוד. ההבדל היחיד הוא שעבור:

  • 10 צמתים מתקינים את שלושת רכיבי ElasticSearch ושלושה רכיבי BaaS Stack של API בצמתים נפרדים, כך שבסך הכול נעשה שימוש בשישה צמתים. זוהי ההגדרה המומלצת לביצועים הטובים ביותר כי ElasticSearch מצריך כמות גדולה של קלט/פלט (I/O) בדיסק וזיכרון.
  • התקנה של 7 צמתים, מתקינים את שלושת הרכיבים של ElasticSearch ושלושה רכיבי Stack של API BaaS ב-API אותם צמתים, ובסך הכול שלושה צמתים.

עבור גרסאות 7 ו-10 של צמתים של API BaaS, עליך להתחבר לאשכול Cassandra. אם כבר התקנת את Edge, אפשר להתחבר לאשכול Cassandra, כך שלא יהיה צורך להתקין את Cassandra כחלק מהתקנת BaaS של API.

למטה מוצגת דוגמה לקובץ תצורה שקט של התקנת BaaS של API עם 10 צמתים. אם מתקינים את הרכיבים ElasticSearch ו-API BaaS Stack באותם שלושה צמתים, צריך לערוך את הקובץ כך ש:

  • IP1 ו-IP4 מוגדרות לאותה כתובת IP
  • IP2 ו-IP5 מוגדרות לאותה כתובת IP
  • IP3 ו-IP6 מוגדרות לאותה כתובת IP

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

# 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=stackAdminPWord

# Only if you are installing Cassandra.
# Specify Cassandra data center and rack suffix.
# 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"

# Specify the Cassandra region.
REGION=dc-1

# 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.

# For a single data center, specify the same value as BAAS_CASS_LOCALDC.
BAAS_CASS_DC_LIST=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

# Defines the initial contact points for members of the BaaS cluster. 
# Specify the IP address of no more than two Stack nodes. 
BAAS_CLUSTER_SEEDS="dc-1:$IP4,dc-1:$IP5"

# 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
SMTPMAILFROM="My Company <myco@company.com>"

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

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

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

  1. מתקינים את כלי העזר apigee-setup של Edge בצומת באמצעות הליך אינטרנט או ללא חיבור לאינטרנט. למידע נוסף, אפשר לקרוא את המאמר התקנת כלי ההגדרה של 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

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

    The "-p e" option specifies to install ElasticSearch. The configuration file must be accessible or readable by the "apigee" user.

  3. (Optional) If you install ElasticSearch on a standalone node, meaning it is not installed with API BaaS Stack, then adjust the default memory option to increase the memory allocated for ElasticSearch from 4GB to 6GB:
    1. Open /opt/apigee/customer/application/elasticsearch.properties in an editor. If this file does not exist, create it.
    2. Set the setenv_elasticsearch_max_mem_size property to 6g (the default is 4g):
      setenv_elasticsearch_max_mem_size=6g
    3. שומרים את הקובץ.
    4. מריצים את הפקודה הבאה:
      /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart

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

    התקנת מחסנית 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' מציינת להתקין את מקבץ BaaS של API. קובץ התצורה צריך להיות נגיש או קריא למשתמש "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.

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

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

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

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

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

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

    usergrid-deployment_usergrid.api.url.base=http://localhost:8080

    מחליפים את 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_portal.url=http://localhost:9000

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

    לאחר העריכה של usergrid.properties ו-portal.properties:

    1. מגדירים את צומת ה-Stack:
      /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
    2. מפעילים מחדש את מקבץ BaaS:
      /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
    3. אם שינית את portal.properties, צריך להגדיר את הצומת של הפורטל:
      /opt/apigee/apigee-service/bin/apigee-service baas-portal configure
    4. מפעילים מחדש את פורטל BaaS:
      /opt/apigee/apigee-service/bin/apigee-service baas-portal restart

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

    תהליך ההצטרפות הוא תהליך היצירה של ארגון ואדמין בארגון. אחרי שיוצרים את הארגון ואת האדמין של הארגון, אפשר להתחבר לממשק המשתמש של 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/
    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.