מדריך למתחילים: יצירת מכונה וירטואלית באמצעות Terraform
במדריך הזה מוסבר איך להשתמש ב-Terraform כדי ליצור מכונה וירטואלית (VM) ב-Compute Engine ולהתחבר למכונה הווירטואלית הזו.
Hashicorp Terraform הוא כלי של תשתית כקוד (IaC) שמאפשר להקצות ולנהל תשתית ענן. Terraform provider for Cloud de Confiance (Cloud de Confiance provider) מאפשר להקצות ולנהל Cloud de Confiance תשתית.
לפני שמתחילים
כדי להשתמש בטרמינל אונליין שכבר מוגדר בו ה-CLI של gcloud ו-Terraform, צריך להפעיל את Cloud Shell:
בחלק התחתון של הדף הזה מתחיל סשן של Cloud Shell ומופיעה הנחיה של שורת הפקודה. הסשן יופעל תוך כמה שניות.
-
יוצרים או בוחרים Cloud de Confiance פרויקט.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
-
יוצרים Cloud de Confiance פרויקט:
gcloud projects create PROJECT_ID
מחליפים את
PROJECT_IDבשם של פרויקט Cloud de Confiance שיוצרים. -
בוחרים את הפרויקט שיצרתם: Cloud de Confiance
gcloud config set project PROJECT_ID
מחליפים את
PROJECT_IDבשם הפרויקט ב- Cloud de Confiance .
-
מפעילים את Compute Engine API:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםgcloud services enable compute.googleapis.com
-
מעניקים תפקידים לחשבון המשתמש. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM:
roles/compute.instanceAdmin.v1gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
USER_IDENTIFIER: המזהה של חשבון המשתמש חשבון. דוגמאות מופיעות במאמר ייצוג המשתמשים במאגרי כוח עבודה בכללי מדיניות IAM. -
ROLE: תפקיד ה-IAM שאתם מקצים לחשבון המשתמש.
-
הכנת הסביבה
משכפלים את מאגר GitHub שמכיל דוגמאות ל-Terraform:
git clone https://github.com/terraform-google-modules/terraform-docs-samples.git --single-branchעוברים לספרייה שמכילה את הדוגמה למדריך למתחילים:
cd terraform-docs-samples/compute/quickstart/create_vm
סקירת קובצי Terraform
בודקים את הקובץ main.tf. בקובץ הזה מוגדרים המשאבים שרוצים ליצור. Cloud de Confiance
cat main.tf
הפלט אמור להיראות כך:
בקובץ הזה מתואר המשאב google_compute_instance, שהוא משאב Terraform של מכונה וירטואלית ב-Compute Engine. המאפיינים הבאים מוגדרים ב-google_compute_instance:
- הערך של
nameהואmy-vm. - הערך של
machine_typeהואn1-standard-1. - הערך של
zoneהואus-central1-a. -
boot_diskמגדיר את דיסק האתחול של המכונה. -
network_interfaceמוגדר לשימוש ברשת שמוגדרת כברירת מחדל בפרויקטCloud de Confiance .
יצירת מכונה וירטואלית ב-Compute Engine
ב-Cloud Shell, מריצים את הפקודה הבאה כדי לוודא ש-Terraform זמין:
terraformהפלט אמור להיראות כך:
Usage: terraform [global options] <subcommand> [args] The available commands for execution are listed below. The primary workflow commands are given first, followed by less common or more advanced commands. Main commands: init Prepare your working directory for other commands validate Check whether the configuration is valid plan Show changes required by the current configuration apply Create or update infrastructure destroy Destroy previously-created infrastructureמריצים את הפקודה הבאה כדי להפעיל את Terraform. הפקודה הזו מכינה את סביבת העבודה כדי ש-Terraform יוכל להחיל את ההגדרות.
terraform initהפלט אמור להיראות כך:
Initializing the backend... Initializing provider plugins... - Finding latest version of hashicorp/google... - Installing hashicorp/google v5.35.0... - Installed hashicorp/google v5.35.0 (signed by HashiCorp) Terraform has created a lock file .terraform.lock.hcl to record the provider selections it made above. Include this file in your version control repository so that Terraform can guarantee to make the same selections by default when you run "terraform init" in the future. Terraform has been successfully initialized!מריצים את הפקודה הבאה כדי לאמת את הגדרות Terraform. הפקודה הזו מבצעת את הפעולות הבאות:
- מוודאים שהתחביר של
main.tfנכון. - תיווצר תצוגה מקדימה של המשאבים.
terraform planהפלט אמור להיראות כך:
Plan: 1 to add, 0 to change, 0 to destroy. Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform apply" now.- מוודאים שהתחביר של
מחילים את התצורה כדי להקצות את המשאבים שמתוארים בקובץ
main.tf:terraform applyכשתופיע בקשה, כותבים
yes.תישלח מ-Terraform בקשה ל- Cloud de Confiance APIs כדי ליצור את המכונה הווירטואלית שמוגדרת בקובץ
main.tf.הפלט אמור להיראות כך:
Apply complete! Resources: 1 added, 0 changed, 0 destroyed
התחברות למכונת ה-VM
מתחברים למופע של מכונת ה-VM שיצרתם באמצעות הפקודה הבאה:
gcloud compute ssh --zone=us-central1-a my-vm
הסרת המשאבים
כדי לא לצבור חיובים בחשבון על המשאבים שבהם השתמשתם בדף הזה, אתם צריכים למחוק את הפרויקט יחד עם המשאבים. Cloud de Confiance Cloud de Confiance
ב-Cloud Shell, מריצים את הפקודה הבאה כדי למחוק את משאבי Terraform:
terraform destroy
כשתופיע בקשה, כותבים yes.
הפלט אמור להיראות כך:
Destroy complete! Resources: 1 destroyed.