אימות ההגדרה של VM Manager

המאמר הזה יעזור לכם לוודא ש-VM Manager מוגדר בצורה תקינה. מידע על הגדרת VM Manager זמין במאמר הגדרת VM Manager.

כדי לוודא שההגדרה בוצעה בצורה תקינה, אפשר להשתמש בפקודה לפתרון בעיות או לבצע בדיקות ידניות במכונה הוירטואלית (VM).

לפני שמתחילים

  • במכונות וירטואליות של Windows, צריך להשתמש ב-PowerShell 3.0 ואילך.
  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

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

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud

    gcloud

    1. התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  • הגדרת אזור ותחום כברירת מחדל

שימוש בפקודה לפתרון בעיות

משתמשים בפקודה os-config troubleshoot כדי לאמת את ההגדרה. אם אחת מהבדיקות נכשלת, תקבלו משוב עם הוראות לפתרון הבעיה.

gcloud compute os-config troubleshoot VM_NAME \
   --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • VM_NAME: השם של מופע המכונה הווירטואלית שרוצים לפתור בו בעיות
  • ZONE: האזור שבו נמצאת המכונה

דוגמאות

  • דוגמה 1: הפלט של הפקודה os-config troubleshoot כשמכונת ה-VM נתקלת בבעיות בהגדרה
  • דוגמה 2: הפלט של הפקודה os-config troubleshoot כשמכונת ה-VM מוגדרת בצורה תקינה

דוגמה 1

כדי לפתור בעיות במכונה וירטואלית בשם my-instance-1 באזור asia-east2-b, מריצים את הפקודה הבאה:

gcloud compute os-config troubleshoot my-instance-1 \
    --zone=asia-east2-b

הפלט אמור להיראות כך:

OS Config troubleshooter tool is checking if there are issues with the
VM Manager setup for this VM instance.

> Is the OS Config API enabled? Yes
> Is the OS Config agent enabled? Yes
> Is the OS Config agent up to date? No

The version of OS Config agent running on this VM instance is not the
latest version.
See https://cloud.google.com/compute/docs/manage-os/upgrade-vm-manager#update-agent
on how to update the agent.

דוגמה 2

כדי לפתור בעיות במכונה וירטואלית בשם my-instance-2 באזור us-west1-b, מריצים את הפקודה הבאה:

gcloud compute os-config troubleshoot my-instance-2 \
    --zone=us-west1-b

הפלט אמור להיראות כך:

OS Config troubleshooter tool is checking if there are issues with the
VM Manager setup for this VM instance.

> Is the OS Config API enabled? Yes
> Is the OS Config agent enabled? Yes
> Is the OS Config agent up to date? Yes
> Is a service account present on the instance? Yes
> Is the OS Config Service account present for this instance? Yes
> Does this instance have a public IP or Private Google Access? Yes
This instance has a public IP.

אימות ידני

כדי לוודא באופן ידני שהכלי VM Manager מוגדר בצורה תקינה, מבצעים את הבדיקות הבאות:

אם VM Manager מוגדר בצורה תקינה אבל עדיין יש בעיות, אפשר לעיין במאמר פתרון בעיות ב-VM Manager.

בדיקה אם OS Config API מופעל

ב Google Cloud פרויקט, בודקים אם ה-API מופעל.

המסוף

במסוף Google Cloud , נכנסים לדף OS Config API.

ל-OS Config API

gcloud

gcloud services list --enabled

אם ה-API מופעל, הפלט נראה כך:

osconfig.googleapis.com              OS Config API

אם ה-API לא מופעל, מפעילים את OS Config API.

בדיקה אם מטא-נתונים מופעלים

Linux

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

  1. שליחת שאילתה לנקודת הקצה של מאפייני הפרויקט:

    curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/" \
    -H "Metadata-Flavor: Google"
    

    אם ערך המטא-נתונים של הסוכן מוגדר, הפלט נראה כך:

    enable-osconfig
    
  2. אם הערך enable-osconfig מוצג, שולחים שאילתה לנקודת הקצה:

    curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/enable-osconfig" \
    -H "Metadata-Flavor: Google"

    אם ההגדרה מופעלת, נקודת הקצה מחזירה TRUE.

אם המטא-נתונים לא מופעלים, מפעילים את המטא-נתונים של OS Config.

Windows

