Hashicorp Terraform הוא כלי של תשתית כקוד (IaC), שבעזרתו אפשר להקצות ולנהל תשתית ענן. Terraform מספקת פלאגינים שנקראים providers, שמאפשרים לכם ליצור אינטראקציה עם ספקי ענן וממשקי API אחרים. אתם יכולים להשתמש בספק Terraform ל-Google Cloud כדי להקצות ולנהל Google Cloud תשתית.
היתרונות של השימוש ב-Terraform
בקטע הזה מוסבר על כמה מהיתרונות של שימוש ב-Terraform כדי להקצות ולנהל תשתית: Google Cloud
- Terraform הוא הכלי הנפוץ ביותר להקצאה ולאוטומציה של תשתיתGoogle Cloud . אתם יכולים להשתמש בספק שירותי ענן של Google Cloud כדי להגדיר ולנהל את כל המשאבים באמצעות אותם כלי תחביר והצהרה. Google Cloud
- Terraform מאפשרת לכם לציין את מצב הסיום המועדף של התשתית. לאחר מכן אפשר לפרוס את אותה הגדרה כמה פעמים כדי ליצור סביבות פיתוח, בדיקה וייצור שניתנות לשחזור.
- בעזרת Terraform אפשר ליצור תוכנית ביצוע שמראה מה יקרה כשמחילים את ההגדרות. כך תוכלו להימנע מהפתעות לא נעימות כשאתם משנים את התשתית באמצעות Terraform.
- באמצעות Terraform אפשר לארוז קוד נפוץ ולעשות בו שימוש חוזר בצורה של מודולים. מודולים מספקים ממשקים סטנדרטיים ליצירת משאבי ענן. הם עוזרים לפשט את הפרויקטים על ידי שיפור הקריאות, ומאפשרים לצוותים לארגן את התשתית בבלוקים קריאים. בנוסף, Google Cloud מפרסמת מספר מודולים ניתנים לפריסה כתוכניות אב ודוגמאות להתחלה מהירה כפתרונות להתחלה מהירה.
- Terraform מתעד את המצב הנוכחי של התשתית ומאפשר לכם לנהל את המצב בצורה יעילה. בקובץ המצב של Terraform מתבצע מעקב אחרי כל המשאבים בפריסה.
השימוש ב-Terraform
ל-Terraform יש תחביר הצהרתי ומבוסס-הגדרות, שאפשר להשתמש בו כדי ליצור את התשתית שרוצים להקצות. באמצעות התחביר הזה, מגדירים את מצב הסיום המועדף של התשתית בקובץ תצורה של Terraform. לאחר מכן משתמשים ב-Terraform CLI כדי להקצות תשתית על סמך קובץ התצורה.
בשלבים הבאים מוסבר איך Terraform פועל:
- בקובץ התצורה של Terraform מתארים את התשתית שרוצים להקצות. Google Cloud אתם לא צריכים לכתוב קוד שמתאר איך להקצות את ההגדרה הזו.
- מריצים את הפקודה
terraform plan, שמעריכה את ההגדרות ומפיקה תוכנית ביצוע. אתם יכולים לבדוק את התוכנית ולבצע בה שינויים לפי הצורך. - לאחר מכן מריצים את הפקודה
terraform apply, שמבצעת את הפעולות הבאות:- הוא מקצה את התשתית על סמך תוכנית הביצוע על ידי הפעלת ממשקי Google Cloud API המתאימים ברקע.
- הפקודה יוצרת קובץ מצב של Terraform, שהוא מיפוי בפורמט JSON של המשאבים בקובץ ההגדרות למשאבים בתשתית בעולם האמיתי. Terraform משתמשת בקובץ הזה כדי לדעת מה המצב העדכני של התשתית, וכדי לקבוע מתי ליצור, לעדכן ולבצע כיבוי סופי של משאבים.
- לאחר מכן, כשמריצים את הפקודה
terraform apply, Terraform משתמשת במיפוי שבקובץ המצב כדי להשוות בין התשתית הקיימת לבין הקוד, ומבצעת עדכונים לפי הצורך:- אם אובייקט משאב שמוגדר בקובץ התצורה לא קיים בקובץ המצב, Terraform יוצרת אותו.
- אם אובייקט משאב קיים בקובץ המצב, אבל יש לו הגדרה שונה מזו שבקובץ התצורה, Terraform מעדכן את המשאב כך שיתאים לקובץ התצורה.
- אם אובייקט משאב בקובץ המצב תואם לקובץ ההגדרות, Terraform לא משנה את המשאב.
ספקים של Google Cloud
יש שני ספקים שמאפשרים הקצאה וניהול של תשתית: Google Cloud
-
google: ספק זה משמש להקצאה ולניהול של ממשקי Google Cloud API. -
google-beta: ספק זה משמש להקצאה ולניהול של ממשקי Google Cloud API בגרסת בטא.
הוראות לשימוש בספקי שירותי הענן האלה זמינות במאמר הגדרת ספק שירותי הענן של Google Cloud.
הספקים google ו-google-beta פותחו באמצעות כלי שנקרא Magic Modules. המודולים של Magic מאפשרים לתורמים לבצע שינויים בבסיס קוד יחיד ולפתח ספקי google ו-google-beta בו-זמנית.
כדי לתרום לספקי Google Cloud באמצעות Magic Modules, אפשר לפעול לפי ההוראות שבמדריך התרומה ל-Magic Modules.
המאמרים הבאים
- איך ליצור שרת אינטרנט בסיסי ב-Compute Engine באמצעות Terraform
- אחסון מצב Terraform בקטגוריה של Cloud Storage
- מעיינים במודולים ובתוכניות של Terraform ל- Google Cloud
- מעיינים בדוגמאות השונות של Terraform for Google Cloud