החזרת Apigee Edge 4.19.01 לגרסה קודמת

Edge for Private Cloud גרסה 4.19.01

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

אפשר לחזור לגרסה הקודמת של Edge 4.19.01 לגרסאות הבאות של גרסת התכונה:

  • גרסה 4.18.05
  • גרסה 4.18.01
  • גרסה 4.17.09*

* כדי לחזור לגרסה 4.19.01 עד 4.17.09, צריך להחזיר Postgres בנוסף להחזרת הרכיבים בכל צומת. אם חוזרים לגרסה 4.18.01 או 4.18.05, אין צורך להחזיר את Postgres כפי השדרוג התהליך לא כולל עדכון Postgres.

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

  1. חזרה לגרסת תכונה קודמת. לדוגמה מ- 4.19.01 עד 4.18.05.
  2. חזרה לגרסת עדכון קודמת באותה גרסה. עבור לדוגמה, מ-4.19.01.02 עד 4.19.01.01.

אפשר לקרוא מידע נוסף בגרסת Apigee Edge התהליך.

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

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

כברירת מחדל, רכיבי Edge פועלים בתור המשתמש 'apigee'. במקרים מסוימים, ייתכן שהרצתם את דפדפן Edge. רכיבים שונים כמשתמשים שונים. לדוגמה, אם לנתב יש גישה ליציאות בעלות הרשאות, כמו אלה מתחת ל-1000, אז צריך להריץ את הנתב ברמה הבסיסית (root) או כמשתמש עם גישה יציאות. לחלופין, תוכלו להריץ רכיב אחד כמשתמש אחד ורכיב אחר כמשתמש אחר.

רכיבים עם קוד משותף

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

  • edge-management-server (שרת ניהול)
  • edge-message-processor (מעבד הודעות)
  • edge-router (נתב)
  • edge-postgres-server (שרת Postgres)
  • edge-qpid-server (שרת Qpid)

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

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

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

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

  1. מורידים את הקובץ bootstrap.sh של הגרסה שאליה רוצים להעביר את המכשיר. חזרה:

    • כדי לחזור לגרסה 4.18.05, צריך להוריד את bootstrap_4.18.05.sh:
      curl https://software.apigee.com/bootstrap_4.18.05.sh -o /tmp/bootstrap_4.18.05.sh 
    • כדי לחזור לגרסה 4.18.01, צריך להוריד את bootstrap_4.18.01.sh:
      curl https://software.apigee.com/bootstrap_4.18.01.sh -o /tmp/bootstrap_4.18.01.sh 
    • כדי לחזור לגרסה 4.17.09, צריך להוריד את bootstrap_4.17.09.sh:
      curl https://software.apigee.com/bootstrap_4.17.09.sh -o /tmp/bootstrap_4.17.09.sh 
  2. עוצרים את הרכיב כדי לחזור למצב קודם:
    1. כדי להחזיר גרסה קודמת של אחד מהרכיבים עם קוד משותף צריך לעצור את כולם, כפי שאפשר לראות בדוגמה הבאה:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server stop
      /opt/apigee/apigee-service/bin/apigee-service edge-router stop
      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor stop
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    2. כדי להחזיר רכיב אחר בצומת, צריך לעצור רק את הרכיב הזה:
      • /opt/apigee/apigee-service/bin/apigee-service component stop
  3. אם ברצונך להחזיר את המונטיזציה למצב הקודם, צריך להסיר אותה מכל שרתי הניהול וההודעות צמתים של מעבד (CPU):
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
  4. מסירים את הרכיב כדי לחזור למצב קודם בצומת:
    1. כדי להחזיר גרסה קודמת של אחד מהרכיבים עם קוד משותף עליך להסיר את כולם על ידי הסרת הרכיב edge-gateway קבוצה מסוימת, כפי שאפשר לראות בדוגמה הבאה:
      /opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
    2. כדי להחזיר רכיב אחר לצומת, מסירים את הרכיב הזה בלבד, אפשר לראות את הדוגמה הבאה:
      /opt/apigee/apigee-service/bin/apigee-service component uninstall

      כאשר component הוא שם הרכיב.

    3. כדי להחזיר את נתב Edge למצב הקודם, עליך למחוק את התוכן של קובץ /opt/nginx/conf.d בנוסף להסרת ההתקנה של קבוצת רכיבים edge-gateway:
      cd /opt/nginx/conf.d
      rm -rf *
  5. מסירים את גרסה 4.19.01 של apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
  6. מתקינים את הגרסה 4.18.05, 4.18.01 או 4.17.09 של apigee-service ועל יחסי התלות שלה. בדוגמה הבאה מתקינה את גרסה 4.17.09 של apigee-service:
    sudo bash /tmp/bootstrap_4.17.09.sh apigeeuser=uName apigeepassword=pWord

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

    אם מופיעה הודעת שגיאה, חשוב לוודא שהורדתם את הקובץ bootstrap.sh בשלב הזה 1.

  7. התקנת apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
  8. מתקינים את הגרסה הישנה יותר של הרכיב:
    /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

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

  9. אם מבצעים החזרה של Qpid לגרסה קודמת, יש לעדכן את מכשירי ה-IPtable:
    sudo iptables -F
  10. חוזרים על התהליך הזה לכל צומת שמארח את הרכיב שחוזרים לגרסה הקודמת.

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

חזרה לגרסת עדכון קודמת

כדי להחזיר רכיב לגרסה קודמת של גרסה מסוימת, צריך לבצע את הפעולות הבאות בכל צומת שמארח את הרכיב:

  1. הורדת הגרסה הספציפית של הרכיב:
    /opt/apigee/apigee-service/bin/apigee-service component_version install

    כאשר component_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

    שימו לב שאתם מציינים רק את שם הרכיב כשמתקינים אותו, ולא את הגרסה.

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

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

החזרת העדכון לגרסה 9.6 של Postgres

אם שדרגתם ל-4.19.01 מגרסה 4.17.09, תצטרכו להחזיר את מתבצע עדכון Postgres בנוסף לרכיבי Edge.

כדי להחזיר את עדכון 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, אפשר להוציא משימוש מצומת ראשי ישן.

מסירים את ה-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 מעבד הודעות.

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