Edge for Private Cloud גרסה 4.17.09
אם מתרחשת שגיאה במהלך עדכון ל-Edge 4.17.09, אפשר להחזיר לגרסה קודמת את הרכיב שגרם לשגיאה ואז לנסות לעדכן שוב. לדוגמה, אם העדכון ל-Postgres 9.4 נכשל, אפשר להחזיר למצב הקודם רק את צומתי Postgres ולנסות שוב לעדכן.
יש שני תרחישים שבהם כדאי לבצע החזרה לגרסה קודמת:
- חזרה לגרסה קודמת. לדוגמה, מגרסה 4.17.09 לגרסה 4.17.01.
- חזרה לגרסה ישנה יותר באותו עדכון.
כדי לחזור לגרסה קודמת בשני התרחישים, צריך לפעול לפי ההליך הבא.
מי יכול לבצע את החזרה לגרסה קודמת
המשתמש שמבצע את החזרה לגרסה קודמת צריך להיות אותו משתמש שעדכן את Edge במקור, או משתמש שפועל כמשתמש root.
כברירת מחדל, רכיבי Edge פועלים בתור המשתמש apigee. במקרים מסוימים, יכול להיות שאתם מפעילים רכיבי Edge כמשתמשים שונים. לדוגמה, אם הנתב צריך לגשת ליציאות עם הרשאות, כמו אלה שמתחת ל-1000, צריך להריץ את הנתב כמשתמש root או כמשתמש עם גישה ליציאות האלה. לחלופין, יכול להיות שאתם מריצים רכיב אחד כמשתמש אחד, ורכיב אחר כמשתמש אחר.
אילו רכיבים אפשר להחזיר לגרסה קודמת
חשוב לשים לב לתנאים הבאים כשמבצעים חזרה לגרסה קודמת:
- חמשת רכיבי Edge שמפורטים בהמשך חולקים קוד משותף. לכן, כדי להחזיר לגרסה קודמת כל אחד מחמשת הרכיבים בצומת, צריך להחזיר לגרסה קודמת כל אחד מחמשת הרכיבים שמותקנים בצומת. לדוגמה, אם שרת הניהול, הנתב ומעבד הבקשות מותקנים בצומת, כדי להחזיר לגרסה קודמת אחד מהם צריך להחזיר לגרסה קודמת את שלושתם.
חמשת הרכיבים שמשתפים קוד הם:- שרת ניהול
- נתב
- מעבד בקשות
- שרת Qpid
- שרת Postgres
- אם אתם מעדכנים מ-Edge 4.16.01, אל תחזירו את Cassandra לגרסה קודמת. הגרסה הזו של Edge כוללת גרסה מעודכנת של Cassandra. אם מחזירים רכיבים כלשהם לגרסה קודמת, צריך להשאיר את Cassandra בגרסה 4.17.09.
חזרה לגרסה 4.17.09
בקטע הזה מוסבר איך להחזיר את Edge 4.17.09 לגרסה קודמת. החלק הזה מחולק לשני חלקים:
- אם אתם מעדכנים רק מגרסה 4.16.01 או 4.16.05 – החזרת העדכון של Postgres לגרסה 9.4
החלק האחרון בכל הליך עדכון מגרסה 4.16.01 או 4.16.05 הוא עדכון צומתי Postgres לגרסה 9.4. אם העדכון נכשל, אפשר להשתמש בהליך הזה כדי לבטל את העדכון. - החזרה לגרסה קודמת של כל שאר הרכיבים של Edge
כדי להחזיר לגרסה קודמת כל רכיב אחר של Edge, צריך להשתמש בהליך הזה.
כדי לחזור לגרסה הקודמת של עדכון Postgres 9.4
כדי להחזיר את עדכון Postgres לגרסה קודמת כשמעדכנים את Postgres בהגדרת master-standby:
- מקפיצים את צומת ההמתנה החדש כדי שיהפוך למאסטר של 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 ולא את Qpid. - מקַדמים את צומת הגיבוי החדש לצומת הראשי של Postgres:
- מקַדמים את הצומת החדש במצב המתנה להיות המאסטר החדש:
> apigee-service apigee-postgresql promote-standby-to-master new_standby_IP
אם מוצגת בקשה, מזינים את סיסמת Postgres של המשתמש 'apigee', שמוגדרת כברירת מחדל ל-"postgres". - עורכים את קובץ התצורה שבו השתמשתם כדי להתקין את הגרסה הנוכחית של Edge, ומציינים את הפרטים הבאים:
# כתובת IP של ה-new master:
PG_MASTER=new_standby_IP
# כתובת IP של ה-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 של ה-new master:
PG_MASTER=new_standby_IP
# כתובת IP של ה-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" : {
}
} - מריצים את פקודת ה-cURL הבאה בצומת הראשי הישן כדי לקבל את כתובת ה-UUID שלו:
> curl -u sysAdminEmail:password http://<node_IP>:8084/v1/servers/self
בסוף הפלט אמור להופיע ה-UUID של הצומת, בפורמט הבא:
"type" : [ "postgres-server" ],
"uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
הערה: השירות edge-postgres-server צריך לפעול. אם שרת Postgres לא פועל, אפשר להריץ את הפקודה הבאה בשרת הניהול כדי לקבוע את ה-UUID:
> curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/servers?pod=analytics
הפלט של הפקודה הזו מפרט את ה-UUID של כתובת ה-IP של כל צומת Postres. - חוזרים על השלב הקודם כדי לקבל את כתובות ה-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 חדשים מסוג מאסטר ו-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 - מאמתים את קבוצת הניתוח:
> curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/analytics/groups/ax
אמורים לראות את מזהי ה-UUID של הצמתים החדשים, הראשי והגיבוי, שמופיעים בקבוצת הניתוח ובקבוצת הצרכנים. - מפעילים מחדש את שרת הניהול של Edge:
> /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
מוודאים שכתוב שזהו צומת ההמתנה. - חוזרים על השלב הקודם אחרי ששולחים כמה בקשות API כדי לוודא שהצמתים מסונכרנים.
- מוציאים משימוש את שרת המאסטר הישן של Postgres באמצעות ההליך שמפורט במאמר עדכון Apigee Edge מגרסה 4.16.01 או 4.16.05 לגרסה 4.17.09.
הערה: אם צומת המאסטר הישן הפעיל את Qpid, אפשר להשאיר את השרת הזה פועל כדי להפעיל את Qpid. מוודאים שהיא פועלת. אם לא, מפעילים אותו:
> /opt/apigee/apigee-service/bin/apigee-service edge-management-server start
לחלופין, אפשר להסיר את Qpid מהמאסטר הישן ולהתקין את Qpid בצומת המאסטר החדש, כפי שמתואר בהמשך. אחרי הסרת ההתקנה של Qpid, אפשר להוציא משימוש את צומת המאסטר הישן.
מסירים את ההתקנה של Qpid מהמאסטר הישן ומתקינים את Qpid במאסטר החדש
כדי להסיר את Qpid מהשרת הראשי הישן ולהתקין אותו בשרת הראשי החדש:
- חוסמים את הגישה ליציאת Qpid 5672 בשרת הראשי הישן מגישה של מעבדי בקשות, על ידי הפעלת הפקודה הבאה בכל מעבדי הבקשות:
> iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP - כדי לוודא שתור ההודעות של Qpid ריק, מריצים את הפקודה הבאה. אי אפשר להסיר את Qpid עד שהוא יעבד את כל ההודעות בהמתנה:
> qpid-stat -q
הפקודה הזו מציגה טבלה עם ספירה של msg, msgIn ו-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 בשרת הראשי החדש:
> /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 מעבד הודעות.
כדי להחזיר רכיבים ספציפיים מגרסה 4.17.09 לגרסה קודמת:
כחלק מביצוע החזרה לגרסה הקודמת, צריך להוריד את הקובץ bootstrap.sh של הגרסה הנוכחית של Edge:
- כדי לחזור לגרסה 4.17.05, מורידים את הקובץ bootstrap_4.17.05.sh
- כדי לחזור לגרסה 4.17.01, מורידים את bootstrap_4.17.01.sh
- כדי לחזור לגרסה 4.16.09, מורידים את הקובץ bootstrap_4.16.09.sh
- כדי לחזור לגרסה 4.16.05, צריך להוריד את הקובץ bootstrap_4.16.05.sh
- כדי לחזור לגרסה 4.16.01, צריך להוריד את bootstrap.sh
לכל צומת שמארח רכיב שרוצים להחזיר לגרסה קודמת:
- עוצרים את הרכיב כדי לחזור לגרסה הקודמת:
-
אם אתם מחזירים לגרסה קודמת אחד מהרכיבים הבאים בצומת, אתם צריכים לעצור את כולם: Management Server, Router, מעבד בקשות, Qpid Server או Postgres Server:
- > apigee-service edge-management-server stop
- > apigee-service edge-router stop
- > apigee-service edge-message-processor stop
- > apigee-service edge-qpid-server stop
- > apigee-service edge-postgres-server stop
-
אם אתם מחזירים לגרסה קודמת רכיב אחר בצומת, עצרו רק את הרכיב הזה:
- > apigee-service comp stop
-
אם אתם מחזירים לגרסה קודמת אחד מהרכיבים הבאים בצומת, אתם צריכים לעצור את כולם: Management Server, Router, מעבד בקשות, Qpid Server או Postgres Server:
- אם אתם מחזירים את המונטיזציה לגרסה קודמת, צריך להסיר אותה מכל הצמתים של שרת הניהול ומעבד הבקשות:
> apigee-service edge-mint-gateway uninstall - מסירים את הרכיב כדי לחזור לגרסה הקודמת בצומת:
- אם אתם מחזירים לגרסה קודמת את אחד מהרכיבים הבאים בצומת, צריך להסיר את כולם: Management Server, Router, מעבד בקשות, Qpid Server או Postgres Server:
> apigee-service edge-gateway uninstall - אם אתם מחזירים רכיב אחר בצומת לגרסה קודמת, מסירים רק את הרכיב הזה:
> apigee-service comp uninstall - אם מחזירים את הנתב לגרסה קודמת, צריך למחוק את התוכן של /opt/nginx/conf.d:
> cd /opt/nginx/conf.d
> rm -rf *
- אם אתם מחזירים לגרסה קודמת את אחד מהרכיבים הבאים בצומת, צריך להסיר את כולם: Management Server, Router, מעבד בקשות, Qpid Server או Postgres Server:
-
כדי להחזיר את הרכיב לגרסה קודמת:
- מסירים את גרסה 4.17.09 של apigee-setup:
> /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall - מורידים את bootstrap.sh לגרסה 4.16.01, 4.16.05, 4.16.09, 4.17.01 או 4.17.05:
לדוגמה, לגרסה 4.16.09:
> curl https://software.apigee.com/bootstrap_4.16.09.sh -o /tmp/bootstrap_4.16.09.sh - מתקינים את הכלי apigee-service בגרסה 4.16.01, 4.16.05 או 4.16.09 ואת יחסי התלות שלו.
לדוגמה, לגרסה 4.16.09:
> sudo bash /tmp/bootstrap_4.16.09.sh apigeeuser=uName apigeepassword=pWord
כאשר uName ו-pWord הם שם המשתמש והסיסמה שקיבלתם מ-Apigee. אם לא תציינו את pWord, תתבקשו להזין אותו. - מתקינים את הגרסה 4.16.01, 4.16.05, 4.16.09, 4.17.01 או 4.17.05 של apigee-setup:
> /opt/apigee/apigee-service/bin/apigee-service apigee-setup install - מתקינים את גרסה 4.16.01, 4.16.05, 4.16.09, 4.17.01 או 4.17.05 של הרכיב:
> /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
כאשר comp הוא הרכיב שרוצים להתקין ו-configFile הוא קובץ התצורה של גרסה 4.16.01, 4.16.05 או 4.16.09. - אם אתם מחזירים את Qpid לגרסה קודמת, צריך לנקות את iptables:
> sudo iptables -F
- מסירים את גרסה 4.17.09 של apigee-setup:
-
כדי להחזיר את הרכיב לגרסה ספציפית של גרסה 4.17.09:
- מורידים את הגרסה הספציפית של הרכיב:
> /opt/apigee/apigee-service/bin/apigee-service comp-version install
כאשר comp-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
שימו לב שצריך לציין רק את שם הרכיב כשמבצעים את ההתקנה.
- מורידים את הגרסה הספציפית של הרכיב:
אם נתקלתם בבעיות במהלך החזרה לגרסה קודמת, פנו לתמיכה של Apigee.