חזרה למצב קודם של Apigee Edge 4.52.02

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

אפשר לחזור לגרסה הקודמת של Edge 4.52.02 לגרסאות הבאות של גרסאות ראשיות:

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

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

חזרה לגרסה שיקולים מיוחדים לגבי תוכנות
4.52.01 Cassandra
4.52.00 Cassandra, ‏ Zookeeper, ‏ Qpid
4.51.00 Cassandra, ‏ Zookeeper, ‏ Qpid, ‏ Postgres

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

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

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

סדר הביטול לאחור

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

סדר אופרטיבי כללי לדחיפה לאחור ב-Private Cloud 4.52.02 ייראה כך:

  1. ביטול Rollback של Postgres,‏ Qpid ורכיבים אחרים שקשורים לניתוח נתונים
  2. נתבים ומעבדי הודעות להחזרה למצב קודם
  3. Rollback Cassandra, ‏ Zookeeper
  4. שרת ניהול החזרה לאחור

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

  1. החזרה לאחור של כל ה-RMPs אחד אחרי השני
  2. ביטול טרנזקציות של כל האשכולות של Cassandra באמצעות גיבויים
  3. החזרה לאחור של צמתים של שרת Edge Management אחד אחרי השני

מי יכול לבצע החזרה לאחור

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

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

ביטול שינויים ב-Cassandra

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

שיטות לביטול שינויים

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

אפשר לבצע את התהליך הזה אם יש לכם לפחות מרכז נתונים אחד שפועל באופן מלא באשכול, שעדיין פועל בגרסה הישנה יותר של Cassandra‏ (Cassandra 2.1.22). אם שדרגתם את כל האשכולות של Cassandra ואתם רוצים לבצע חזרה לאחור, עליכם לפעול לפי השלבים המפורטים במאמר מחיקה ושחזור של גיבוי או קובץ snapshot של מכונה וירטואלית.

שלבים להחזרת השינויים

  1. מתחילים מהצומת שרוצים לבצע לו חזרה לאחור:
    • מפסיקים את Cassandra בצומת:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra stop
    • מסירים את תוכנת Cassandra מהצומת:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra uninstall
    • מסירים את ספריית הנתונים מהצומת:
      rm -rf /opt/apigee/data/apigee-cassandra
    • מורידים ומפעילים את קובץ ה-bootstrap של הגרסה הישנה של Edge for Private Cloud שאליה רוצים לחזור אחורה.

    דוגמה: כדי לבצע חזרה לגרסה 4.52.01,

    • מורידים את קובץ ה-bootstrap של גרסת 4.52.01:
      curl https://software.apigee.com/bootstrap_4.52.01.sh -o /tmp/bootstrap_4.52.01.sh -u ‘uName:pWord’
    • מריצים את ה-bootstrap של גרסת 4.52.01:
      sudo bash /tmp/bootstrap_4.52.01.sh apigeeuser=uName apigeepassword=pWord

    • מגדירים את Cassandra בצומת:
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
    • מריצים את ה-rebuild בצומת על ידי ציון השם של מרכז הנתונים הפונקציונלי:
      /opt/apigee/apigee-cassandra/bin/nodetool rebuild -h <node-IP> <functional-dc>
    • חוזרים על השלבים שלמעלה בכל צומת שרוצים לבצע בו חזרה לאחור, אחד אחרי השני.
  2. אחרי שמחזירים את כל הצמתים לאחור ובונים אותם מחדש:
    • מריצים את ההגדרה של כל צומת של שרת ניהול. מוודאים ששרת הניהול הוא מהגרסה שהוחזרה לאחור. אם לא, צריך לבצע גם חזרה לאחור בשרת הניהול.
    • עוצרים את שרת הניהול:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server stop
    • אם אתם משתמשים באפשרות המונטיזציה, צריך גם להסיר את המונטיזציה:
      /opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
    • מסירים את שרת הניהול:
      /opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
    • מורידים ומריצים את ה-bootstrap של הגרסה הישנה יותר. לדוגמה, כדי להוריד ולהריץ את ה-bootstrap של גרסה 4.52.01:
      curl https://software.apigee.com/bootstrap_4.52.01.sh -o /tmp/bootstrap_4.52.01.sh -u ‘uName:pWord’
      sudo bash /tmp/bootstrap_4.52.01.sh apigeeuser=uName apigeepassword=pWord
    • מריצים את ההגדרה של צומת אחד של שרת ניהול:
      /opt/apigee/apigee-setup/bin/setup.sh -p mt -f configFile

אופטימיזציה אחרי בנייה מחדש

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

