העברת שרתי Apigee

אם מעבירים רכיבים ממכונה אחת לאחרת, יכול להיות שיהיה חוסר התאמה בהגדרות אם לא מסנכרנים את כתובות ה-IP בקובצי התצורה של הרכיבים.

בקטע הזה מוסבר איך לאבחן ולתקן חוסר התאמה בהגדרות האישיות.

כתובות IP לעומת שמות מארחים

מומלץ להשתמש בכתובות IP ולא בשמות מארחים בקובצי התצורה של הרכיבים.

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

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

כשמעבירים שרתי Apigee, כדאי להביא בחשבון את ההשלכות של התרחישים הבאים על שמות המארחים וכתובות ה-IP:

תרחיש ההשפעה על העברת שרתים
שינוי בכתובת ה-IP מעדכנים את כל הקבצים הקשורים שמפנים לכתובת ה-IP המקורית.
שינוי שם המארח בלי לשנות את כתובת ה-IP אין השפעה
שינוי שם המארח עם שינוי בכתובת ה-IP כמו שינוי בכתובת ה-IP

שינוי כתובת ה-IP של צומת Cassandra

כדי לשנות את כתובת ה-IP של צומת Cassandra, מבצעים את השלבים הבאים:

להגדרות עם צומת Cassandra יחיד

  1. עורכים את /opt/apigee/customer/application/cassandra.properties במערכת שמשנים. אם הקובץ לא קיים, יוצרים אותו.
  2. משנים את הפרמטרים הבאים:
    • מגדירים את הפרמטרים conf_cassandra_seeds ו-conf_cassandra_listen_address כדי לציין את כתובת ה-IP החדשה של המערכת.
    • משנים את conf_cassandra_rpc_address כדי להשתמש בכתובת ה-IP החדשה או ב-0.0.0.0 (שמאפשרת ל-Cassandra Thrift להאזין בכל הממשקים).
  3. ‫פותחים את /opt/apigee/apigee-cassandra/conf/cassandra-topology.properties בכלי לעריכת טקסט. כתובת ה-IP הישנה והגדרת ברירת המחדל אמורות להופיע בטופס:
    192.168.56.101=dc-1:ra-1
    default=dc-1:ra-1

    שומרים את המידע הזה.

  4. עורכים את /opt/apigee/customer/application/cassandra.properties כדי לשנות את כתובת ה-IP הישנה שצוינה לכתובת ה-IP החדשה:
    conf_cassandra-topology_topology=192.168.56.103=dc-1:ra-1\ndefault=dc-1:ra-1\n

    חשוב להוסיף "\n" אחרי כתובת ה-IP, ולציין את אותן הגדרות ברירת מחדל שמצאתם בשלב 3 שלמעלה.

  5. מפעילים מחדש את Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  6. אם צריך, מתקנים גם את ZooKeeper (ראו בהמשך). אחרת, מפעילים מחדש כל רכיב בפלטפורמת Apigee, החל מ-Management Server.

