תהליך החזרה לגרסה קודמת 4.18.01

Edge for Private Cloud גרסה 4.18.01

במקרה של שגיאה במהלך עדכון ל-Edge 4.18.01, אפשר להחזיר את הרכיב שגרם לשגיאה ולנסות לבצע את העדכון שוב. לדוגמה, אם העדכון ל-Postgres 9.6 נכשל, אפשר להחזיר למצב הקודם רק את צומתי Postgres ולנסות לבצע את העדכון שוב.

יש שני תרחישים שבהם כדאי לבצע חזרה למצב הקודם:

  1. חזרה לגרסה ישנה יותר. לדוגמה מ-4.18.01 עד 4.17.01.
  2. חזרה לגרסה קודמת באותה גרסה.

כדי לבצע חזרה למצב קודם בשני התרחישים, משתמשים בהליך הבא.

מי יכול לבצע את ההחזרה למצב הקודם

המשתמש שמבצע את החזרה למצב הקודם צריך להיות זהה למשתמש שעדכן במקור את Edge, או משתמש שפועל בתור בסיס.

כברירת מחדל, רכיבי Edge פועלים בתור ה-API של המשתמש. במקרים מסוימים, יכול להיות שרכיבי Edge יופעלו כמשתמשים שונים. לדוגמה, אם הנתב צריך לגשת ליציאות עם הרשאות, כמו יציאות מתחת ל-1,000, צריך להפעיל אותו בתור Root או כמשתמש עם גישה ליציאות האלה. לחלופין, אפשר להפעיל רכיב אחד כמשתמש אחד ורכיב אחר כמשתמש אחר.

אילו רכיבים אפשר להחזיר למצב הקודם

עליך להיות מודע לתנאים הבאים בעת ביצוע החזרה למצב קודם:

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

    חמשת הרכיבים שחולקים את הקוד הם:

    • שרת ניהול
    • נתב
    • מעבד בקשות
    • שרת Qpid
    • שרת Postgres
  • אם העדכון הוא מ-Edge 4.16.01, אין להחזיר את Cassandra לגרסה קודמת. הגרסה הזו של Edge כוללת גרסה מעודכנת של Cassandra. אם מבטלים רכיבים כלשהם, צריך להשאיר את Cassandra בגרסה 4.18.01.

החזרה לגרסה קודמת 4.18.01

בקטע הזה מוסבר איך להחזיר את Edge 4.18.01 לגרסה קודמת. הקטע הזה מחולק לשני חלקים:

  • ביטול העדכון של Postgres
    החלק האחרון בכל תהליך עדכון הוא עדכון צומתי Postgres לגרסה 9.6. אם העדכון נכשל, תוכלו להשתמש בתהליך הבא כדי לבטל את העדכון.
  • החזרת כל רכיבי Edge האחרים לגרסה קודמת
    התהליך הזה מאפשר להחזיר לגרסה קודמת כל רכיב Edge אחר.

כדי לבטל את העדכון של Postgres 9.6

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

  • קידום של צומת המתנה החדש כדי להפוך למאסטר של Postgres. המאסטר החדש של Postgres יהיה זהה לגרסה של התקנת Edge הקודמת.
  • הגדרת הצומת הישן של מצב המתנה כצומת המתנה של הראשי החדש. צומת ההמתנה הישן יהיה זהה לגרסה של התקנת Edge הקודמת.
  • רושמים את הצמתים הראשיים והצמתים החדשים בהמתנה בקבוצות של ניתוח הנתונים והצרכנים.