דוגמה: נניח שיש לכם שישה צמתים של Cassandra במרכז הנתונים המקומי. כברירת מחדל, גורם השכפול של Apigee הוא שלוש, כך שכל צומת מכיל 50% מהנתונים. במקרה כזה, אפשר לבנות מחדש את הצמתים 1 ו-4 לפי ההליך שמתואר למעלה. בצמתים 2, 3, 5 ו-6, פועלים לפי השלבים הבאים כדי לשחזר את הגיבוי ולהריץ תיקון.

  1. פועלים לפי התהליך עד שלב שש כפי שמתואר במסמך כדי ליצור מחדש את הרפליקות במרכז הנתונים המקומי.
  2. בשאר הצמתים, מבצעים את השלבים הבאים בכל צומת בנפרד.
    • משחזרים את הגיבוי שצילמתם בצומת הזה (הערה: סביר להניח שהגיבוי הזה יכלול נתונים לא עדכניים, כי הוא בוצע לפני תחילת השדרוג של Cassandra):
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restore backup_file
    • אם יש לכם קובץ snapshot של המכונה הווירטואלית של הצומת, תוכלו לשחזר את קובץ ה-snapshot במקום לשחזר את הגיבוי של Cassandra.
    • אחרי שחזור הגיבוי, מפעילים את שירות Cassandra בצומת:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra start
    • מבצעים תיקון בצומת כדי שניתן יהיה להעביר את הנתונים העדכניים ביותר בסטרימינג ממרכז נתונים קיים:
      /opt/apigee/apigee-cassandra/bin/nodetool -h <node-IP> repair -dc <local-dc-name>
    • חוזרים על שלבים 3 עד 6 בכל צומת שרוצים לתקן.

מחיקה ושחזור של קובץ snapshot של גיבוי/מכונה וירטואלית

זוהי האפשרות היחידה אם שדרגתם את כל האשכולות של Cassandra ואתם רוצים לבצע חזרה לאחור.

בנוסף, הגיבויים של Apigee הם ספציפיים לצומת. אי אפשר לשחזר גיבוי שנוצר בצומת אחד בצומת אחר. הגיבויים של Cassandra כוללים מידע על המטא-נתונים של הצמתים (כמו כתובת ה-IP, המיקום ב-ring וכו').

  1. מתחילים עם צומת אחד של Cassandra באשכול:
    • מפסיקים את שירות Cassandra בצומת:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra stop
    • מסירים את תוכנת Cassandra מהצומת:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra uninstall
    • מסירים את ספריית הנתונים מהצומת:
      rm -rf /opt/apigee/data/apigee-cassandra
    • מורידים ומפעילים את ה-bootstrap של הגרסה הישנה של Edge for Private Cloud שאליה רוצים לחזור אחורה.

    דוגמה: כדי לבצע חזרה לגרסה 4.52.01

    • מורידים את קובץ ה-bootstrap של גרסת 4.52.01:
      curl https://software.apigee.com/bootstrap_4.52.01.sh -o /tmp/bootstrap_4.52.01.sh -u ‘uName:pWord’
    • מריצים את ה-bootstrap של גרסת 4.52.01:
      sudo bash /tmp/bootstrap_4.52.01.sh apigeeuser=uName apigeepassword=pWord

    • מגדירים את Cassandra בצומת:
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
    • משחזרים את הגיבוי בצומת לפי השלבים המפורטים בקטע שחזור מהגיבוי.
    • מפסיקים את Cassandra בצומת:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra stop
    • מוחקים את ספריית הנתונים:
      rm -rf /opt/apigee/data/apigee-cassandra/data
    • שחזור הגיבוי:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restore backup_file
    • מפעילים את שירות Cassandra בצומת:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra start
    • חוזרים על השלבים בכל צומת של Cassandra בנפרד.
    • מריצים את התיקון בכל הצמתים, אחד אחרי השני:
      /opt/apigee/apigee-cassandra/bin/nodetool -h <node-IP> repair -pr

החזרה לאחור של עדכון Zookeeper 3.8.3

אם אתם מבצעים חזרה לגרסאות 4.52.00 או 4.51.00, תצטרכו לפעול לפי כמה שלבים מיוחדים לפני שתבצעו חזרה לגרסה הקודמת של Zookeeper. השלבים האלה מפורטים בקטע החזרה לאחור.

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

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

אם אתם מבצעים חזרה לגרסאות 4.52.00 או 4.51.00, תצטרכו לפעול לפי כמה שלבים מיוחדים לפני החזרה לגרסה הקודמת של Qpid. השלבים האלה מפורטים בקטע החזרה לאחור.

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

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

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

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

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

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

  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 Router, צריך למחוק את התוכן של הקובץ /opt/nginx/conf.d בנוסף להסרת קבוצת הרכיבים edge-gateway:
      cd /opt/nginx/conf.d
      rm -rf *
  5. מסירים את הגרסה 4.52.02 של 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. חוזרים על התהליך הזה לכל צומת שמארח את הרכיב שאתם רוצים לבצע לו חזרה לאחור.

חזרה לגרסה הקודמת של 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