במערכים עם כמה צומתי Cassandra (טבעת)

  1. אם הצומת שמשתנה הוא צומת ראשוני, עורכים את הקובץ /opt/apigee/customer/application/cassandra.properties בכל מערכת בטבעת, ומשנים את הפרמטר conf_cassandra_seeds כך שיכלול את כתובת ה-IP החדשה של המערכת ששונתה. אם הקובץ cassandra.properties לא קיים, יוצרים אותו.
  2. עורכים את /opt/apigee/customer/application/cassandra.properties במערכת שמשנים, ומשנים את הפרמטרים הבאים:
    • מגדירים את conf_cassandra_listen_address כך שישתמש בכתובת ה-IP החדשה.
    • מגדירים את conf_cassandra_rpc_address כך שישתמש בכתובת ה-IP החדשה או ב-"0.0.0.0" (מה שמאפשר ל-Cassandra Thrift להאזין בכל הממשקים).
  3. ‫פותחים את /opt/apigee/apigee-cassandra/conf/cassandra-topology.properties בכלי לעריכת טקסט. כל כתובות ה-IP של Cassandra והגדרת ברירת המחדל אמורות להופיע בטופס:
    192.168.56.101=dc-1:ra-1
    192.168.56.102=dc-1:ra-1
    192.168.56.103=dc-1:ra-1
    default=dc-1:ra-1

    שומרים את המידע הזה.

  4. עורכים את /opt/apigee/customer/application/cassandra.properties כדי לשנות את כתובת ה-IP הישנה שצוינה לכתובת ה-IP החדשה:
    conf_cassandra-topology_topology=192.168.56.101=dc-1:ra-1\n192.168.56.102=dc-1:ra-1\n192.168.56.104=dc-1:ra-1\ndefault=dc-1:ra-1\n

    חשוב להוסיף "\n" אחרי כל כתובת IP, ולהשתמש באותן הגדרות ברירת מחדל שתיעדתם בשלב 3 למעלה.

  5. מפעילים מחדש את Cassandra במערכת ששונתה. אם המערכת ששונתה היא צומת ראשוני, צריך להפעיל מחדש גם כל מערכת שהשתמשה בצומת הראשוני ששונה.
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  6. מריצים את הפקודה nodetool ring בצומת ששונה כדי לוודא שהטבעת שלמה. הכלי נמצא בכתובת /opt/apigee/apigee-cassandra/bin.
    nodetool [-u username -pw password] -h localhost ring

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

  7. מריצים את nodetool repair בצומת ששונה. חשוב לזכור שהתהליך הזה יכול להימשך זמן מה, ולכן מומלץ מאוד לא לבצע אותו בשעות השיא של התנועה ב-API.
    nodetool [-u username -pw password] -h localhost repair -pr
  8. אם צריך, מתקנים את ZooKeeper (ראו בהמשך) ואז מפעילים מחדש כל רכיב בפלטפורמת Apigee, החל משרת הניהול.

עדכון הרישומים של מאגרי המידע

  1. כדי למצוא את מזהי ה-UUID של רישומי מאגר הנתונים שמציינים את כתובת ה-IP הישנה, משתמשים בפקודות הבאות. שימו לב לפרמטרים "type" ו-"UUID":
    • curl -u ADMINEMAIL:PW "http://$MSIP:$port/v1/servers?pod=central&region=DC" | egrep -i '[type|internalip|uuid|region]'
    • curl -u ADMINEMAIL:PW "http://$MSIP:$port/v1/servers?pod=gateway&region=DC" | egrep -i '[type|internalip|uuid|region]'
    • curl -u ADMINEMAIL:PW "http://$MSIP:$port/v1/servers?pod=analytics&region=DC" | egrep -i '[type|internalip|uuid|region]'

      כאשר DC הוא השם של מרכז הנתונים. בהתקנה של מרכז נתונים יחיד, הערך הוא בדרך כלל "dc-1".

  2. רושמים את כתובות ה-IP החדשות באמצעות אחת מהפקודות הבאות. הפקודה הנדרשת תלויה בסוג הצומת שהשתנה.
    • עבור type="application-datastore":
      curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers -d \
        "Type=application-datastore&Type=audit-datastore&InternalIP=NEWIP&region=REGION&pod=central" \
        -H 'content-type: application/x-www-form-urlencoded' -X POST
    • ל-type="kms-datastore":
      curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers -d \
        "Type=kms-datastore&Type=dc-datastore&Type=keyvaluemap-datastore&Type=counter-datastore&Type=cache-datastore \
        &InternalIP=NEWIP&region=REGION&pod=GATEWAY_POD" -H 'content-type: \
        application/x-www-form-urlencoded' -X POST
    • עבור type="reportcrud-datastore":
      curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers" -d \
        "Type=reportcrud-datastore&InternalIP=NEW_IP&region=REGION&pod=analytics" \
        -H 'content-type: application/x-www-form-urlencoded' -X POST 
  3. מוחקים את הרישומים הישנים של ה-UUID של המערכת שבה כתובת ה-IP השתנתה. לכל אחד מה-UUID האלה, מפעילים את הפקודה:
    curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers/OLD_UUID" -X DELETE

שינוי כתובת ה-IP של צומת ZooKeeper

כדי לשנות את כתובת ה-IP של צומת ZooKeeper:

משנים את כתובת ה-IP ומפעילים מחדש את אנסמבל ZooKeeper (רק להגדרות של אנסמבל עם כמה צמתים)

  1. פותחים את /opt/apigee/apigee-zookeeper/conf/zoo.cfg בכלי לעריכת טקסט. כל כתובות ה-IP של ZooKeeper וההגדרה שמוגדרת כברירת מחדל אמורות להופיע בפורמט הבא:
    server.1=192.168.56.101:2888:3888
    server.2=192.168.56.102:2888:3888
    server.3=192.168.56.103:2888:3888

    שומרים את המידע הזה.

  2. בכל צומת ZooKeeper, עורכים את הקובץ /opt/apigee/customer/application/zookeeper.properties כדי להגדיר את המאפיין conf_zoo_quorum לכתובות ה-IP הנכונות. אם הקובץ לא קיים, יוצרים אותו.
    conf_zoo_quorum=server.1=192.168.56.101:2888:3888\nserver.2=192.168.56.102:2888:3888\nserver.3=192.168.56.104:2888:3888\n

    חשוב להוסיף "\n" אחרי כל כתובת IP, ולוודא שהרשומות מופיעות באותו סדר בכל צומת.

  3. מאתרים את ה-leader של אנסמבל ZooKeeper באמצעות הפקודה הבאה (מחליפים את node בכתובת ה-IP של מכונת Zookeeper):
    echo srvr | nc node 2181

    בשורת המצב בפלט אמור להופיע "leader".

  4. מפעילים מחדש את ZooKeeper אחד אחרי השני, החל מה-leader וכלה בצומת שבו כתובת ה-IP השתנתה. אם כתובות ה-IP של יותר מצומת אחד של ZooKeeper השתנו, יכול להיות שצריך להפעיל מחדש את כל הצמתים.
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
  5. משתמשים בפקודה echo שמתוארת למעלה כדי לאמת כל צומת ZooKeeper.

מודיעים לצומתי Apigee על שינוי ההגדרות

  1. בכל צומת של Router, עורכים את הקובץ /opt/apigee/customer/application/router.properties באופן הבא: אם הקובץ לא קיים, יוצרים אותו.
    • משנים את הפרמטר conf_zookeeper_connection.string כך שיכלול את כתובת ה-IP החדשה.
    • משנים את הפרמטר conf_zookeeper_zk1.host כך שיכלול את כתובת ה-IP החדשה.
  2. בכל צומת של מעבד בקשות, עורכים את הקובץ /opt/apigee/customer/application/message-processor.properties באופן הבא. אם הקובץ לא קיים, יוצרים אותו.
    • משנים את הפרמטר conf_zookeeper_connection.string כך שיכלול את כתובת ה-IP החדשה.
    • משנים את הפרמטר conf_zookeeper_zk1.host כך שיכלול את כתובת ה-IP החדשה.
  3. בצומת Management Server, עורכים את הקובץ /opt/apigee/customer/application/management-server.properties באופן הבא: אם הקובץ לא קיים, יוצרים אותו.
    • משנים את הפרמטר conf_zookeeper_connection.string כך שיכלול את כתובת ה-IP החדשה.
    • משנים את הפרמטר conf_zookeeper_zk1.host כך שיכלול את כתובת ה-IP החדשה.
  4. מפעילים מחדש את כל הרכיבים של פלטפורמת Apigee על ידי הרצת הפקודה הבאה בכל צומת:
    /opt/apigee/apigee-service/bin/apigee-all restart

שינוי כתובת ה-IP של שרת LDAP (OpenLDAP)

כדי לשנות את כתובת ה-IP של צומת OpenLDAP:

  1. בצומת Management Server, עורכים את הקובץ /opt/apigee/customer/application/management-server.properties. אם הקובץ לא קיים, יוצרים אותו.
  2. בקובץ management-server.properties, מגדירים את הפרמטר conf_security_ldap.server.host לכתובת ה-IP החדשה.
  3. מפעילים מחדש את שרת הניהול:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

שינוי כתובת ה-IP של סוגי צמתים אחרים של Apigee

כדי לשנות את כתובת ה-IP של כל אחד מסוגי הצמתים האלה (Router, ‏ מעבד בקשות, ‏ Postgres Server (לא postgresql) ו-Qpid Server (לא qpidd):

  1. השתמשו בפקודה הבאה של curl כדי לרשום את כתובת ה-IP הפנימית וכתובת ה-IP החיצונית החדשה:
    curl -u ADMINEMAIL:PW -X PUT \
      http://MSIP:8080/v1/servers/uuid -d ExternalIP=ip
    curl -u ADMINEMAIL:PW -X PUT \
      http://$MSIP:8080/v1/servers/uuid -d InternalIP=ip

    כאשר uuid הוא ה-UUID של הצומת.

במאמר קבלת מזהי UUID מוסבר איך מקבלים את ה-UUID של רכיב.