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

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

לרכיבי 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 לגרסה קודמת, יש לעדכן את מכשירי ה-IPtable:
    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. חוזרים על התהליך הזה לכל צומת שמארח את הרכיב שחוזרים לגרסה הקודמת.

החזרה לגרסה 10.17 של Postgres

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

כדי לבצע ביטול חזרה של עדכון Postgres כשמעדכנים את Postgres בהגדרה של master-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. הגדרת המאסטר החדש:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  5. אם כבר שדרגתם את צומת ה-standby הישן לגרסה החדשה, תחילה עליכם לבצע הורדה לאחור של תוכנת Apigee בצומת ה-standby הישן. אם הגרסה הישנה עדיין מותקנת במכשיר של מצב המתנה, אפשר לדלג על השלב הזה ולהמשיך לשלב 6.
    1. עצירת הודעות אימייל שחוזרות על עצמן בצומת ההמתנה הישן:
      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. מורידים ומפעילים את הגרסה הישנה bootrap (בגרסת Apigee שאתם מעבירים) חזרה אל) בצומת הישן של מצב המתנה. השלבים המדויקים עשויים להשתנות בהתאם לשימוש, התקנה מבוססת אינטרנט או אופליין. הרצת הגרסה הישנה יותר של Apigee bootrap להגדיר את מאגרי 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 של צומת המאסטר ושל צומת ה-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. הסרת צמתים ראשיים ומצב המתנה ישנים מקבוצת הצרכנים:
    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 של צמת ה-master החדש וצומת ה-standby החדש אמורים להופיע בקבוצת הניתוח ובקבוצת הצרכנים.

  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