בסיום החזרה, לא יהיה צורך יותר בצומת הראשי הישן. לאחר מכן אפשר לבטל את השימוש של הצומת הראשי הישן.

  1. צריך לוודא שצומת Postgres במצב המתנה פועל:
    > /opt/apigee/apigee-service/bin/apigee-all status

    אם Postgres לא פועל, מפעילים אותו:

    > /opt/apigee/apigee-service/bin/apigee-all start
  2. צריך לוודא ש-Postgres הופסק בצומת הראשי הישן ובצומת הישן במצב המתנה:
    > /opt/apigee/apigee-service/bin/apigee-all status

    אם Postgres פועל, מפסיקים את התהליך:

    > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop

  3. אם מותקן, אפשר להפעיל את Qpid בצומת ההמתנה הישן:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
  4. מקדמים את צומת ההמתנה החדש בתור המאסטר של Postgres:
    1. לקדם את צומת ההמתנה החדש כך שיהיה המאסטר החדש:
      > apigee-service apigee-postgresql promote-standby-to-master new_standby_IP

      אם מתבקשים, מזינים את הסיסמה של Postgres עבור המשתמש 'apigee'. ברירת המחדל היא "postgres".

    2. עורכים את קובץ התצורה שבו השתמשתם כדי להתקין את הגרסה הנוכחית של Edge כדי לציין את הפרטים הבאים:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    3. מגדירים את המאסטר החדש:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  5. יוצרים מחדש את צומת ההמתנה הישן:
    1. עורכים את קובץ התצורה שבו השתמשתם כדי להתקין את הגרסה הנוכחית של Edge כדי לציין את הפרטים הבאים:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    2. הסרה של ספריית הנתונים מצומת ההמתנה הישן:
      > cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
    3. הגדרה מחדש של צומת ההמתנה הישן כצומת בהמתנה של המאסטר החדש:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    4. יש לוודא ש-Postgres פועל בצומת ההמתנה הישן:
      > /opt/apigee/apigee-service/bin/apigee-all status

      אם הוא לא פועל, צריך להפעיל אותו:

      > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
  6. מוודאים שצומת ההמתנה החדש נוסף על ידי הצגת הקובץ /opt/apigee/apigee-postgresql/conf/pg_hba.conf במאסטר החדש.
  7. כדי להציג את המידע העדכני על ניתוח נתונים וקבוצת צרכנים, מריצים את הפקודה הבאה בשרת הניהול:
    > curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    הפקודה הזו מחזירה את השם של קבוצת ניתוח הנתונים בשדה name, ואת השם של קבוצת הצרכנים בשדה name מתחת ל-consumer-groups. הוא גם מחזיר את מזהי ה-UUID של הצמתים הראשיים והצמתים במצב המתנה הישנים של Postgres בשדה postgres-server ובשדה datastores. הפלט אמור להופיע בפורמט הבא:

    {
      "name" : "axgroup-001",
      "properties" : {
      },
      "scopes" : [ "VALIDATE~test", "sgilson~prod" ],
      "uuids" : {
        "qpid-server" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ],
        "postgres-server" : [
          "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256"
        ]
      },
      "consumer-groups" : [ {
        "name" : "consumer-group-001",
        "consumers" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ],
        "datastores" :
          [ "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256" ],
          "properties" : {     }
        }
      ],
      "data-processors" : {
      }
    }

  8. כדי לקבל את כתובת ה-UUID של המאסטר הישן, מריצים את פקודת ה-cURL הבאה בצומת הראשי הישן:
    > curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self

    ה-UUID של הצומת אמור להופיע בסוף הפלט, באופן הבא:

    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"

  9. חוזרים על השלב הקודם כדי לקבל את כתובות ה-IP של צומת ההמתנה הישן ושל המאסטר החדש.
  10. הסרה של צמתים רגילים וצמתים ישנים של מצב המתנה מקבוצת הצרכנים:
    > curl -u sysAdminEmail:password -X DELETE
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores/masterUUID,standbyUUID" -v

    כאשר axgroup-001 ו-consumer-group-001 הם שמות ברירת המחדל של קבוצות ניתוח הנתונים והצרכנים. masterUUID,standbyUUID מוצגים באותו סדר שבו הם הופיעו למעלה כשעיינת במידע הנוכחי על ניתוח הנתונים ועל קבוצות הצרכנים שלמעלה. יכול להיות שתצטרכו להגדיר אותם בתור standbyUUID,masterUUID.

    המאפיין datastores של consumer-groups אמור להיות ריק עכשיו.

  11. מסירים מקבוצת ניתוח הנתונים את הצמתים הראשיים והצמתים הקודמים במצב המתנה:
    > curl -u sysAdminEmail:password -X DELETE
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v

    המאפיין postgres-server תחת uuids אמור להיות ריק עכשיו.

  12. רישום צמתים חדשים של PG של PG ושל מצב המתנה בקבוצות של ניתוח הנתונים והצרכנים:
    > curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d ''
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v
    > curl -u sysAdminEmail:password -X POST -H "Content-Type:application/json" -d ''
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores?uuid=masterUUID,standbyUUID" -v
  13. מאמתים את הקבוצה ב-Analytics:
    > curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

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

  14. מפעילים מחדש את השרת לניהול Edge:
    > /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  15. מפעילים מחדש את כל שרתי Qpid:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
  16. מפעילים מחדש את כל שרתי Postgres:
    > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  17. מאמתים את סטטוס השכפול על ידי הנפקת הסקריפטים הבאים בשני השרתים. המערכת צריכה להציג תוצאות זהות בשני השרתים כדי להבטיח שהשכפול יתבצע בהצלחה:

    במאסטר החדש, מריצים את:

    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

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

    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    מוודאים שהכתובת במצב המתנה.

  18. חוזרים על השלב הקודם אחרי שמבצעים כמה בקשות API, כדי לוודא שהצמתים מסונכרנים.
  19. מבטלים את השימוש במאסטר הישן של Postgres באמצעות התהליך של עדכון Apigee Edge בגרסה 4.16.01/4.16.05 עד 4.17.09.

    לחלופין, אפשר להסיר את Qpid מהמאסטר הישן ולהתקין את Qpid בצומת הראשי החדש, כפי שמתואר בהמשך. אחרי הסרת ה-Qpid אפשר לבטל את השימוש של הצומת הראשי הישן.

