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

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

אפשר להחזיר את Edge 4.51.00 לגרסאות ההפצה הבאות של התכונות:

  • גרסה 4.50.00
  • גרסה 4.19.06

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

  1. חזרה לגרסת פיצ'רים קודמת. לדוגמה, מגרסה 4.51.00 לגרסה 4.50.00.
  2. חזרה לגרסת עדכון קודמת באותועדכון. לדוגמה, מגרסה 4.50.00.02 לגרסה 4.50.00.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)

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

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

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

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

    • כדי לחזור לגרסה 4.50.00, צריך להוריד את bootstrap_4.50.00.sh:
      curl https://software.apigee.com/bootstrap_4.50.00.sh -o /tmp/bootstrap_4.50.00.sh 
    • כדי לחזור לגרסה 4.19.06, מורידים את bootstrap_4.19.06.sh:
      curl https://software.apigee.com/bootstrap_4.19.01.sh -o /tmp/bootstrap_4.19.01.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. אם אתם מחזירים את המונטיזציה לגרסה קודמת, צריך להסיר אותה מכל הצמתים של שרת הניהול ומעבד הבקשות:
    /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 Router לגרסה קודמת, צריך למחוק את התוכן של הקובץ /opt/nginx/conf.d בנוסף להסרת ההתקנה של קבוצת הרכיבים edge-gateway:
      cd /opt/nginx/conf.d
      rm -rf *
  5. מסירים את גרסה 4.51.00 של apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
  6. מתקינים את גרסה 4.19.06 או 4.50.00 של כלי השירות apigee-service ואת יחסי התלות שלו. בדוגמה הבאה מתקינים את גרסה 4.50.00 של apigee-service:
    sudo bash /tmp/bootstrap_4.50.00.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 לגרסה קודמת, צריך לנקות את iptables:
    sudo iptables -F
  10. חוזרים על התהליך הזה בכל צומת שמארח את הרכיב שאתם מחזירים לגרסה קודמת.

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

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

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

    כאשר component_version הוא הרכיב וגרסת העדכון שצריך להתקין. לדוגמה:

    /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.18.05-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. חוזרים על התהליך הזה בכל צומת שמארח את הרכיב שאתם מחזירים לגרסה קודמת.

ביטול העדכון של Postgres 10.17

אם שדרגתם לגרסה 4.51.00 מגרסה 4.19.06 או 4.50.00, אתם צריכים להחזיר את עדכון 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. אם כבר שדרגתם את הצומת הישן במצב המתנה לגרסה החדשה יותר, קודם צריך לשדרג לאחור את תוכנת Apigee בצומת הישן במצב המתנה. אם הגרסה הישנה עדיין נמצאת בצומת הגיבוי הישן, אפשר לדלג על השלב הזה ולהמשיך לשלב 6.
    1. עוצרים את Postgres בצומת ההמתנה הישן:
      apigee-service apigee-postgresql stop
      apigee-service edge-postgres-server stop
    2. מסירים את Postgres מצומת הגיבוי הישן:
      apigee-service apigee-postgresql uninstall
      apigee-service edge-postgres-server uninstall
    3. מוחקים את ספריית הנתונים של Postgres מצומת הגיבוי הישן:
      cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
    4. מורידים ומריצים את ה-bootstrap של הגרסה הישנה (של גרסת Apigee שאליה חוזרים) בצומת ההמתנה הישן. השלבים המדויקים עשויים להשתנות בהתאם לשימוש בהתקנה מבוססת-אינטרנט או בהתקנה אופליין. אם מריצים את גרסת האתחול הישנה של Apigee, מאגרי ה-yum יוגדרו עם נתוני הגרסה הישנה של Apigee.
    5. מגדירים את רכיבי Postgres בצומת ההמתנה הישן:
      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile
    6. בודקים ומוודאים שרכיבי Postgres בצומת ההמתנה הישן חזרו לגרסה הישנה:
      apigee-service apigee-postgresql version
      apigee-service edge-postgres-server version
  6. בונים מחדש את הצומת הישן במצב המתנה:
    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

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

      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
  7. מוודאים שצומת ההמתנה החדש נוסף על ידי הצגת הקובץ /opt/apigee/apigee-postgresql/conf/pg_hba.conf במאסטר החדש.
  8. כדי להציג את המידע הנוכחי על קבוצת הצרכנים ועל ניתוח הנתונים, מריצים את הפקודה הבאה בשרת הניהול:
    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" : {
      }
    }
  9. משיגים את כתובת ה-UUID של המאסטר הישן על ידי הרצת הפקודה הבאה של curl בצומת המאסטר הישן:
    curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self

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

    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
  10. חוזרים על השלב הקודם כדי לקבל את כתובות ה-IP של הצומת הישן במצב המתנה ושל הצומת הראשי החדש.
  11. מסירים את הצמתים הישנים של המאסטר וההמתנה מקבוצת הצרכנים:
    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 אמור להיות ריק עכשיו.

  12. מסירים את הצמתים הישנים של המאסטר וההמתנה מקבוצת הניתוח:
    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 אמור להיות ריק עכשיו.

  13. רושמים צומתי 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
  14. מאמתים את קבוצת הניתוח:
    curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

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

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

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

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

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

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

    מוודאים שזהו הגיבוי.

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

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

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

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

  1. עצירת Apigee:
    apigee-all stop
  2. הפסקת mTLS:
    apigee-service apigee-mtls uninstall
  3. התקנה מחדש של mTLS:
    apigee-service apigee-mtls install
    apigee-service apigee-mtls setup -f /opt/silent.conf