במדריך הזה מוסבר איך להתחיל להשתמש ב-Terraform באמצעות שימוש ב-Terraform ליצירת שרת אינטרנט בסיסי ב-Compute Engine.
במדריך הזה תלמדו:
- איך משתמשים ב-Terraform כדי ליצור מכונה וירטואלית ב- Cloud de Confiance.
- איך מפעילים שרת בסיסי של Python Flask.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Cloud de Confiance by S3NS, והשימוש בהם כרוך בתשלום:
כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.
לפני שמתחילים
לפני שתתחילו את המדריך צריך לבצע את ההכנות הבאות.
יצירת פרויקט חדש או בחירה בפרויקט קיים
-
In the Cloud de Confiance console, go to the project selector page.
-
Select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
הגדרת ההרשאות
ודאו שיש לכם את ההרשאות הנדרשות ל-Compute Engine בחשבון המשתמש.
compute.instances.*compute.firewalls.*
למידע נוסף על תפקידים והרשאות.
הפעלת ה-API
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
התקנת ה-CLI של gcloud
כדי להשתמש ב-Terraform בסביבת פיתוח מקומית, מתקינים ומפעילים את Google Cloud CLI, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש:
- להתקין את ה-CLI של gcloud.
-
מאתחלים את ה-CLI של gcloud:
gcloud init
- יצירת פרטי כניסה לאימות מקומי בחשבון:
gcloud auth application-default login
איך יוצרים מכונה וירטואלית ב-Compute Engine?
בשלב הראשון קובעים את ההגדרות של המכונה הווירטואלית בקובץ תצורה של Terraform. אחר כך מריצים פקודות של Terraform כדי ליצור את המכונה הווירטואלית בפרויקט.
יצירת הספרייה
יוצרים ספרייה חדשה. בספרייה החדשה, יוצרים קובץ main.tf לתצורה של Terraform. התוכן של הקובץ מפרט את כל Cloud de Confiance המשאבים שצריך ליצור בפרויקט.
mkdir tf-tutorial && cd tf-tutorial
nano main.tf
יצירת הרשת והתת-רשת של הענן הווירטואלי הפרטי (VPC)
בקטע הזה, יוצרים רשת ותת-רשת של ענן וירטואלי פרטי (VPC) לממשק הרשת של המכונה הווירטואלית.
הוסיפו את המשאבים הבאים של Terraform לקובץ main.tf שיצרתם:
יצירת המשאב של מכונה וירטואלית ב-Compute Engine
בקטע הזה, יוצרים מכונה וירטואלית בודדת ב-Compute Engine עם Debian. במדריך הזה השתמשנו בסוג המכונה הקטן ביותר שזמין. אתם יכולים לשדרג למכונה מסוג גדול יותר.
הוסיפו את המשאב google_compute_instance הבא של Terraform לקובץ main.tf שיצרתם.
בקוד לדוגמה הגדרנו את התחום (zone) Cloud de Confiance כ-us-west1-a. אתם יכולים לשנות אותו לתחום אחר.
הפעלת Terraform
בשלב הזה אתם יכולים להריץ את terraform init כדי להוסיף את יישומי הפלאגין הנדרשים וליצור את הספרייה .terraform.
terraform init
פלט:
Initializing the backend... Initializing provider plugins... ... Terraform has been successfully initialized!
אימות התצורה של Terraform
אתם יכולים גם לאמת את הקוד של Terraform שיצרתם עד עכשיו. כדי לעשות זאת, מריצים את terraform plan ואז:
- מוודאים שהתחביר של
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.
שימוש בתצורה
כדי ליצור את המכונה הווירטואלית, מריצים את terraform apply.
terraform apply
כשתופיע בקשה, כותבים yes.
תישלח מ-Terraform בקשה ל- Cloud de Confiance APIs להגדרת המכונה הווירטואלית החדשה. תוכלו לראות את המכונה החדשה בדף של המכונות הווירטואליות.
הפעלת שרת אינטרנט ב- Cloud de Confiance
בפעולות הבאות ניצור אפליקציית אינטרנט, נפרוס אותה במכונה הווירטואלית וניצור כלל בחומת האש כדי לאשר בקשות לקוח לאפליקציית האינטרנט.
הוספת כלל בהתאמה אישית לחומת האש של SSH
הכלל default-allow-ssh בחומת האש ברשת default מאפשר להשתמש ב-SSH כדי להתחבר למכונה הווירטואלית. אם אתם מעדיפים להשתמש בכלל משלכם למכונה הווירטואלית, תוכלו להוסיף את המשאב הבא בסוף הקובץ main.tf:
כדי ליצור את הכלל בחומת האש, מריצים את terraform apply.
התחברות למכונה הווירטואלית באמצעות SSH
עכשיו מחברים את המכונה הווירטואלית ל-SSH כדי לאמת שכל ההגדרות נכונות.
נכנסים לדף של המכונות הווירטואליות.
מוצאים את המכונה הווירטואלית בשם
flask-vm.לוחצים על SSH בעמודה Connect.
ייפתח חלון טרמינל של SSH בתוך הדפדפן למכונה הווירטואלית שפועלת.
למידע נוסף, קראו את המאמר איך מתחברים למכונות וירטואליות.
יצירת אפליקציית Flask
במדריך הזה אנחנו יוצרים אפליקציה של Python Flask, כדי שיהיה קובץ אחד שמתאר את שרת האינטרנט ובודק את נקודות הקצה (endpoints).
בחלון הטרמינל של SSH בתוך הדפדפן, יוצרים קובץ בשם
app.py.nano app.py
מוסיפים את הטקסט הבא לקובץ
app.py:from flask import Flask app = Flask(__name__) @app.route('/') def hello_cloud(): return 'Hello Cloud!' app.run(host='0.0.0.0')מריצים את
app.py:python3 app.py
כברירת מחדל, התנועה מ-Flask היא ב-
localhost:5000.פותחים חיבור שני של SSH:
- נכנסים לדף של המכונות הווירטואליות.
- מוצאים את המכונה הווירטואלית בשם
flask-vmולוחצים על SSH.
בחיבור השני של SSH, מריצים את
curlכדי לאשר שמוחזר הפתיח שהוגדר ב-app.py.curl http://0.0.0.0:5000
הפלט מהפקודה הזו הוא
Hello Cloud.
פתיחת היציאה 5000 במכונה הווירטואלית
כדי להתחבר לשרת האינטרנט מהמחשב המקומי, היציאה 5000 צריכה להיות פתוחה במכונה הווירטואלית. Cloud de Confiance אפשר לפתוח יציאות לתנועה באמצעות כללים בחומת האש.
צריך להוסיף את המשאב google_compute_firewall הבא של Terraform בסוף הקובץ main.tf.
כדי ליצור את הכלל בחומת האש, מריצים את terraform apply.
הוספת משתנה פלט לכתובת ה-URL של שרת האינטרנט
כדי ליצור את כתובת ה-URL של שרת האינטרנט, מוסיפים משתנה פלט של Terraform בסוף
main.tf:// A variable for extracting the external IP address of the VM output "Web-server-URL" { value = join("",["http://",google_compute_instance.default.network_interface.0.access_config.0.nat_ip,":5000"]) }מריצים את
terraform apply.terraform apply
כשתופיע בקשה, כותבים
yes. כתובת ה-IP החיצונית של המכונה הווירטואלית והיציאה 5000 יודפסו על ידי Terraform במסך, באופן הבא:Web-server-URL = "http://IP_ADDRESS:5000"
אפשר להריץ את
terraform outputבכל שלב כדי לחזור לפלט הזה:terraform output
לוחצים על כתובת ה-URL מהשלב הקודם. ההודעה "Hello Cloud!" תופיע.
זה סימן שהשרת פועל.
פתרון בעיות
אם אחד מה-API שצריך לפעול לא פועל, תופיע הודעת שגיאה ב-Terraform. הודעת השגיאה תכלול קישור להפעלת ה-API. אחרי הפעלת ה-API אפשר יהיה להריץ מחדש את
terraform apply.אם לא מצליחים להתחבר למכונה הווירטואלית באמצעות SSH:
- מוודאים שנוסף כלל לחומת האש של SSH.
- מוודאים שהמכונה הווירטואלית כוללת את הארגומנט
tags = ["ssh"].
הסרת המשאבים
כשתסיימו את המדריך תוכלו למחוק את כל מה שיצרתם, כדי שלא תחויבו.
תוכלו להריץ את הפקודה terraform destroy כדי להסיר את כל המשאבים שהוגדרו בקובץ התצורה של Terraform:
terraform destroy
כדי לאפשר ל-Terraform למחוק את המשאבים, כותבים yes.