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

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

אפשר לחזור לגרסאות הבאות של גרסאות ה-Feature Release של Edge 4.51.00:

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

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

  1. חזרה לגרסה קודמת של Feature Release. לדוגמה, מ-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 Server)
  • 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 בהגדרה של master-standby:

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

    הפקודה הזו מחזירה את שם קבוצת Analytics בשדה name ואת שם קבוצת הצרכנים בשדה name שמתחת ל-consumer-groups. הפונקציה מחזירה גם את מזהי ה-UUID של צומת המאסטר וצומת ה-standby הישנים של 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. מסירים את צמת ה-master ואת צומת ה-standby הישנים מקבוצת הצרכנים:
    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 master ו-standby בקבוצות הניתוח והצרכנים:
    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 לפי התהליך שמתואר במאמר עדכון 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