בתחום התשתית כקוד (IaC), אחת מהכלים המועילות ביותר שיצאו בשנים האחרונות היא טרהפורם של HashiCorp ווינדוס. היכולת לגרסא את התשתית, לאוטומט את הקצאת המשאבים ולבצע ביצועים בין ספקי ענן שונים היא משמעותית לכל תהליכי DevOps ואוטומציה.
אחד השימושים של טרהפורם הוא בCI/CD. טרהפורם מאפשר לך:
הסרטונים האחרונים שלי
- ליצור סביבת בדיקות
- להפעיל יישום
- לבצע בדיקות אינטגרציה
- להרוס את סביבת הבדיקות
כל השלבים מבוצעים באופן אוטומטי גם. ואין צורך במרכז נתונים!
דרישות מוקדמות
מאמר זה הוא מדריך לקבלת טרהפורם ווינדוס מוכן ופעיל. אם תרצה לעקוב אחרי, אנא ודא שלך יש את הדרישות המוקדמות הבאות במקום.
- A Windows 10 device
- חשבון AWS
- CLI של AWS מותקן ומוגדר במכשיר הזה. אתה יכול ללמוד איך להתקין אותו כאן ואיך להגדיר אותו כאן.
- (אופציונלי) Visual Studio Code עם ההרחבה של טרהפורם
התקנת אפליקצית טרהפורם וינדוס
לנצל את היכולת של Terraform, עליך תחילה להתקין אותו על מערכת ההפעלה שלך לבחירתך. במאמר זה, אני מתמקד ב-Windows. אך ידעו ש-Terraform יכול לרוץ על מערכות הפעלה אחרות. אם אתה לא ב-Windows, תסתכל על מסמך ההתקנה.
הדרך הקשה
אם אינך יכול להשתמש במנהל חבילות או שתרצה להבין איך תהליך ההתקנה עובד, תוכל להתקין את Terraform באופן ידני. ניתן להתקין את Terraform על ידי הורדת הבינארי והוספתו לנתיב הסביבתי של המערכת. אם זה נראה מאיים, אני מבטיח לך שיש דרך קלה יותר לעשות זאת, כמו שתלמד בחלק הבא.
- הורד את הגרסה המתאימה של Terraform מ-דף ההורדות של HashiCorp. במקרה שלי, זו הגרסה ל-Windows בסיבית 64 ביט.
- צור תיקייה בדרייב C:\ שבו תוכל לשים את הקובץ הנפרץ של Terraform. אני מעדיף לשים את המתקינים בתת-תיקייה (לדוגמה, C:\tools) שבה תוכל לשים את הבינארים.
- לאחר שההורדה מסתיימת, לך ומצא אותה ב-מערכת הקבצים. פתח את הקובץ zip לתיקייה שיצרת בשלב 2.
- פתח את תפריט ההתחלה שלך והקלד "סביבה" והדבר הראשון שיופיע צריך להיות ערוך את משתני הסביבה של המערכת. לחץ על זה וצריך לראות את החלון הזה.

5. לחץ על משתני הסביבה… בתחתית ותראה את זה:

6. מתחת לחלק התחתון שבו כתוב משתנים של המערכת, מצא אחד בשם Path ולחץ על עריכה. תראה אז רשימה של מיקומי התכניות הנדרשות לווינדוס בכל רגע נתון.
7. לחץ על חדש והוסף את נתיב התיקייה שבו נמצא terraform.exe לתחתית הרשימה. זה צריך להיראות כך כשתסיים.