כדי להציג את המטא-נתונים של הפרויקט, פותחים טרמינל ב-PowerShell ב-VM כאדמין ומריצים את הפקודה הבאה:

  1. שליחת שאילתה לנקודת הקצה של מאפייני הפרויקט:

    $value = (Invoke-RestMethod `
             -Headers @{'Metadata-Flavor' = 'Google'} `
             -Uri "http://metadata.google.internal/computeMetadata/v1/project/attributes/")
    $value
    

    אם ערך המטא-נתונים של הסוכן מוגדר, הפלט נראה כך:

    enable-osconfig
    
  2. אם הערך enable-osconfig מוצג, שולחים שאילתה לנקודת הקצה:

    $value = (Invoke-RestMethod `
             -Headers @{'Metadata-Flavor' = 'Google'} `
             -Uri "http://metadata.google.internal/computeMetadata/v1/project/attributes/enable-osconfig")
    $value
    

    אם ההגדרה מופעלת, נקודת הקצה מחזירה TRUE.

אם המטא-נתונים לא מופעלים, מפעילים את המטא-נתונים של OS Config.

בדיקה אם הסוכן OS Config מותקן ופועל

Linux

כדי לבדוק אם הסוכן מותקן במכונת ה-VM של Linux, מריצים את הפקודה הבאה:

sudo systemctl status google-osconfig-agent

אם הסוכן מותקן ופועל, הפלט ייראה כך:

google-osconfig-agent.service - Google OSConfig Agent
Loaded: loaded (/lib/systemd/system/google-osconfig-agent.service; enabled; vendor preset:
Active: active (running) since Wed 2020-01-15 00:14:22 UTC; 6min ago
Main PID: 369 (google_osconfig)
 Tasks: 8 (limit: 4374)
Memory: 102.7M
CGroup: /system.slice/google-osconfig-agent.service
        └─369 /usr/bin/google_osconfig_agent

אם הסוכן לא מותקן, צריך להתקין את הסוכן של OS Config.

Windows

כדי לבדוק אם הסוכן מותקן במכונת ה-VM של Windows, מריצים את הפקודה הבאה:

PowerShell Get-Service google_osconfig_agent

אם הסוכן מותקן ופועל, הפלט ייראה כך:

Status   Name               DisplayName
------   ----               -----------
Running  google_osconfig... Google OSConfig Agent

אם הסוכן לא מותקן, צריך להתקין את הסוכן של OS Config.

בדיקה אם חשבון השירות מופעל

מידע על הדרישות של חשבון שירות זמין במאמר סקירה כללית של ההגדרה.

Linux

במכונת ה-VM, מריצים את הפקודה הבאה:

curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/" \
-H "Metadata-Flavor: Google"

הפלט צריך לכלול לפחות את חשבון השירות שמוגדר כברירת מחדל.

default/

Windows

ב-VM, פותחים טרמינל ב-PowerShell כאדמין ומריצים את הפקודה הבאה:

$value = (Invoke-RestMethod `
         -Headers @{'Metadata-Flavor' = 'Google'} `
         -Uri "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/")
$value

הפלט צריך לכלול לפחות את חשבון השירות שמוגדר כברירת מחדל.

default/

בדיקה אם מכונת ה-VM יכולה לתקשר עם OS Config API

כדי לבדוק אם המכונה הווירטואלית יכולה לתקשר עם OS Config API, מריצים את הפקודה הבאה במכונה הווירטואלית של Linux או Windows:

ping osconfig.googleapis.com

כדי להפסיק את הפינג של OS Config API, מקישים על Control + C.

אם המכונה הווירטואלית פועלת ברשת VPC פרטית ואין לה גישה לאינטרנט הציבורי, צריך לוודא שהפעלתם גישה פרטית ל-Google.

אחרי שמפעילים את הגישה הפרטית ל-Google, צריך לוודא שהמכונה הווירטואלית יכולה לתקשר עם OS Config API.

Linux

במכונת ה-VM, מריצים את הפקודה הבאה:

 curl --ssl 'https://osconfig.googleapis.com/$discovery/rest' | head

אם המכונה הווירטואלית יכולה לתקשר עם OS Config API, פלט הפקודה ייראה כך:

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0{
"discoveryVersion": "v1",
"baseUrl": "https://osconfig.googleapis.com/",
"ownerName": "Google",
"version": "v1beta",
"schemas": {
  "GooSettings": {
    "description": "Googet patching is performed by running `googet update`.",
    "properties": {},
    "id": "GooSettings",
100  9569    0  9569    0     0   198k      0 --:--:-- --:--:-- --:--:--  198k

Windows

במכונה הווירטואלית, פותחים טרמינל ב-PowerShell כאדמין ומריצים את הפקודה הבאה:

 Invoke-RestMethod  -Headers @{'Metadata-Flavor' = 'Google'}
 -Uri 'https://osconfig.googleapis.com/$discovery/rest'

מה השלב הבא?