פקודות בסיסיות ב-Terraform

כך מחילים ההגדרות של Terraform בפרויקט ב-Google Cloud:

מכינים את Cloud Shell.

  1. מפעילים את Cloud Shell.
  2. מגדירים את פרויקט ברירת המחדל ב-Google Cloud שבו רוצים להחיל את ההגדרות של Terraform.

    תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.

הכנת הספרייה

לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).

  1. יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת .tf, למשל main.tf. במדריך הזה, הקובץ נקרא main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.

    מעתיקים את הקוד לדוגמה בקובץ main.tf החדש שיצרתם.

    לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.

  3. בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
  4. שומרים את השינויים.
  5. מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
    terraform init

    אופציונלי: תוכלו לכלול את האפשרות -upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:

    terraform init -upgrade

החלה של השינויים

  1. בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
    terraform plan

    מתקנים את ההגדרות לפי הצורך.

  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform:
    terraform apply

    ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!‎".

  3. פותחים את הפרויקט ב-Google Cloud כדי להציג את התוצאות. במסוף Google Cloud, נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

פירמוט מחדש

כדי לפרמט מחדש את ההגדרות של Terraform בסגנון הסטנדרטי מזינים את הפקודה הבאה:

terraform fmt

תיקוף

כדי לבדוק אם ההגדרות תקינות מזינים את הפקודה הבאה:

terraform validate

מחיקת שינויים

כדי להסיר משאבים שהוחלו בעבר על הגדרות Terraform, מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה:

terraform destroy

ציון של מזהה הפרויקט

אם אתם מריצים את הפקודה export GOOGLE_CLOUD_PROJECT, רוב המשאבים יכולים להסיק מהו project_id.

משאבים מסוימים (כמו project_iam_*) לא יכולים להסיק את מזהה הפרויקט. כדי לעקוף את הבעיה, בחלק מהדוגמאות נעשה שימוש במקור הנתונים data "google_project". אפשר להחליף את מקור הנתונים הזה במחרוזת של מזהה הפרויקט או בווריאנט.

ב-sql_instance_iam_condition מוצגת דוגמה עם הפתרון הזה.

המאמרים הבאים