בדף הזה מוסבר איך לעדכן ולתקן את מכשיר ה-appliance של Google Distributed Cloud (GDC) שמוגדר ללא חיבור לאינטרנט.
הכנה לשדרוג
לפני השדרוג, חשוב לוודא שאתם עומדים בדרישות שמפורטות בקטע הזה.
לפני שמתחילים
כדאי לעיין בדרישות המוקדמות למחשב נייד כדי לוודא שהמחשב הנייד שבו אתם משתמשים לעדכון ולשדרוג של תיקוני האבטחה עומד במפרטים הפיזיים ובדרישות אחרות.
קודם צריך לבצע את הפעולות הבאות לגבי כלי ממשק שורת הפקודה (CLI) של gdcloud:
- מורידים את כלי ה-CLI
gdcloud. - מתקינים את כלי ה-CLI של
gdcloud. - משדרגים את כלי ה-CLI
gdcloudלפי הצורך. - מוודאים שהרכיב
docker-credential-gdcloudקיים.
העברת פריטי ה-Artifact למכונת השדרוג
צריכה להיות לכם גישה לקטגוריה של Cloud Storage.
כדי להעביר את הארטיפקטים למחשב הנייד שבו משתמשים לעדכון ולשדרוג של תיקוני אבטחה:
הורדת החבילה על סמך גרסת התיקון שנבחרה:
VERSION=<x.x.x-gdch.yyy> RELEASE_SUFFIX="_te" DOWNLOADER=gdch-downloader-prod${RELEASE_SUFFIX}-$VERSION.sh gcloud storage cp "gs://$GCS_BUCKET/$VERSION/$DOWNLOADER" . gcloud storage cp "gs://$GCS_BUCKET/$VERSION/${DOWNLOADER}.sig" . PUBLIC_KEY=$(cat <<-PUBEND -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEn46iVSyFXsvuKLZ4dVOr2AqlXDnR 5cKztkpraexHDxn/ozq03EvrdkRmZkSACFfcaEFyitpraidgAx8sPjvzXQ== -----END PUBLIC KEY----- PUBEND ) echo "${PUBLIC_KEY}" > "key.pub" DOWNLOADER=gdch-downloader-${PRODUCT}-$VERSION.sh gcloud storage cp "gs://${GCS_BUCKET:-private-cloud-release}/$VERSION/$DOWNLOADER*" . openssl dgst -sha256 -verify "key.pub" -signature "${DOWNLOADER}.sig" ${DOWNLOADER} && chmod +x $DOWNLOADER && ./$DOWNLOADER --skip-unzipהפקודה הזו מאחזרת את חבילת העדכון ואת סקריפט ההורדה לספרייה הנוכחית, לדוגמה,
/home/download.מריצים את
tree -L 3 /home/download.פלט לדוגמה:
/home/download ├── gdch │ └── x.x.x-gdch.x │ ├── bootstrapper │ │ ├── bootstrapper.iso │ │ └── bootstrapper.iso.sig │ ├── gdch-prod_te-x.x.x-gdch.x-sbom.tar.gz │ ├── gdch-prod_te-x.x.x-gdch.x-sbom.tar.gz.sig │ ├── prod_te_gdch.tar.gz │ └── prod_te_gdch.tar.gz.sig ├── gdch-downloader-prod_te-x.x.x-gdch.x.sh ├── gdch-downloader-prod_te-x.x.x-gdch.x.sh.1.sig ├── gdch-downloader-prod_te-x.x.x-gdch.x.sh.sig └── key.pubמעתיקים את העדכון לסביבה עם פער אוויר באמצעות כונן ה-USB.
מעתיקים את סקריפט ההורדה ואת ספריית
gdchשהורדתם לכונן ה-USB בשלב 1 למחשב השדרוג בסביבה עם פער אבטחה.במכונת השדרוג, מאמתים את התוכן ומחלצים את הקבצים באמצעות אותם פרטים ששימשו להורדת החבילה. לדוגמה, הקוד הבא מעתיק את החבילה לספרייה
/root.פורקים את החבילה:
VERSION=x.x.x-gdch.x PRODUCT=prod_te DOWNLOADER=gdch-downloader-${PRODUCT}-$VERSION.sh openssl dgst -sha256 -verify "key.pub" -signature "${DOWNLOADER}.sig" ${DOWNLOADER} && chmod +x $DOWNLOADER && ./$DOWNLOADER --skip-downloadהחבילה נפרקת בנתיב
/root/gdch/full-release-x.x.x-gdch.x.מוודאים שהגרסה זהה לגרסה שהגדרתם ב-VERSION:
/root/gdch/full-release-x.x.x-gdch.x/gdcloud versionפלט לדוגמה:
gdcloud version: 1.14.4-gdch.0
אמת
כדי לבצע אימות באמצעות ספק הזהויות שהגדרתם ולבקש קובץ kubeconfig עבור זהות המשתמש והאשכול, אפשר לעיין במאמר בנושא אימות.
נכנסים לחשבון ויוצרים את קבצי kubeconfig.
מגדירים את קובצי ה-kubeconfig כמשתני סביבה:
export KUBECONFIG=ROOT_ADMIN_KUBECONFIG export MANAGEMENT_KUBECONFIG=MANAGEMENT_API_KUBECONFIGשליחת בקשה לתפקידים הבאים:
שדרוג של Appliance Admin:
kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding upgrade-admin-te-initial-user --clusterrole=upgrade-admin-te --user=keycloak-oidc-initial-user@example.com kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create clusterrolebinding upgrade-admin-te-initial-user --clusterrole=upgrade-admin-te --user=keycloak-oidc-initial-user@example.comאדמין לניהול ארטיפקטים של המערכת:
kubectl --kubeconfig=$KUBECONFIG create rolebinding system-artifact-management-admin-initial-user --role=system-artifact-management-admin --user=keycloak-oidc-initial-user@example.com -n gpc-system kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create rolebinding system-artifact-management-admin-initial-user --role=system-artifact-management-admin --user=keycloak-oidc-initial-user@example.com -n gpc-systemאדמין של סודות לניהול ארטיפקטים במערכת:
kubectl --kubeconfig=$KUBECONFIG create rolebinding system-artifact-management-secrets-admin-initial-user --role=system-artifact-management-secrets-admin --user=keycloak-oidc-initial-user@example.com -n anthos-credsכלי לצפייה בסיומת DNS:
kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create rolebinding dnssuffix-viewer-initial-user --role=dnssuffix-viewer --user=keycloak-oidc-initial-user@example.com -n gpc-systemכלי תקינות המערכת של Artifact Registry:
kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding sar-monitor-initial-user --clusterrole=sar-monitor --user=keycloak-oidc-initial-user@example.com kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create clusterrolebinding sar-monitor-initial-user --clusterrole=sar-monitor --user=keycloak-oidc-initial-user@example.comשדרוג הכלי לניפוי באגים:
kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding upgrade-debugger-initial-user --clusterrole=upgrade-debugger --user=keycloak-oidc-initial-user@example.comכלי לניפוי באגים ב-Artifact Registry של המערכת:
kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding sar-debugger-initial-user --clusterrole=sar-debugger --user=keycloak-oidc-initial-user@example.com
מגדירים את Docker:
gdcloud auth configure-docker --config-cert=true
התחלת השדרוג
כדי להתחיל בשדרוג של ה-appliance:
gdcloud appliance upgrade
מידע נוסף זמין בכתובת gdcloud appliance upgrade.
הפקודה מריצה את השלבים הבאים:
- מריצים את הבדיקות המקדימות במחשב השדרוג.
- הרצת בדיקות קדם הפעלה לאחסון OTS
- העלאת הארטיפקטים למאגר הארטיפקטים.
- שדרוג התוכנה והקושחה של המכשיר, כולל:
- אשכול GDC root-admin.
- שירותי GDC.
- מערכות ההפעלה (OS) של צמתים פיזיים ווירטואליים.
- המתג.
- אחסון
הפקודה מפעילה את העדכונים ברצף וממתינה לסיום כל שלב. אחרי השלמת השלבים, אם השדרוג יצליח, תופיע הודעה דומה לזו:
The GDC appliance upgrade completed successfully