במאמר הזה נסביר איך להחליף, להסיר או למחוק מדיניות מיקום.
החלפה, הסרה או מחיקה של כללי מדיניות לגבי מיקומי מודעות שימושיות במקרים הבאים:
אפשר להחליף מדיניות מיקום במכונה וירטואלית (VM) כדי להעביר את המכונה הווירטואלית למיקום אחר ביחס למכונות וירטואליות אחרות.
מסירים מדיניות מיקום ממכונה וירטואלית כשלא רוצים יותר לדעת את המיקום שלה ביחס למכונות וירטואליות אחרות.
מוחקים מדיניות למיקום מודעה כשכבר לא צריך אותה.
לפני שמתחילים
- מעיינים ב הגבלות של מדיניות בנושא מיקומי מודעות.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להחלפה, להסרה או למחיקה של מדיניות מיקום, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין מכונות של Compute (v1) (roles/compute.instanceAdmin.v1) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות כדי להחליף, להסיר או למחוק כללי מדיניות מיקום. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להחליף, להסיר או למחוק כללי מדיניות מיקום, נדרשות ההרשאות הבאות:
-
כדי להחליף או להסיר מדיניות מיקום ממכונה וירטואלית:
compute.instances.updateבפרויקט -
כדי למחוק מדיניות מיקום:
compute.resourcePolicies.deleteבפרויקט
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
החלפת מדיניות מיקום במכונה וירטואלית
לפני שאתם מחליפים מדיניות למיקום מרווח במכונה וירטואלית במדיניות למיקום קומפקטי, ודאו שהמכונה הווירטואלית משתמשת בסוג מכונה ובמדיניות תחזוקה של מארח נתמכים. אם אתם צריכים לעדכן את מכונת ה-VM לפני החלפת מדיניות המיקום שלה, אתם יכולים לבצע את אחת מהפעולות הבאות או את שתיהן:
אחרי שמחליפים את מדיניות המיקום במכונה וירטואלית, צריך להפעיל מחדש את המכונה כדי שמדיניות המיקום החדשה תיכנס לתוקף.
כדי להחליף מדיניות מיקום ב-VM, בוחרים באחת מהאפשרויות הבאות:
gcloud
יוצרים קובץ YAML ריק.
כדי לייצא את המאפיינים של מכונה וירטואלית לקובץ ה-YAML שיצרתם, משתמשים בפקודה
gcloud compute instances export.gcloud compute instances export VM_NAME \ --destination=FILE_PATH \ --zone=ZONEמחליפים את מה שכתוב בשדות הבאים:
VM_NAME: השם של מכונה וירטואלית קיימת שמוגדרת בה מדיניות מיקום.
FILE_PATH: הנתיב לקובץ ה-YAML שיצרתם בשלב הקודם.
ZONE: האזור שבו נמצאת המכונה הווירטואלית.
בקובץ התצורה ב-YAML, משנים את הערך של השדה
resourcePoliciesכדי לציין מדיניות מיקום אחרת.resourcePolicies: - https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAMEמחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שבו נמצאת מדיניות המיקום. אפשר לציין רק מדיניות מיקום שנמצאת באותו פרויקט כמו ה-VM.
REGION: האזור שבו נמצאת מדיניות המיקום.POLICY_NAME: השם של מדיניות המיקום.
כדי לעדכן את מכונת ה-VM ולהפעיל אותה מחדש, משתמשים בפקודה
gcloud compute instances update-from-fileעם הדגל--most-disruptive-allowed-actionשמוגדר לערךRESTART.gcloud compute instances update-from-file VM_NAME \ --most-disruptive-allowed-action=RESTART \ --source=YAML_FILE \ --zone=ZONEמחליפים את מה שכתוב בשדות הבאים:
VM_NAME: שם ה-VM.
YAML_FILE: הנתיב לקובץ ה-YAML עם נתוני ההגדרה ששיניתם בשלב הקודם.
ZONE: האזור שבו נמצאת המכונה הווירטואלית.
REST
יוצרים קובץ JSON ריק.
כדי לראות את המאפיינים של מכונה וירטואלית קיימת, שולחים בקשת
GETאל ה-methodinstances.get.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAMEמחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שבו נמצאת המכונה הווירטואלית.
ZONE: האזור שבו נמצאת המכונה הווירטואלית.
VM_NAME: השם של מכונה וירטואלית קיימת שמציינת מדיניות מיקום.
בקובץ ה-JSON הריק שיצרתם בשלבים הקודמים, מבצעים את הפעולות הבאות:
מזינים את מאפייני ה-VM מהפלט של הבקשה
GET.מאתרים את השדה
resourcePoliciesומשנים את הערך שלו כדי לציין מדיניות מיקום אחרת."resourcePolicies": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ]מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שבו נמצאת מדיניות המיקום. אפשר לציין רק מדיניות מיקום שנמצאת באותו פרויקט כמו המכונה הווירטואלית.
REGION: האזור שבו נמצאת מדיניות המיקום.
POLICY_NAME: השם של מדיניות המיקום.
כדי לעדכן את ה-VM ולהפעיל אותו מחדש, שולחים בקשת
PUTל-methodinstances.update. בבקשה, מבצעים את הפעולות הבאות:בכתובת ה-URL של הבקשה, כוללים את פרמטר השאילתה
most_disruptive_allowed_actionשמוגדר לערךRESTART.בגוף הבקשה, משתמשים בפרטי ההגדרה של ה-VM מקובץ ה-JSON שיצרתם ועדכנתם בשלבים הקודמים.
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?most_disruptive_allowed_action=RESTART { ... "resourcePolicies": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ], ... }
מידע נוסף על עדכון המאפיינים של מכונה וירטואלית זמין במאמר עדכון מאפיינים של מכונה וירטואלית.
הסרת מדיניות מיקום מ-VM
אם רוצים להסיר מה-VM מדיניות למיקום מרווח עם שני דומיינים או יותר של זמינות, אפשר לעשות את זה בלי לעצור את ה-VM. אם רוצים להסיר מדיניות למיקום קומפקטי או מדיניות למיקום מרווח עם דומיין זמינות אחד בלבד, צריך קודם לעצור את המכונה הווירטואלית ורק אז להסיר את מדיניות המיקום שמצורפת אליה.
הסרה של מדיניות מיקום ממכונה וירטואלית לא משפיעה על המיקום הפיזי שלה. עם זאת, אם המכונה הווירטואלית עוברת מיגרציה פעילה, יכול להיות ש-Compute Engine יעביר אותה למיקום פיזי אחר.
כדי להסיר מדיניות מיקום ממכונה וירטואלית, בוחרים באחת מהאפשרויות הבאות:
gcloud
כדי להסיר מדיניות מיקום ממכונה וירטואלית, משתמשים בפקודה gcloud compute instances remove-resource-policies.
gcloud compute instances remove-resource-policies VM_NAME \
--resource-policies=POLICY_NAME \
--zone=ZONE
מחליפים את מה שכתוב בשדות הבאים:
VM_NAME: השם של מכונה וירטואלית קיימת שמוגדרת בה מדיניות מיקום.
POLICY_NAME: השם של מדיניות המיקום שחלה על המכונה הווירטואלית. כדי לאמת את השם של מדיניות מיקום, צופים בפרטים של מכונת ה-VM ובודקים את הערך של השדהresourcePolicies.
ZONE: האזור שבו נמצאת המכונה הווירטואלית.
REST
כדי להסיר מדיניות מיקום ממכונה וירטואלית, שולחים בקשת POST לשיטה instances.removeResourcePolicies.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/removeResourcePolicies
{
"resourcePolicies": [
"projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
]
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שבו נמצאת המכונה הווירטואלית.
ZONE: האזור שבו נמצאת המכונה הווירטואלית.
VM_NAME: השם של מכונה וירטואלית קיימת שמוגדרת בה מדיניות מיקום.
REGION: האזור שבו נמצאת מדיניות המיקום.
POLICY_NAME: השם של מדיניות המיקום שהוחלה על המכונה הווירטואלית. כדי לאמת את השם של מדיניות מיקום, צופים בפרטים של מכונת ה-VM ובודקים את הערך של השדהresourcePolicies.
מחיקת מדיניות מיקום
אפשר למחוק מדיניות מיקום רק אם היא לא חלה על אף משאב של Compute Engine. אחרת, מחיקת מדיניות מיקום המודעה תיכשל. אם רוצים למחוק מדיניות מיקום שחלה על משאב אחד או יותר של Compute Engine, אפשר לבצע אחת מהפעולות הבאות:
אם המדיניות חלה רק על מכונות וירטואליות ואתם רוצים לשמור את המכונות הווירטואליות, אתם צריכים לבצע את הפעולות הבאות:
מסירים את מדיניות המיקום מהמכונות הווירטואליות כמו שמתואר במסמך הזה.
מוחקים את מדיניות מיקומי המודעות כמו שמוסבר בקטע הזה.
אם לא, מבצעים את הפעולות הבאות:
אופציונלי: מסירים את מדיניות המיקום מכל מכונה וירטואלית שרוצים לשמור כפי שמתואר במסמך הזה.
מוחקים כל משאב אחר של Compute Engine שהוחלה עליו מדיניות המיקום, בסדר הבא:
VMs (מכונות וירטואליות)
הזמנות
תבניות של הגדרות מכונה
מוחקים את מדיניות מיקום המודעה כמו שמתואר בקטע הזה.
כדי למחוק מדיניות מיקום, בוחרים באחת מהאפשרויות הבאות:
gcloud
כדי למחוק מדיניות מיקום, משתמשים בפקודה gcloud compute resource-policies delete.
gcloud compute resource-policies delete POLICY_NAME \
--region=REGION
מחליפים את מה שכתוב בשדות הבאים:
POLICY_NAME: השם של מדיניות מיקום קיימת.
REGION: האזור שבו נמצאת מדיניות המיקום.
REST
כדי למחוק מדיניות מיקום, שולחים בקשת DELETE ל-method resourcePolicies.delete.
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שבו נמצאת מדיניות המיקום.
REGION: האזור שבו נמצאת מדיניות המיקום.
POLICY_NAME: השם של מדיניות מיקום קיימת.
מה השלב הבא?
במאמר הזה מוסבר איך לבצע את הפעולות הבאות באמצעות מכונה וירטואלית שמוגדרת בה מדיניות מיקום: