כן, האם יצרת מכונה וירטואלית ב-Azure דרך פורטל Azure קודם? אם כן, כמה לחיצות נדרשו כדי לבצע את התהליך? האם תוכל לעשות זאת שוב ושוב, ולספק את אותם ערכי קלט בדיוק באמצעות הזהים כדי להבטיח עמידות לתקן מסוים? ייתכן שלא. עליך לאוטומציה. צור מכונות וירטואליות ב-Azure באמצעות Terraform!
Terraform מאת HashiCorp הוא יימוש היוצר תשתיות פשוטות עד מורכבות באתר או בענן. Terraform הוא קובץ יישום יחיד שקורא בקבצי הגדרה, יוצר מצב ואז מבצע את יצירת התשתית והבטיחה שהיא נוצרת ונשמרת במצב זה.
במאמר זה, תלמד כיצד להתחיל עם Terraform וליצור מכונה וירטואלית ב-Azure. הדרכון הזה יהיה דוגמה נהדרת ל-Terraform ב-Azure.
דרישות קדם-נדרשות
אם ברצונך להמשיך עם ההדרכה הזו, וודא שיש לך את הדברים הבאים:
בזמן השלבים, הדרכה זו תשתמש ב-macOS עם PowerShell Core, אף שהתהליך יכול להתבצע ב-Windows 10 עם PowerShell Core, Windows PowerShell או אפילו בפקודת ה-Windows.
התקנת Terraform
להתחיל, תצטרך ראשית להוריד את Terraform. ישנם הרבה דרכים לעשות זאת תלוי בהעדפתך. המדריך הזה משתמש ב-macOS ולכן תוכל להשתמש ב-HomeBrew על ידי הרצת brew install terraform
. תוכל גם לעבור ישירות לדף ההורדה של טרהפורם או, אם אתה בווינדוס, תוכל להשתמש ב-Chocolatey גם כן.
הידעת ש-Azure Cloud Shell מגיעה עם טרהפורם מותקנת מראש?
כאשר יש לך את Terraform הורדת, העתק אותו לתיקייה בנתיב שלך והרץ terraform
. תראה הוראות שימוש כמצוין למטה. אם אתה רואה זאת, אתה מוכן להמשיך.

אימות ל-Azure
טרהפורם משתמשת בספקים כדי לדבר עם שונים מחדשים וספקים בענן. במקרה זה, עליך להגדיר את ספק Azure של טרהפורם. בהנחה שיש לך את Azure CLI מותקן וכבר מאומת ב-Azure, עליך תחילה ליצור סוכן שירות. טרהפורם תשתמש בסוכן השירות כדי לאמת ולקבל גישה למנוי שלך ב-Azure.
יצירת סוכן שירות
בקונסולת שלך, צור סוכן שירות באמצעות Azure CLI. כדי לעשות זאת:
ראשית, יש למצוא את מזהה המינוי שלך באמצעות הפקודה az account list
למטה.
לאחר שתמצא את מזהה המינוי, יש ליצור סוכן שירות באמצעות תפקיד Contributor המוקצה למינוי שלך.
CLI של Azure יתקשר עם Azure ויצור אפליקציית Azure AD עם סיסמה כפי שמוצג למטה. מכיוון שאתה מקצה את הפלט שמוצג למעלה למשתנה $sp
, יש לך את appId
ואת password
מאוחסנים במשתנה לשימוש מאוחר יותר.