צריך לבטל Qpid מהמאסטר הישן ולהתקין Qpid במאסטר החדש

כדי להסיר את Qpid מהמאסטר הישן ולהתקין אותו במאסטר החדש:

  1. מריצים את הפקודה הבאה בכל מעבדי ההודעות כדי לחסום את הגישה של מעבדי הודעות ליציאת Qpid 5672 במאסטר הישן:
    > iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
  2. מריצים את הפקודה הבאה כדי לוודא שתור ההודעות של Qpid ריק. אי אפשר להסיר את Qpid בלי לסיים את הטיפול בכל ההודעות הממתינות:
    > qpid-stat -q

    פקודה זו מציגה טבלה שמכילה ספירה של msg, msgIn, and msgOut. כל ההודעות יעובדו כאשר msg=0 וגם msgIn=msgOut.

  3. קביעת ה-UUID של שרת ה-Qpid במאסטר הישן על ידי הרצת הפקודה הבאה במאסטר הישן. שומרים את המידע הזה למועד מאוחר יותר בתהליך:
    > curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
  4. הפסקת Qpid במאסטר הישן:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  5. הסרה של שרת Qpid:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall
  6. מסירים את שרת ה-Qpid הישן מקבוצת ניתוח הנתונים ומקבוצות הצרכנים:
    > curl -u sysAdminEmail:password -X DELETE -H "Content-Type: application/json" -d ''
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers/qpid_UUID" -v
    > curl -u sysAdminEmail:password -X DELETE
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v
  7. מסירים את שרת ה-Qpid הישן מ-Zookeeper:
    > curl -u sysAdminEmail:password -X DELETE
      http://ms_IP:8080/v1/servers/qpid_UUID
  8. מתקינים Qpid במאסטר החדש:
    > /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
  9. קביעת ה-UUID של שרת ה-Qpid במאסטר החדש על ידי הרצת הפקודה הבאה במאסטר החדש. שומרים את המידע הזה למועד מאוחר יותר בתהליך:
    > curl -u sysAdminEmail:password
      http://node_IP::8083/v1/servers/self
  10. רושמים את שרת ה-Qpid החדש בקבוצות ניתוח הנתונים וקבוצות הצרכנים:
    > curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d ''
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v
    > curl -u sysAdminEmail:password -X POST -H "Content-Type:application/json" -d ''
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers?uuid=qpid_UUID" -v
  11. מפעילים מחדש את כל מעבדים ההודעות:
    > /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  12. כדי לבדוק אם נוצרו תורי תור, מריצים את הפקודה הבאה בשרת Qpid החדש:
    > qpid-stat -q

    מוודאים שהערכים msg, msgIn, and msgOut מתעדכנות בזמן ששרת ה-Qpid מעבד הודעות.

כדי להחזיר רכיבים נפרדים לגרסה 4.18.01

