Infrastructure as a code (IaC) – Meet Terraform

יותר ויותר שירותי ענן ולא רק תומכים ב- Terraform כמו גם בעצמן תורמות רבות לפיתוחו, שירות דומה הוא CloudFormation של AWS כפי שאתם מבינים הוא תפור היטב על הפונקציונליות והשירותים של AWS, אם החברה בה אתם עובדים מושתתת על הענן של AWS לשימוש בשירות הזה יש הרבה יתרונות על גבי Terraform במובני אבטחת מידע והאינטגרציה הפנימיים בין שלל השירותים של AWS אבל…

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

כמה נקודות ומושגים בסיסיים ב Terraform:

State File – הקובץ הכי חשוב שנוצר בעת הרצה ראשונה בתקיית הפרוייקט שלכם, קובץ זה מכיל את כל המשאבים שיצרתם בעזרת Terraform , כמו גם את הקשרים בין אותם משאבים. חשוב לזכור אם מחקתם את הקובץ או החלפתם מחשב והקובץ לא נמצא, במקרה כזה אם תריצו שוב Terraform על אותו פרוייקט , Terraform ייצר את המשאבים מחדש כי אין לו מושג מה קיים ללא קובץ ה- State File – לכן יש צורך להגדיר בפרוייקט Backends כדי לשמור את קובץ ה- State File במקום, ולמשבל בנוסף לזה לאפשר עבודה של צוותים מול אותו קובץ. תוכלו לקרוא בהרחבה בקישור הבא: https://www.terraform.io/docs/backends/

פקודות להרצה של Terraform:

terraform init – בודק שאין שגיאות בפרוייקט ומוריד Plugins שיהיו בשימוש בפרוייקט ומעדכן אותו במידה וכבר קיימים בתיקיית הפרוייקט.

terraform plan – ריצה יבשה על הפרוייקט שמוציאה פלט- מה קיים מה צריך למחוק ו/או הפעולות/שינויים הנדרשות כדי ליישם את הפרוייקט.

terraform apply – ביצוע הפרוייקט בפועל מצריך יישור קו סופי (בסוף לאחר הצגה נוספת של פלט ה- plan).

terraform destroy – פקודה אשר הורסת את המשאבים שנוצרו בפרוייקט Cleanup.

0 Comments

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Skip to content