שיטות מומלצות לפעולות ב-Terraform

במסמך הזה מפורטות הנחיות והמלצות לפעולות ב-Terraform.

המדריך הזה אינו מבוא ל-Terraform. למידע על שימוש ב-Terraform עם Google Cloud, אפשר לעיין במאמר תחילת העבודה עם Terraform.

התכנון קודם לכול

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

הטמעת צינור אוטומטי לעיבוד נתונים

כדי להבטיח שמירה על העקביות של ההקשר בזמן ההפעלה, יש להפעיל את Terraform באמצעות כלים אוטומטיים. אם מערכת build (כמו Jenkins) כבר נמצאת בשימוש ומאומצת באופן נרחב, השתמשו בה כדי להריץ את הפקודה terraform plan והפקודה terraform apply באופן אוטומטי. אם מערכת כזו לא קיימת, מומלץ להשתמש באחד משני הכלים Cloud Build או Terraform Cloud.

שימוש בפרטי הכניסה של חשבון השירות לאינטגרציה רציפה (CI)

כשמפעילים את Terraform מתוך מכונה בצינור עיבוד נתונים של CI/CD, המערכת צריכה לרשת את פרטי הכניסה של חשבון השירות מהשירות שמריץ את צינור עיבוד הנתונים. כשהדבר אפשרי, כדאי להפעיל צינורות לאינטגרציה רציפה (CI) ב- Google Cloud כי בסביבות Cloud Build,‏ Google Kubernetes Engine או Compute Engine תוכלו להחדיר את פרטי הכניסה בלי להוריד את המפתחות של חשבון השירות.

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

מניעת ייבוא של משאבים קיימים

במידת האפשר, יש להימנע מייבוא משאבים קיימים (באמצעות terraform import), כי הפעולה הזו עלולה להקשות על ההבנה המלאה של מקורות המידע וההגדרות של אותם משאבים שנוצרים באופן ידני. במקום זאת, אפשר ליצור משאבים חדשים באמצעות Terraform ולמחוק את המשאבים הישנים.

אם מחיקת משאבים ישנים מסובכת מדי, אפשר להשתמש בפקודת הייבוא terraform import עם אישור מפורש. אחרי שמייבאים משאבים ל-Terraform, יש לנהל אותם אך ורק באמצעות Terraform.

‫Google מספקת כלי שבעזרתו אפשר לייבא את המשאבים שלכם ב-Google Cloud למצב של Terraform. מידע נוסף מופיע במאמר ייבוא משאבים של Google Cloud למצב של Terraform.

אי שינוי ידני של מצבים ב-Terraform

קובץ המצב של Terraform חיוני כדי לשמור על המיפוי בין ההגדרות של Terraform לבין Google Cloud המשאבים. פגיעה בנתונים עלולה לגרום לבעיות חמורות בתשתית. כשצריך לשנות את קובץ המצב של Terraform, משתמשים בפקודה terraform state.

בדיקה שוטפת של גרסאות מוצמדות

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

כדי לבצע את התהליך הזה אוטומטית, אפשר להשתמש בכלי כמו Dependabot.

שימוש ב-Application Default Credentials בזמן הרצה מקומית

כשמפתחים עוברים באופן אוטומטי על הגדרות מקומיות של Terraform, הם צריכים לבצע אימות באמצעות הפקודה gcloud auth application-default login כדי לייצר את פרטי הכניסה שמוגדרים כברירת מחדל באפליקציה. אין להוריד מפתחות לחשבון השירות, כי קשה יותר לנהל ולאבטח מפתחות שהורדו.

הגדרת משאבים חלופיים ל-Terraform

כדי להקל על הפיתוח המקומי, אתם יכולים להגדיר משאבים חלופיים ל-Terraform בפרופיל של מעטפת חלון הפקודות:

  • alias tf="terraform"
  • alias terrafrom="terraform"

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