Edge for Private Cloud v4.18.05
אם נתקלתם בשגיאה במהלך עדכון ל-Edge 4.18.05, אתם יכולים להחזיר את הרכיב שגרם לשגיאה לגרסה הקודמת ואז לנסות לעדכן שוב.
אפשר להחזיר את Edge 4.18.05 לגרסאות הבאות של Feature Release:
- גרסה 4.18.01
- גרסה 4.17.09*
- גרסה 4.17.05*
* כדי לחזור מגרסה 4.18.05 לגרסה 4.17.09 או 4.17.05, צריך להחזיר את Postgres לגרסה קודמת בנוסף להחזרת הרכיבים בכל צומת לגרסה קודמת. אם חוזרים לגרסה 4.18.01, לא צריך להחזיר את Postgres לגרסה קודמת כי תהליך השדרוג לא כלל עדכון של Postgres.
יש שני תרחישים שבהם כדאי לבצע החזרה לגרסה קודמת:
- חזרה לגרסת פיצ'רים קודמת. לדוגמה, מגרסה 4.18.05 לגרסה 4.18.01.
- חזרה לגרסת עדכון קודמת באותו עדכון גרסה. לדוגמה, מגרסה 4.18.05.02 לגרסה 4.18.05.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 קודמת
כדי לחזור מגרסה 4.18.05 לגרסה 4.17.09 או 4.17.05, צריך להחזיר את Postgres לגרסה קודמת בנוסף להחזרת הרכיבים בכל צומת לגרסה קודמת. אם אתם חוזרים לגרסה קודמת מגרסה 4.18.01, אתם לא צריכים לחזור לגרסה קודמת של Postgres כי תהליך השדרוג לא כלל עדכון של Postgres.
כדי לחזור לגרסת Feature Release קודמת, מבצעים את הפעולות הבאות בכל צומת שמארח את הרכיב:
-
מורידים את קובץ ה-
bootstrap.shשל הגרסה שאליה רוצים לחזור:- כדי לחזור לגרסה 4.18.01, צריך להוריד את
bootstrap_4.18.01.sh:curl https://software.apigee.com/bootstrap_4.18.01.sh -o /tmp/bootstrap_4.18.01.sh
- כדי לחזור לגרסה 4.17.09, מורידים את
bootstrap_4.17.09.sh:curl https://software.apigee.com/bootstrap_4.17.09.sh -o /tmp/bootstrap_4.17.09.sh
- כדי לחזור לגרסה 4.17.05, צריך להוריד את
bootstrap_4.17.05.sh:curl https://software.apigee.com/bootstrap_4.17.05.sh -o /tmp/bootstrap_4.17.05.sh
- כדי לחזור לגרסה 4.18.01, צריך להוריד את
- עוצרים את הרכיב שרוצים להחזיר לגרסה קודמת:
- כדי להחזיר לגרסה קודמת את אחד מהרכיבים עם הקוד המשותף בצומת, צריך לעצור את כולם, כמו בדוגמה הבאה:
/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 - כדי לחזור לגרסה קודמת של רכיב אחר בצומת, עוצרים רק את הרכיב הזה:
/opt/apigee/apigee-service/bin/apigee-service component stop
- כדי להחזיר לגרסה קודמת את אחד מהרכיבים עם הקוד המשותף בצומת, צריך לעצור את כולם, כמו בדוגמה הבאה:
- אם אתם מחזירים את המונטיזציה לגרסה קודמת, צריך להסיר אותה מכל הצמתים של שרת הניהול ומעבד הבקשות:
/opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
- מסירים את הרכיב כדי לחזור לגרסה הקודמת בצומת:
- כדי להחזיר לגרסה קודמת את אחד מהרכיבים עם קוד משותף בצומת, צריך להסיר את כולם על ידי הסרת קבוצת הרכיבים
edge-gateway, כמו בדוגמה הבאה:/opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
- כדי להחזיר לגרסה קודמת רכיב אחר בצומת, מסירים רק את הרכיב הזה, כמו בדוגמה הבאה:
/opt/apigee/apigee-service/bin/apigee-service component uninstall
כאשר component הוא שם הרכיב.
- כדי להחזיר את Edge Router לגרסה קודמת, צריך למחוק את התוכן של הקובץ
/opt/nginx/conf.dבנוסף להסרת ההתקנה של קבוצת הרכיביםedge-gateway:cd /opt/nginx/conf.d
rm -rf *
- כדי להחזיר לגרסה קודמת את אחד מהרכיבים עם קוד משותף בצומת, צריך להסיר את כולם על ידי הסרת קבוצת הרכיבים
- מסירים את גרסה 4.18.05 של
apigee-setup:/opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
- מתקינים את גרסה 4.18.01, 4.17.09 או 4.17.05 של כלי השירות
apigee-serviceואת יחסי התלות שלו. בדוגמה הבאה מתקינים את גרסה 4.17.09 שלapigee-service:sudo bash /tmp/bootstrap_4.17.09.sh apigeeuser=uName apigeepassword=pWord
כאשר uName ו-pWord הם שם המשתמש והסיסמה שקיבלתם מ-Apigee. אם לא תציינו את pWord, תתבקשו להזין אותו.
אם מופיעה הודעת שגיאה, צריך לוודא שהורדתם את הקובץ
bootstrap.shבשלב 1. - התקנת
apigee-setup:/opt/apigee/apigee-service/bin/apigee-service apigee-setup install
- מתקינים את הגרסה הישנה יותר של הרכיב:
/opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile
component הוא הרכיב שרוצים להתקין ו-configFile הוא קובץ התצורה של הגרסה הישנה יותר.
- אם אתם מחזירים את Qpid לגרסה קודמת, צריך לנקות את iptables:
sudo iptables -F
- חוזרים על התהליך הזה בכל צומת שמארח את הרכיב שאתם מחזירים לגרסה קודמת.
כדי לחזור מגרסה 4.18.05 לגרסה 4.17.09 או 4.17.05, צריך להחזיר את Postgres לגרסה קודמת בנוסף להחזרת הרכיבים בכל צומת לגרסה קודמת. אם אתם חוזרים לגרסה קודמת מגרסה 4.18.01, אתם לא צריכים לחזור לגרסה קודמת של Postgres כי תהליך השדרוג לא כלל עדכון של Postgres.
חזרה לגרסת עדכון קודמת
כדי להחזיר רכיב לגרסה ספציפית של גרסה, מבצעים את הפעולות הבאות בכל צומת שמארח את הרכיב:
- מורידים את הגרסה הספציפית של הרכיב:
/opt/apigee/apigee-service/bin/apigee-service component_version install
כאשר component_version הוא הרכיב וגרסת העדכון שצריך להתקין. לדוגמה:
/opt/apigee/apigee-service/bin/apigee-service edge-ui-4.17.09-0.0.3749 install
אם אתם משתמשים במאגר אונליין של Apigee, אתם יכולים להשתמש בפקודה הבאה כדי לראות את גרסאות הרכיבים הזמינות:
yum --showduplicates list comp
לדוגמה:
yum --showduplicates list edge-ui
- משתמשים ב-
apigee-setupכדי להתקין את הרכיב:/opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
לדוגמה:
/opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
שימו לב שאתם מציינים רק את שם הרכיב כשאתם מתקינים אותו, ולא את הגרסה.
- חוזרים על התהליך הזה בכל צומת שמארח את הרכיב שאתם מחזירים לגרסה קודמת.
כדי לחזור מגרסה 4.18.05 לגרסה 4.17.09 או 4.17.05, צריך להחזיר את Postgres לגרסה קודמת בנוסף להחזרת הרכיבים בכל צומת לגרסה קודמת. אם אתם חוזרים לגרסה קודמת מגרסה 4.18.01, אתם לא צריכים לחזור לגרסה קודמת של Postgres כי תהליך השדרוג לא כלל עדכון של Postgres.
ביטול העדכון של Postgres 9.6
אם שדרגתם לגרסה 4.18.05 מגרסה 4.17.05 או 4.17.09, אתם צריכים להחזיר את עדכון Postgres לגרסה הקודמת, בנוסף לרכיבי Edge.
כדי להחזיר את עדכון Postgres לגרסה קודמת כשמעדכנים את Postgres בהגדרת מאסטר-גיבוי:
- מקפיצים את צומת ההמתנה החדש כדי שיהפוך למאסטר של Postgres. הגרסה של מאסטר Postgres החדש תהיה זהה לגרסה של התקנת Edge הקודמת.
- מגדירים את צומת הגיבוי הישן כצומת הגיבוי של המאסטר החדש. צומת הגיבוי הישן יהיה באותה גרסה כמו ההתקנה הקודמת של Edge.
- רושמים את הצמתים החדשים של המאסטר וההמתנה בקבוצות של ניתוח הנתונים והצרכנים.
כשתסיימו את החזרה לגרסה הקודמת, לא תצטרכו יותר את צומת המאסטר הישן. אחר כך אפשר להוציא משימוש את צומת המאסטר הישן.
- מוודאים שצומת הגיבוי החדש של Postgres פועל:
/opt/apigee/apigee-service/bin/apigee-all status
אם Postgres לא פועל, מפעילים אותו:
/opt/apigee/apigee-service/bin/apigee-all start
- מוודאים ש-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
- אם הוא מותקן, מפעילים את Qpid בצומת ההמתנה הישן:
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
- מקַדמים את צומת הגיבוי החדש כמאסטר של Postgres:
- מקַדמים את הצומת החדש במצב המתנה כדי שיהיה המאסטר החדש:
apigee-service apigee-postgresql promote-standby-to-master new_standby_IP
אם מוצגת בקשה, מזינים את סיסמת Postgres של המשתמש apigee, שמוגדרת כברירת מחדל ל-"postgres".
- עורכים את קובץ התצורה שבו השתמשתם כדי להתקין את הגרסה הנוכחית של Edge, ומציינים את הפרטים הבאים:
# IP address of the new master: PG_MASTER=new_standby_IP # IP address of the old standby node PG_STANDBY=old_standby_IP
- מגדירים את המאסטר החדש:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
- מקַדמים את הצומת החדש במצב המתנה כדי שיהיה המאסטר החדש:
- בונים מחדש את הצומת הישן במצב המתנה:
- עורכים את קובץ התצורה שבו השתמשתם כדי להתקין את הגרסה הנוכחית של Edge, ומציינים את הפרטים הבאים:
# IP address of the new master: PG_MASTER=new_standby_IP # IP address of the old standby node PG_STANDBY=old_standby_IP
- מסירים את ספריית הנתונים בצומת הגיבוי הישן:
cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
- מגדירים מחדש את צומת הגיבוי הישן כצומת גיבוי של הצומת הראשי החדש:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- מוודאים ש-Postgres פועל בצומת ההמתנה הישן:
/opt/apigee/apigee-service/bin/apigee-all status
אם הוא לא פועל, מפעילים אותו:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
- עורכים את קובץ התצורה שבו השתמשתם כדי להתקין את הגרסה הנוכחית של Edge, ומציינים את הפרטים הבאים:
- מוודאים שצומת ההמתנה החדש נוסף על ידי הצגת הקובץ
/opt/apigee/apigee-postgresql/conf/pg_hba.confבמאסטר החדש. - כדי להציג את המידע הנוכחי על קבוצת הצרכנים ועל ניתוח הנתונים, מריצים את הפקודה הבאה בשרת הניהול:
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" : { } } - משיגים את כתובת ה-UUID של המאסטר הישן על ידי הרצת הפקודה הבאה של
curlבצומת המאסטר הישן:curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self
בסוף הפלט אמור להופיע ה-UUID של הצומת, בפורמט הבא:
"type" : [ "postgres-server" ], "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
- חוזרים על השלב הקודם כדי לקבל את כתובות ה-IP של הצומת הישן במצב המתנה ושל הצומת הראשי החדש.
- מסירים את הצמתים הישנים של המאסטר וההמתנה מקבוצת הצרכנים:
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אמור להיות ריק עכשיו. - מסירים את הצמתים הישנים של המאסטר וההמתנה מקבוצת הניתוח:
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אמור להיות ריק עכשיו. - רושמים צומתי 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 - מאמתים את קבוצת הניתוח:
curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax
מזהי ה-UUID של הצמתים החדשים של המאסטר וההמתנה אמורים להופיע ברשימה בקבוצת הניתוח ובקבוצת הצרכנים.
- מפעילים מחדש את Edge Management Server:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- מפעילים מחדש את כל שרתי Qpid:
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
- מפעילים מחדש את כל שרתי Postgres:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- כדי לאמת את סטטוס הרפליקציה, מריצים את הסקריפטים הבאים בשני השרתים. המערכת אמורה להציג תוצאות זהות בשני השרתים כדי לוודא שהשכפול בוצע בהצלחה:
במאסטר החדש, מריצים את הפקודה:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
מוודאים שכתוב שהוא הראשי. בצומת ההמתנה הישן:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby
מוודאים שמופיע הכיתוב "standby" (המתנה).
- חוזרים על השלב הקודם אחרי ששולחים כמה בקשות API כדי לוודא שהצמתים מסונכרנים.
- מוציאים משימוש את שרת המאסטר הישן של Postgres באמצעות ההליך שמפורט במאמר עדכון Apigee Edge מגרסה 4.16.01 או 4.16.05 לגרסה 4.17.09.
לחלופין, אפשר להסיר את Qpid מהצומת הראשי הישן ולהתקין את Qpid בצומת הראשי החדש. אחרי הסרת ההתקנה של Qpid, אפשר להוציא משימוש את צומת המאסטר הישן.
מסירים את Qpid מהמאסטר הישן ומתקינים את Qpid במאסטר החדש
כדי להסיר את Qpid מהמאסטר הישן ולהתקין אותו במאסטר החדש:
- חוסמים את הגישה ליציאה 5672 של Qpid בשרת הראשי הישן ממעבדי הבקשות, על ידי הפעלת הפקודה הבאה בכל מעבדי הבקשות:
iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
- כדי לוודא שתור ההודעות של Qpid ריק, מריצים את הפקודה הבאה. אי אפשר להסיר את ההתקנה של Qpid עד שהוא יעבד את כל ההודעות בהמתנה:
qpid-stat -q
הפקודה הזו מציגה טבלה עם ספירה של
msg, msgIn, and msgOut. כל ההודעות יעובדו כש-msg=0, וגםmsgIn=msgOut. - מריצים את הפקודה הבאה בשרת הראשי הישן כדי לזהות את ה-UUID של שרת ה-Qpid בשרת הראשי הישן. שומרים את הפרטים האלה כדי להשתמש בהם בהמשך התהליך:
curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
- עוצרים את Qpid בשרת הראשי הישן:
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
/opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop - הסרת ההתקנה של שרת Qpid:
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
/opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall - מסירים את שרת Qpid הישן מקבוצות הניתוח והצרכנים:
curl -u sysAdminEmail:password -X DELETE -H "Content-Type: application/json" -d '' \ "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers/qpid_UUID" -v
curl -u sysAdminEmail:password -X DELETE \ "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v - מסירים את שרת Qpid הישן מ-Zookeeper:
curl -u sysAdminEmail:password -X DELETE \ http://ms_IP:8080/v1/servers/qpid_UUID
- מתקינים את Qpid בשרת ה-Master החדש:
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
- מריצים את הפקודה הבאה בשרת הראשי החדש כדי לקבוע את ה-UUID של שרת ה-Qpid בשרת הראשי החדש. שומרים את הפרטים האלה כדי להשתמש בהם בהמשך התהליך:
curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
- רושמים את שרת Qpid החדש בקבוצות של ניתוח הנתונים והצרכנים:
curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' \ "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-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/consumers?uuid=qpid_UUID" -v - מפעילים מחדש את כל מעבדי הבקשות:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- מריצים את הפקודה הבאה בשרת Qpid החדש כדי לבדוק שהתורים נוצרו:
qpid-stat -q
מוודאים שהערכים של
msg,msgInו-msgOutמתעדכנים בזמן ששרת Qpid מעבד הודעות.
אם נתקלתם בבעיות במהלך החזרה לגרסה קודמת, פנו לתמיכה של Apigee Edge.