כחלק מההחזרה למצב הקודם, צריך להוריד את הקובץ shoestrap.sh לגרסה הנוכחית של Edge:

  • כדי לחזור לגרסה 4.17.09, יש להוריד את bootstrap_4.17.09.sh
  • כדי לחזור לגרסה 4.17.05, יש להוריד את bootstrap_4.17.05.sh
  • כדי לחזור לגרסה 4.17.01, יש להוריד את bootstrap_4.17.01.sh
  • כדי לחזור לגרסה 4.16.09, יש להוריד את bootstrap_4.16.09.sh
  • כדי לחזור לגרסה 4.16.05, יש להוריד את bootstrap_4.16.05.sh
  • כדי לחזור לגרסה 4.16.01, יש להוריד את bootstrap.sh

עבור כל צומת שמארח רכיב להחזרה למצב הקודם:

  1. עוצרים את הרכיב כדי להחזיר אותו למצב הקודם:
    1. אם מחזירים לגרסה הקודמת אחד מהרכיבים הבאים בצומת, צריך להפסיק את כולם: שרת ניהול, נתב, מעבד הודעות, Qpid Server או שרת Postgres:
      • > apigee-service edge-management-server stop
      • > apigee-service edge-router stop
      • > apigee-service edge-message-processor stop
      • > apigee-service edge-qpid-server stop
      • > apigee-service edge-postgres-server stop
    2. אם מחזירים לגרסה הקודמת רכיב אחר בצומת, צריך להפסיק רק את הרכיב הזה:
      • > apigee-service comp stop
  2. אם רוצים להחזיר את המונטיזציה, צריך להסיר אותה מכל הצמתים של שרת הניהול ומעבד ההודעות:
    > apigee-service edge-mint-gateway uninstall
  3. מסירים את הרכיב כדי לחזור למצב קודם בצומת:
    1. אם מחזירים לגרסה הקודמת חלק מהרכיבים הבאים בצומת, צריך להסיר את כולם: שרת ניהול, נתב, מעבד הודעות, Qpid Server או Postgres:
      > apigee-service edge-gateway uninstall
    2. אם מחזירים לגרסה הקודמת רכיב אחר בצומת, צריך להסיר רק את הרכיב הזה:
      > apigee-service comp uninstall
    3. אם רוצים להחזיר את הנתב למצב הקודם, צריך למחוק את התוכן של /opt/nginx/conf.d:
      > cd /opt/nginx/conf.d
      > rm -rf *
  4. כדי להחזיר את הרכיב לגרסה קודמת:
    1. מסירים את גרסה 4.18.01 של apigee-setup:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
    2. מורידים את shoestrap.sh לגרסה הרצויה: לדוגמה, בגרסה 4.16.09:
      > curl https://software.apigee.com/bootstrap_4.16.09.sh -o /tmp/bootstrap_4.16.09.sh 
    3. מתקינים את תוכנת העזר ואת יחסי התלות של apigee-service, 4.16.01, 4.16.05 או 4.16.09. לדוגמה, בגרסה 4.16.09:
      > sudo bash /tmp/bootstrap_4.16.09.sh apigeeuser=uName apigeepassword=pWord

      uName ו-pWord הם שם המשתמש והסיסמה שקיבלת מ-Apigee. אם משמיטים את הערך pWord, תופיע בקשה להזין אותו.

    4. מתקינים את apigee-setup:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
    5. מתקינים את הגרסה הרצויה של הרכיב:
      > /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

      כאשר comp הוא הרכיב שיש להתקין ו-configFile הוא קובץ התצורה של הגרסה הרצויה.

    6. אם אתם מחזירים את Qpid לאחור, כדאי לוודא שקובצי iptable שוטפים:
      > sudo iptables -F
  5. כדי להחזיר את הרכיב לגרסה קודמת ספציפית של גרסה 4.18.01:
    1. הורדת הגרסה הספציפית של הרכיב:
      > /opt/apigee/apigee-service/bin/apigee-service comp-version install

      כאשר comp-version הוא הרכיב והגרסה שיש להתקין. לדוגמה:

      > /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.17.09-0.0.3749 install

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

      > yum --showduplicates list comp

      לדוגמה:

      > yum --showduplicates list edge-ui
    2. כדי להתקין את הרכיב:
      > /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
      , משתמשים ב-apigee-setup

      לדוגמה:

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

      חשוב לציין את שם הרכיב רק במהלך ההתקנה.

אם תיתקלו בבעיות במהלך החזרה לגרסה קודמת, יש לפנות לתמיכה של Apigee Edge.