תהליך החזרה לגרסה קודמת 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, או משתמש שפועל ברמה הבסיסית (root).

כברירת מחדל, רכיבי Edge פועלים בתור המשתמש 'apigee'. במקרים מסוימים, ייתכן שהרצתם את דפדפן Edge. רכיבים שונים כמשתמשים שונים. לדוגמה, אם לנתב יש גישה ליציאות בעלות הרשאות, כמו אלה מתחת ל-1000, אז צריך להריץ את הנתב ברמה הבסיסית (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 הם שמות ברירת המחדל של Analytics וקבוצות צרכנים. 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 בקבוצה של ניתוח הנתונים ובקבוצות הצרכן:
    > 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. מאמתים את קבוצת ניתוח הנתונים:
    > curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

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

  14. מפעילים מחדש את שרת ניהול הקצה:
    > /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, ניתן להוציא משימוש את המאסטר הישן .

Uninstal 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 ו-msgOut שמתעדכן כשרת ה-Qpid לעבד הודעות.

כדי להחזיר רכיבים בודדים למצב קודם 4.18.01

כחלק מביצוע ההחזרה למצב הקודם (rollback), צריך להוריד את הקובץ bootrap.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. אם חוזרים למצב קודם (roll back) אחד מהרכיבים הבאים בצומת, צריך לעצור את כולם: שרת ניהול, נתב, מעבד הודעות, שרת Qpid או 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. אם ברצונך להחזיר את המונטיזציה למצב הקודם, צריך להסיר אותה מכל שרתי הניהול וההודעות צמתים של מעבד (CPU):
    > apigee-service edge-mint-gateway uninstall
  3. מסירים את הרכיב כדי לחזור למצב קודם בצומת:
    1. אם חוזרים לגרסה הקודמת של אחד מהרכיבים הבאים בצומת, מסירים את כולם: שרת ניהול, נתב, מעבד הודעות, שרת Qpid או 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. מורידים את bootrap.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. כדי להתקין את הרכיב, צריך להשתמש ב-apigee-setup:
      > /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

      לדוגמה:

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

      שים לב כיצד אתה מציין את שם הרכיב רק כאשר אתה מבצע את ההתקנה.

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