הגדרת משתנים סביבתיים
Terraform צריך לדעת ארבעה פריטי הגדרה שונים כדי להתחבר בהצלחה ל-Azure.
- מזהה המינוי של Azure
- המזהה של אפליקציית Azure AD של סוכן השירות
- סיסמת סוכן השירות
- נותן השירות של Azure AD
אחד מהדרכים לספק את המידע הזה ל-Terraform היא על ידי שימוש במשתני סביבה. מכיוון שהמדריך הזה פועל בתוך קונסולת PowerShell, ניתן להגדיר את משתני הסביבה הללו באמצעות $env:
. למטה תראה את כל משתני הסביבה ש-Terraform יחפש כאשר הוא מנסה להתחבר ל-Azure.
מאחר שפלט הפקודה az ad sp create-for-rbac
נשמר למשתנה $sp
מראש, ניתן פשוט להפנות למאפיינים במקום להעתיק ולהדביק אותם.
לאחר שהגדרת משתני הסביבה, Terraform מוכן להתחבר ל-Azure!
צור קובץ הגדרה
כל תצורות ה־Terraform נוצרות בתיקייה אחת בדרך כלל לפי שם מודול. במדריך הזה, אתה לא יוצר מודול אבל תתקדם לפי אותה השיטה.
בקונסולת ה־PowerShell שלך, צור תיקייה בשם TerraformTesting בכל מקום שתרצה ולאחר מכן החליף אל התיקייה ההיא.
לאחר מכן, צור את קובץ התצורה main.tf. זהו המקום שבו יאוחסן קובץ התצורה לבניית ה־Azure VM עם Terraform. זהו הקובץ המפורסם ביותר שנקרא "ראשי". הוא מכיל הכרזות ספק ומשאבים לכל האינפרהסטרקטורה שבה תנהל התצורה.
אם ברצונך ללמוד עוד על התחביר (HCL), מייקל לוואן ואני יש לנו פרק מצוין על Terraform בספר האלקטרוני שלנו No BS Azure and DevOps eBook.
צור קובץ חדש main.tf בתוך התיקייה Terraformtesting שנראה כך למטה.
אתחל את Terraform
צריך ש-Terraform יודע איזה סוגי ספקים תשתמש כשהוא מנסה ליצור משאבים. זה חייב לדעת זאת מראש מכיוון שהוא מוריד את הספקים האלה באותו התיקייה שאתה עובד בה.
הורד את ספק המשאבים azurerm
כפי שהוגדר בקובץ התצורה הראשי על ידי הרצת terraform init
. לאחר מכן, תראה פלט דומה לזה שמופיע למטה.

אמת את התצורה
התצורה שיצרת יכולה שלא להיות מושלמת. אני יודע, קשה להאמין, נכון? טרהפורם צריך לוודא את התצורה לכל שגיאות תחביר בתצורה. כדי לעשות זאת, הריצו את הפקודה terraform plan
. פקודה זו קוראת את קבצי התצורה בתיקייה ודורסת כל שגיאות.
ודאו שתתקנו את כל השגיאות שהפקודה
terraform plan
גילתה לפני שתנסו להפעיל באמת את התשתית!
בניית ה-VM ב-Azure עם Terraform
סופסוף, הגיע הזמן לבנות את ה-VM ב-Azure באמצעות הרצת terraform apply
. כאשר אתם מפעילים את terraform apply
, טרהפורם קורא את קבצי התצורה שיש לכם בתיקייה ומבקש אישור מכם. לאחר שתקלידו "כן", הוא ייגש אז ל-Azure ויתחיל לבנות את ה-VM ואת כל המשאבים המשויכים אליו.

אם אתם רואים את הטקסט המבריק והמבריק, הירוק Apply complete!
בתחתית, זאת אומרת שטרהפורם בנה את המשאבים בהצלחה!
ניקוי
מאחר שזו הייתה רק הדגמה וכנראה שאינכם מתכוונים לשמור על ה-VM הזה, וודאו לעצמכם טובה והסירו הכל מה שעשיתם.
יצרתם אישור שירות עבור טרהפורם כדי לאמת ל-Azure. אתם יכולים להסיר את זה עם הפקודה az ad sp delete
למטה.
בנוסף, הסירו את ה-VM שיצרתם וכל המשאבים האחרים בקובץ התצורה באמצעות terraform destroy
. אם ברצונכם לאמת את התצורה ולבדוק מה יקרה אם תריצו terraform destroy
, תוכלו גם להריץ terraform plan -destroy
.
סיכום
Terraform הוא כלי נהדר וחינמי לבניית תשתיות בתחומים רבים. למידת התחביר של HCL היא החלק הקשה ביותר של Terraform, אך באמת, HCL הוא שפה אינטואיטיבית. אם אתה חושב על השימוש בכלי כמו Terraform או תבניות ARM, לדוגמה, למד את Terraform!
Terraform הוא כלי תעשייתי פופולרי כעת עם תמיכה מקהילה נרחבת והמון אנשים שיכולים לעזור!