מושגי מפתח
Last updated
Last updated
התיעוד הרשמי של Terraform מתאר את כל בפירוט רב. קראו אותו בעיון כדי להבין את שאר עמוד זה.
עמוד זה מתאר מושגים מרכזיים המשמשים בתוך הספר.
משאב הוא AWS_vpc , AWS_db_instation וכדומה. משאב שייך לספק, מקבל ארגומנטים, פולט תכונות ובעל מחזור חיים. ניתן ליצור, לאחזר, לעדכן ולמחוק משאב.
מודול משאב הוא אוסף של משאבים מחוברים אשר יחד מבצעים את הפעולה המשותפת (לדוגמה, המודול AWS VPC Terrasform יוצר VPC, רשתות משנה, שער NAT וכדומה). הדבר תלוי בקונפיגורצית הספק, שניתן להגדירה בתוכה, או במבנים ברמה גבוהה יותר (למשל, במודל תשתית).
מודול תשתית הוא אוסף של מודלי משאבים, שניתן לחבר באופן לא לוגי, אך במצב הנוכחי/בפרוייקט/בהגדרה משרתת את אותה המטרה. היא מגדירה את הקונפיגורציה עבור הספקים, המועברים למודולי המשאבים ולמשאבים עצמם. בדרך כלל, היא מוגבלת לעבודה בישות אחת לכל מפריד לוגי (לדוגמה, AWS Region, Google Project).
לדוגמה, מודול משתמש במודולי משאבים כגון ו- כדי לנהל את התשתית הדרושה להפעלת ב-.
דוגמה נוספת היא מודול שבו נעשה שימוש במודולים מרובים על-ידי יחד כדי לנהל את התשתית וכן להשתמש במשאבי Docker כדי לבנות, לדחוף ולפרוס Docker images. הכל בקונפיגורציה אחת.
קומפוזיציה הוא אוסף של מודולי תשתית, היכולים להתפרס על-פני מספר אזורים מופרדים לוגית (לדוגמה, אזורי AWS, מספר חשבונות AWS). ההרכב משמש לתיאור התשתית המלאה הדרושה לארגון או לפרוייקט כולו.
הרכב מורכב ממודולי תשתית, הכוללים מודולי משאבים, אשר מיישמים משאבים בודדים.
מקור מידע מבצע פעולת קריאה בלבד ותלוי בקונפיגורצית הספק, הוא משומש במודולי משאבים ובמודולי תשתית.
מקור מידע terraform_remote_state
משמש כדבק עבור מודולים ורכיבים ברמה גבוהה יותר.
מקור המידע http הופך בקשת get HTTP לכתובת ה- URL הנתונה, ומיצא מידע אודות התגובה, אשר שימושית לעתים קרובות לקבלת מידע מנקודות קצה שבהן ספק Terraform אינו קיים.
מודולי תשתית וקומפוזיציות אמורים לאחסן את קבצי המצב שלהם במיקום מרוחק, שבו ניתן לגשת אליהם על-ידי מפתחים אחרים בדרך נשלטת (לדוגמה, ACL, ניהול גירסאות, ורישום).
ספקים, מקצה משאבים ומספר מונחים אחרים מתוארים היטב בתיעוד הרשמי ואין טעם לחזור על כך כאן. לדעתי, אין להם קשר עם כתיבת מודולי Terraform טובים.
הגישה למידע על פני מולקולות (מודולי משאבים ומודולי תשתית) מבוצעת באמצעות ייצוא המודולים ומקורות המידע.
כאשר ממחישים את המושגים המתוארים לעיל ביחסי פסאודו, הדבר עשוי להיראות כך:
מקור הנתונים מאפשר לתוכנית חיצונית לפעול כמקור נתונים ולחשוף נתונים שרירותיים לשימוש במקומות אחרים בקונפיגורציית Terraform. להלן דוגמה ממודול שבו שם הקובץ מחושב על-ידי קריאה לקובץ python Script חיצוני.
בעוד שמשאבים בודדים דומים לאטומים בתשתית, מודולי משאבים הם מולקולות (כולל אטומות). מודול הוא היחידה הקטנה ביותר הניתנת לשיתוף והפקת גרסאות. הוא כולל רשימה מדויקת של ארגומנטים, מיישם לוגיקה בסיסית עבור יחידה כזו כדי לבצע את הפונקציה הנדרשת. לדוגמה, מודול קבוצת אבטחה יוצר משאבים של aws_security_group
ו- aws_security_group_rule
המבוססים על קלט. ניתן להשתמש במודול משאבים זה בפני עצמו יחד עם מודולים אחרים כדי ליצור את מודול התשתית.
הגישה בין ההרכבים מתבצעת לעתים קרובות באמצעות מקורות נתונים של מצב מרוחק.