1. סקירה כללית
PowerShell היא מעטפת של שורת פקודה ושפת סקריפטים המשויכת אליה, המבוססת על .NET Framework. זהו הכלי שמשמש כברירת מחדל לאוטומציה של משימות ולניהול הגדרות, שנעשה בו שימוש בעולם Windows. cmdlet של PowerShell היא פקודה קלת משקל שמופעלת בתוך PowerShell.
Cloud Tools ל-PowerShell הוא אוסף של קובצי cmdlet לגישה למשאבים של Google Cloud כמו Google Compute Engine, Google Cloud Storage, ל-Google Cloud SQL ול-Google Cloud DNS, ובעתיד יתווספו עוד!
בשיעור ה-Lab הזה תלמדו איך להשתמש במשאבים של Google Cloud מ-PowerShell.
מה תלמדו
- איך מתקינים את Cloud Tools ל-PowerShell.
- איך מבצעים אימות באמצעות Google Cloud SDK.
- איך ליצור ולנהל את Google Compute Engine מ-PowerShell.
- איך לגבות נתונים מ-PowerShell ל-Google Cloud Storage.
למה תזדקק?
איך תשתמשו במדריך הזה?
איזה דירוג מגיע לחוויה שלך עם Google Cloud Platform?
2. הגדרה ודרישות
כדי להשתמש ב-Codelab הזה, צריך פרויקט ב-Google Cloud כדי לנהל אינטראקציה עם PowerShell. אם יש לכם פרויקט, תוכלו להשתמש בו או ליצור פרויקט חדש לפי השלבים הבאים.
הגדרת סביבה בקצב עצמאי
אם אין לכם עדיין חשבון Google (Gmail או G Suite), עליכם ליצור חשבון. נכנסים למסוף Google Cloud ( console.cloud.google.com) ויוצרים פרויקט חדש:
חשוב לזכור את מזהה הפרויקט – שם ייחודי בכל הפרויקטים ב-Google Cloud Platform. בהמשך ב-Codelab הזה, היא תיקרא PROJECT_ID
.
בשלב הבא צריך להפעיל את החיוב במסוף Google Cloud כדי להשתמש במשאבים של Google Cloud Platform, כמו Google Cloud Datastore ו-Cloud Storage.
משתמשים חדשים ב-Google Cloud Platform זכאים לתקופת ניסיון בחינם בשווי 300$. ההרצה של Codelab הזה לא אמורה לעלות לך יותר מכמה דולרים, אבל היא יכולה להיות גבוהה יותר אם תחליטו להשתמש ביותר משאבים או אם תשאירו אותם פועלים (עיינו בקטע 'ניקוי' בסוף המסמך).
3. התקנה
התקנת סביבה בקצב עצמאי
רכיבי cmdell של PowerShell מגיעים כחלק מ-Cloud SDK ל-Windows. אם עדיין לא עשיתם זאת, מורידים ומתקינים את Google Cloud SDK ל-Windows כפי שמתואר במדריך למתחילים ל-Windows. חשוב לוודא שסימנתם את האפשרות PowerShell כשמתקינים את Cloud SDK.
4. אימות
Cloud Tools ל-PowerShell משתמש בפרטי הכניסה ובהגדרות שמאוחסנים ב-Cloud SDK. כדי להתחיל להשתמש ב-cmdlets, עליך להתחבר תחילה באמצעות Cloud SDK.
אימות סביבה בקצב עצמאי
מפעילים את Google Cloud SDK Shell ומריצים את הפקודה הבאה.
gcloud init
מאשרים את האפשרות להתחבר באמצעות חשבון המשתמש שלכם ב-Google.
To continue, you must log in. Would you like to log in (Y/n)? Y
כאשר מופיעה ההנחיה בדפדפן, מתחברים לחשבון המשתמש האישי ב-Google ולוחצים על אישור כדי להעניק הרשאת גישה למשאבי Google Cloud Platform.
בשורת הפקודה, בוחרים פרויקט ב-Cloud Platform מהרשימה של הפרויקטים שיש להם הרשאות של בעלים, עריכה או צפייה.
Pick a cloud project to use:
[1] [my-project-1]
[2] [my-project-2]
...
Please enter your numeric choice:
5. הרצת אירועי cmdle של Google Cloud בתוך PowerShell
לאחר האימות, תוכלו להשתמש ב-cmdlets של Google Cloud ב-PowerShell. מאתרים ופותחים את מעטפת שורת הפקודה של PowerShell.
כדי לוודא ש-cmdlets של Google Cloud מותקנים כראוי, מריצים cmdlet Get-GceInstance
. כאן אמורה להופיע רשימה של המכונות של Compute Engine שיש בפרויקט.
6. יצירה וניהול של מכונות Google Compute Engine
בקטע הזה יוצרים ומנהלים את Google Compute Engine מתוך הכלים של Google Cloud ל-PowerShell.
יצירת הגדרה של מכונה
כדי ליצור מכונה, צריך קודם ליצור הגדרה של מכונה. לכל הפחות יש צורך בשם, סוג מכונה וקובץ דיסק אתחול או דיסק אתחול קיים. אפשר להשתמש ב-Get-GceImage
כדי ליצור תמונת דיסק וב-New-GceInstanceConfig
כדי ליצור הגדרה.
$disk = Get-GceImage "windows-cloud" -Family "windows-2012-r2"
$config = New-GceInstanceConfig "my-vm-1" `
-MachineType "n1-standard-4" `
-DiskImage $disk
בשלב הזה, יש מערך הגדרות אישיות שבעזרתו תוכלו ליצור מכונה.
יצירת מופע
משתמשים ב-cmdlet Add-GceInstance
כדי ליצור מכונה חדשה של Compute Engine. אפשר לציין פרויקט ואזור, אבל אם לא יושמטו, ערכי הפרמטרים שמוגדרים כברירת מחדל יהיו ערכי ברירת המחדל של ההגדרות האישיות הפעילות של Cloud SDK. אם מציינים פרויקט, חשוב להחליף את הפרויקט PROJECT_ID
במזהה הפרויקט שלכם.
$config | Add-GceInstance -Project PROJECT_ID -Zone europe-west1-b
ניהול מופע
אפשר להשתמש ב-cmdlet Get-GceInstance
כדי לאחזר מכונות וירטואליות של פרויקט. מכיוון ששם המכונה לא יכול להיות ייחודי בכל הפרויקטים או התחומים, תוכלו לציין פרמטר Project או Zone כדי לצמצם את החיפוש. כברירת מחדל, ה-cmdlet משתמש בערכים שנמצאים בתצורה הפעילה של Cloud SDK.
$instance = Get-GceInstance "my-vm-1"
אתם יכולים להגדיר תגי מכונות, דיסקים, הגדרות גישה ומטא-נתונים אחרים אחרי יצירת המכונה באמצעות ה-cmdlet Set-GceInstance
. אפשר להוסיף מטא-נתונים ולהסיר אותם לפי ההוראות שבהמשך.
Set-GceInstance $instance -AddMetadata @{"newKey" = "newValue"}
Set-GceInstance $instance -RemoveMetadata "newKey"
Set-GceInstance $instance -RemoveTag "beta" -AddTag "alpha"
עכשיו מוסיפים תג שבו תשתמשו בהמשך כדי להסיר את המופע.
Set-GceInstance $instance -AddTag "to-be-removed"
אפשר להפעיל, להפסיק או להפעיל מחדש מכונה באמצעות סוגים שונים של cmdlet. כדי להפנות למופע מסוים, אפשר להשתמש בשם או באובייקט בעל הקלדה חזקה שהוחזרה מה-cmdlet Get-GceInstance
. מפעילים חלק מהפקודות האלה.
Stop-GceInstance $instance
Start-GceInstance $instance
Restart-GceInstance "my-vm-1"
לסיום, בסיום העבודה עם המכונה, מסירים אותה מ-Compute Engine באמצעות ה-cmdlet Remove-GceInstance
ומציינים את התג שציינתם קודם.
Get-GceInstance -Project $project |
Where { $_.Tags.Items -contains "to-be-removed" } |
Remove-GceInstance -WhatIf
7. גיבוי נתונים ב-Google Cloud Storage
בחלק הזה של שיעור ה-Codelab, מגבים נתונים מהמכונה המקומית ל-Google Cloud Storage באמצעות הכלים של Cloud ל-PowerShell.
Create a bucket
אתם צריכים ליצור קטגוריה לפני שאתם מעלים קבצים ל-Cloud Storage. משתמשים ב-cmdlet New-GcsBucket
כדי ליצור קטגוריה חדשה.
$bucket = "my-gcs-bucket"
New-GcsBucket $bucket
העלאת קבצים לקטגוריה
אפשר להשתמש ב-New-GcsObject
כדי להעלות קבצים או תיקיות שלמות לקטגוריה.
אפשר להעלות את התוכן של קובץ מקומי ל-Cloud Storage באמצעות הפרמטר -File
וציון נתיב קובץ. לחלופין, אפשר להעביר את תוכן האובייקט כמחרוזת דרך צינור עיבוד הנתונים של PowerShell, או להשתמש בפרמטר -Value
.
בוחרים קובץ מקומי במכונה ומעלים אותו לקטגוריה באופן הבא.
New-GcsObject -Bucket "my-gcs-bucket" -File "C:\path\to\some\file\hello.txt"
אפשר להעלות ספרייה שלמה מהדיסק המקומי ל-Cloud Storage באמצעות הפרמטר -UploadFolder
וציון נתיב התיקייה. אם לא רוצים שהתיקייה תועלה ישירות לרמה הבסיסית (root) של הקטגוריה של Cloud Storage, אפשר להשתמש ב--ObjectNamePrefix
כדי לציין קידומת שתחול על כל אובייקט שמעלים.
בוחרים תיקייה מקומית במכונה ומעלים אותה לקטגוריה באופן הבא.
New-GcsObject -Bucket "my-gcs-bucket" -Folder "C:\path\to\some\folder"
נתוני חיפוש
ניתן לחפש נתונים באמצעות cmdlets או באמצעות הספק באמצעות ה-cmdlets הנפוצים לחיפוש קבצים. מנסים את הפקודה הבאה עם הקטגוריה.
Get-GcsObject $bucket | Select Name, Size | Out-GridView
אמור להופיע חלון קופץ עם שם וגודל.
קריאת נתונים
אפשר להשתמש ב-cmdlet Read-GcsObject
כדי לקרוא נתונים. לדוגמה, אפשר להשתמש בפקודה הבאה כדי לקרוא קובץ בשם hello.txt
בשולחן העבודה.
Read-GcsObject $bucket "hello.txt" `
-OutFile "$Env:UserProfile\Desktop\hello.txt"
מחיקת נתונים
לבסוף, אפשר למחוק נתונים באמצעות ה-cmdlet Remove-GcsObject
. כדי למחוק את כל התוכן של הקטגוריה, משתמשים בפקודה הבאה.
Get-GcsObject $bucket | Remove-GcsObject
8. מעולה!
בשיעור ה-Codelab הזה למדת איך לנהל מכונות של Compute Engine וקטגוריות של Cloud Storage מ-PowerShell, אבל יש עוד! אפשר גם לנהל משאבים של Cloud SQL ו-Cloud CDN באמצעות PowerShell. למידע נוסף, ניתן לעיין ברשימת השלבים הבאים.
אילו נושאים דיברנו?
- איך מתקינים את Cloud Tools ל-PowerShell.
- איך מבצעים אימות באמצעות Google Cloud SDK.
- איך ליצור ולנהל את Google Compute Engine מ-PowerShell.
- איך לגבות נתונים מ-PowerShell ל-Google Cloud Storage.