8. לחץ על אישור בכל התפריטים שפתחת עד שאין עוד.
9. כדי לוודא שווינדוס זוהה את הנתיב החדש, פתח פורמט קוד פרום/פושר-שלט והזן refreshenv
.
10. בדוק שההתקנה הצליחה על ידי הזנת terraform --version
. אם זה מחזיר גרסה, אתה בסדר.
הדרך הקלה
אוי, זה היה הרבה עבודה! זה היה נוראי לעשות את זה בכל פעם שהיית צריך להתקין תוכנה חדשה על המכשיר שלך. בואו נשתמש במנהל חבילות במקום. ישנם כמה מנהלי חבילות שאפשר להשתמש בהם כדי להתקין את Terraform בווינדוס. לווינדוס, המועדף עליי הוא Chocolatey. הוא מפשט את תהליך ההתקנה, הסרה והעדכון של תוכנות לפקודה בשורה אחת, ו-Terraform אינו יוצא מכלל זה.
כדי להתקין את Terraform עם Chocolatey, עשה את השלבים הבאים:
- פתחו את מסוף הפקודות/PowerShell כמנהל מערכת והתקינו את Chocolatey באמצעות הפקודה מהדף ההתקנה שלהם.
- לאחר שהתהליך הושלם, הפעילו
choco install terraform
. אם תרצו, תוכלו גם להוסיף-y
בסופו כדי להסכים אוטומטית להתקנתו במכשיר שלכם.
לאחר שהפקודה תופעל, תקבלו משהו דומה לזה:
3. בדקו אם ההתקנה הצליחה על ידי הזנת terraform --version
.
הדרך בלינוקס
I can almost hear what you’re thinking. Wait a minute Chris, didn’t you say this was going to cover installing Terraform on Windows?
כן, זה עדיין קיים. אך אחת התכונות ב־Windows 10 היא תת־מערכת ה־Windows עבור לינוקס, או WSL. זה מאפשר לך להריץ פקודות לינוקס ב־Windows.
- התקינו את WSL. אני לא מתכוון להיכנס לעומק כאן על איך להתקין ולהגדיר את WSL, אך אם ברצונכם להמשיך ואין לכם כרגע את זה מוגדר. משולבת קטע של TechSnips שעשיתי על נושא זה ניתן למצוא למטה.
2. בשלך WSL shell, הריצו apt-get install unzip
. תצטרכו את זה כדי לחלץ את הבינאריים של Terraform מאוחר יותר.
3. הורידו את Terraform על ידי הפעלת wget https://releases.hashicorp.com/terraform/0.12.6/terraform_0.12.6_linux_amd64.zip
. זכרו להחליף את הגרסה והארכיטקטורה באחד שמתאימים הטוב ביותר למכשיר שלכם. תוכלו למצוא את הרשימה המלאה של הגרסאות של Terraform כאן.
4. הריץ unzip terraform_0.12.6_linux_amd64.zip terraform
כדי לפרוץ את תוכן ה-zip לתיקייה בשם terraform.
5. לאחר שהקובץ ZIP נפרץ, יהיה עליך להעביר אותו למקום הנגיש על ידי נתיב המערכת. למרבה המזל, ב-Linux יש תיקייה שמשתמשים יכולים להוסיף לה בינאריים כברירת מחדל. העבר את הבינארי של Terraform לשם על ידי הרצת mv terraform /usr/local/bin/
. התיקייה /usr/local/bin כבר מוגדרת בנתיב המערכת שלך.
6. ודא כי ההתקנה הצליחה על ידי הרצת terraform --version
.
אוטומציה של מקרן Terraform של EC2 ב-AWS
עכשיו שהתקנת את Terraform, אתה יכול להתחיל להשתמש בו. בפוסט הזה, אני הולך להדגים איך לבנות מקרן פשוט של EC2 ב-AWS עם Terraform. אך יש לדעת ש-Terraform יכול להקצות מאות סוגים שונים של תשתיות.
כדי להתחיל, תצטרך תיקייה כדי להריץ את סקריפטי ה-EC2 של Terraform ממנה. חשוב להפריד תיקייה נפרדת לכל סביבה. בזמן שאני כותב את זה, Terraform אין לו אפשרות לסנן אילו סקריפטים הוא מריץ. הוא יריץ כל סקריפט בתיקיית העבודה הנוכחית שלך.
הגדרת סקריפט של TF
- במקום cmd או PowerShell רץ כמנהל, הרץ
mkdir hello-terraform
ואזcd ./hello-terraform
. - פעם שיש לך ספרייה, יהיה עליך לקבוע סקריפט Terraform. למטה דוגמה של סקריפט שאתה יכול להשתמש בו. זהו סקריפט טיפוסי של Terraform שמשתמש בספק AWS provider ליצירת resource של מקום AWS.
אם ברצונך את הסקריפט המלא, העתק אותו למטה. אם ברצונך להבין מה עושה סקריפט זה, המשך לקרוא למטה.
# Terraform HCL
3. שמור את הסקריפט למעלה כ- main.tf
בתיקיית העבודה שלך.
הבנת סקריפטי TF
לפני שתמשיך, תבחן את הבלוק למטה ומה הוא מצהיר.
#Terraform HCL
בלוק זה אומר ל-Terraform EC2 איזה ספק להשתמש. יש ספקים לכל ספקי הענן המרכזיים, וגם לספקי on-prem. אם אתה מתקדם יותר ואתה יודע לכתוב ב-Golang, תוכל גם לכתוב ספק משלך.
בלוק זה אומר ל-Terraform להשתמש בספק AWS ובמפתחות גישה בקובץ ~/.aws/credentials
תחת שם הפרופיל default
. קובץ זה יוצר כאשר אתה מגדיר את AWS CLI עם פקודת aws config
כפי שנאמר בדרישות.
כדאי גם לשים לב ש-~/
הוא תרגום קצר לתיקיית המשתמש הנוכחית. אם אתה מגיע מרקע של Windows, זה שווה ל-$env:USERPROFILE
או %USERPROFILE%
. אך Terraform לא תומך בתיקונים אלו בזמן כתיבת התשובה.
הבלוק הבא מתאר מופע EC2 של Terraform, ומה לבנות אותו באמצעות. אם תבדוק את מסמכי התיעוד של Terraform עבור aws_instance, תוכל לראות שכמה מהפרמטרים נדרשים; כמה אופציונליים. במקרה זה, הפרמטרים הנדרשים הם זיהוי ה-AMI (ami-07d0cf3af28718ef8
) עבור Ubuntu 18.04 LTS ו־t2.micro
עבור סוג המופע.
על ידי מעבר בלוק תגית עם המפתח Name
והערך HelloTerraform
, תגית זו תועבר גם למופע שיווצר. זה אופציונלי.
#Terraform HCL
כעת שהתסריט מוגדר, יש לקרוא אותו על ידי הרצת terraform init
מהתיקייה הפעילה שלך. זה יוריד את כל התלויות והספקים לתיקייה בשם .terraform
. אם הכל מתנהל בסדר, אתה אמור לקבל משהו דומה לזה:
לפני שתבצע שינויים, Terraform EC2 מאפשר לך לראות מה ייווצר על ידי הרצת terraform plan
. הנה מה שהוא יפליט:
# ייווצר aws_instance.ubuntu
בניית מופע EC2 של AWS: יצירה
עכשיו אתה מוכן להריץ את זה בעצמך על ידי הרצת terraform apply
. למטה תראה פלט כמו terraform plan
, אך עם הוספת הודעת קודם לאישור שאכן ברצונך ליישם את השינויים האלה.
פעם אחת שתכתוב 'כן', טראפורם EC2 יתחיל להגדיר את מקרא ה-EC2 של טראפורם על ידי קריאה ל- AWS APIs עם מפתח הגישה בקובץ ההרשאות שלך. זה עשוי לקחת זמן מסוים. לאחר השלמת התהליך, תראה משהו כמו מטה:
הרסת מופע EC2 של AWS
לאחר שתסיים עם סביבת הבדיקה, תוכל להרוס את המופע.
במסוף cmd/PowerShell שלך, הקלד terraform destroy
. כמו בפקודת apply
, תראה רשימת משאבים שטראפורם הולך להרוס ואז הזמן לפני הריסתם בפועל.
פעם שתקליד כן, טראפורם EC2 יתחיל להרוס את המופע ויאשר כשהוא מסיים.