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

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

אפשר להחזיר את Edge 4.52.01 לגרסאות העיקריות הבאות:

  • גרסה 4.52.00
  • גרסה 4.51.00

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

  1. חזרה לגרסה ראשית או לגרסה משנית קודמת. לדוגמה, מ-4.52.01 עד 4.52.00.
  2. חזרה לגרסת תיקון קודמת באותה גרסה. לדוגמה, מ-4.52.00.02 עד 4.52.00.01.

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

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

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

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

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

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

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

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

חזרה לגרסה ראשית או משנית קודמת

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

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

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

כדי לבטל את העדכון של 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. הורדה והפעלה של גרסת האתחול של הגרסה הישנה (לגרסת Apigee שאליה חוזרים) בצומת ההמתנה הישן. השלבים המדויקים עשויים להשתנות בהתאם למכשיר שבו משתמשים: התקנה מבוססת אינטרנט והתקנה אופליין. אם מפעילים את הגרסה הישנה של Apigee shoestrap, המערכת תגדיר את המאגרים של 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:
    /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 באמצעות התהליך המפורט במאמר ביטול הוצאה של צומת Postgres.

    לחלופין, אפשר להסיר את ההתקנה של 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