כיצד להשתמש במודולי בובות לאוטומציה של תשתיות IT?



מדריך בובות מעשי המדבר על כתיבת מודול בובות ושימוש במניפסט לאוטומציה ותחזוקה של תשתית ה- IT של ארגון.

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

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





בלוג זה יעסוק בנושאים הבאים:

מבוא לתכנות בובות

בּוּבָּה הוא אחד מכלי DevOps הנפוצים והנמצא בשימוש נרחב לניהול תצורה. הוא משמש כדי להביא עֲקֵבִיוּת בתשתית. Puppet יכולה להגדיר תשתית כקוד, לנהל מספר שרתים ולאכוף את תצורת המערכת ובכך לסייע באוטומציה של תהליך ניהול התשתית.



לבובה יששפת התצורה שלה, בובה DSL . כמו בתוכניות DevOps אחרות, Puppet אוטומציה של שינויים, ביטול שינויים ידניים מונחים על ידי סקריפט. עם זאת, Puppet אינה פשוט שפת מעטפת נוספת, ואינה שפת תכנות טהורה, כגון PHP. במקום זאת, Puppet משתמשל גישה מבוססת מודל הצהרתי לאוטומציה של IT. זה מאפשר ל- Puppet להגדיר תשתית כקוד ולאכוף את תצורת המערכת באמצעות תוכניות.

לפני שנמשיך עם ההדגמה, בואו נסתכל על כמה היבטים מרכזיים של תכנות בובות.

מיין אלגוריתמים c ++

מונחי מפתח בתכנות בובות

גילויים

תוכנית בובות נקראת לְהַפְגִין ויש לו שם קובץ עם .עמ סיומת. המניפסט העיקרי של Puppet הוא ברירת המחדל /etc/puppet/manifests/site.pp . (זה מגדירתצורות מערכת גלובליות, כגון תצורת LDAP, שרתי DNS או תצורות אחרות החלות על כל צומת).



שיעורים

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

אֶמְצָעִי

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

מודולי בובות

חוץ מהעיקריsite.ppלְהַפְגִין,זה מאחסן ביטוייםב מודולים .

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

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

מודולים - תכנות בובות - אדוריקהל- Puppetlabs יש מודולים שהוגדרו מראש בהם נוכל להשתמש באופן מיידי על ידי הורדתם מהם PuppetForge . תוכל גם ליצור מודול בובות מותאם אישית שיתאים לדרישותיך.

זרימת עבודה של תוכנית בובות

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

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

הפגנה: אוטומציה של התקנת Apache & MySQL

מאמר זה על מודולי בובות הוא מעשי המציג שתי דרכים לשימוש במודול בובות וגם ילמד אותך כיצד לְמַכֵּן התקנת שרת שמוגדר בשני המודולים הללו.

ראשית, ודא שיש לך תשתית בובות מוכנה שתכלול שרת מאסטר בובות ושני סוכני בובות.

  • מאסטר בובות: אובונטו 18.04
  • סוכן 1: אובונטו 18.04
  • סוכן 2:CentOS7

הנה מתווה של מה נשיג בפועל זה:


אז בואו נתחיל עם הידיים:

יצירת מודול מאפס

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

  • מתוך מאסטר בובות, נווט לספריית המודולים של בובה וצור את ספריית אפאצ'י:
    cd / etc / puppet / modules sudo mkdir apache
  • מתוך ספריית אפאצ'י, צור ספריות משנה: מניפסטים, תבניות, קבצים ודוגמאות.
    cd apache sudo mkdir {manifests, תבניות, קבצים, דוגמאות}
  • נווט לספריית המניפסטים:
    CD מתבטא
  • מכאן נפריד את המודול לשיעורים על סמך היעדים של אותו קטע קוד.

init.pp -> להורדת חבילת אפאצ'י

params.pp -> להגדרת משתנים ופרמטרים כלשהם

config.pp -> לניהול קבצי תצורה לשירות אפאצ'י.

vhosts.pp -> להגדרת המארחים הווירטואליים.

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

שלב 1: הורדת חבילת אפאצ'י

צור מחלקה init.pp

עכשיו ניצורinit.ppהקובץ בספריית manifests כדי להחזיק את חבילת ה- apache.
מכיוון שיש לנו 2 מערכות הפעלה שונות (ubuntu ו- CentOS7) המשתמשות בשמות חבילה שונים עבור Apache, נצטרך להשתמש במשתנה$ apachename.

/etc/puppetlabs/code/environments/production/modules/apache/manifests/init.pp

class apache {package {'apache': name => $ apachename, ensure => present,}}

חֲבִילָה המשאב מאפשר ניהול חבילה. זה משמש להוספה, הסרה או הבטחה שקיימת חבילה.

ברוב המקרים, שֵׁם של המשאב (אפאצ'י, למעלה) צריך להיות שם החבילה המנוהלת. בגלל מוסכמות השמות השונות,אנו קוראים לשם האמיתי של החבילהלאחר מכן עם שֵׁם התייחסות. כך שֵׁם , קורא למשתנה שעדיין לא מוגדר$ apachename.

לְהַבטִיחַ הפניה מבטיחה שהחבילה היאמתנה.

צור קובץ params.pp

הparams.ppהקובץ יגדיר את המשתנים הדרושים. אמנם היינו יכולים להגדיר משתנים אלה בתוך ה-init.ppהקובץ, מכיוון שיש להשתמש במשתנים נוספים מחוץ לסוג המשאב עצמו, באמצעות aparams.ppקובץ מאפשר להגדיר משתנים באםהצהרות ומשומשות על פני מספר שיעורים.

ליצורparams.ppהקובץ והקוד הבא.

/etc/puppetlabs/code/environments/production/modules/apache/manifests/params.pp

apache בכיתה :: params {if $ :: osfamily == 'RedHat' {$ apachename = 'httpd'} elsif $ :: osfamily == 'Debian' {$ apachename = 'apache2'} אחר {נכשל ('זה לא הפצה נתמכת. ')}}

מחוץ למקור init.ppבכיתה, כל שם כיתה צריך להסתעף ממנואפאצ'י. אנו קוראים לשיעור זה בשם אפאצ'י :: פאראמס . השם אחרי המעי הגס הכפול אמור לשתף שם עם הקובץ. Anאםהצהרה משמשת להגדרת הפרמטרים, תוך שאיבה מהמידע שמספק גורם , ל- Puppet יש התקנת פנים כחלק מהתקנה עצמה. הנה, Facter יפיל את משפחת מערכות ההפעלה (אוספמילי), להבחין אם כןכובע אדוםאוֹמבוסס דביאן.

כאשר הפרמטרים מוגדרים לבסוף, עלינו להתקשר ל params.pp הקובץ והפרמטרים לתוךinit.pp. לשם כך, עלינו להוסיף את הפרמטרים אחרי שם הכיתה, אך לפני סוגר המתולתל הפותח({).

אז הinit.ppשיצרנו קודם צריך להיראות כך:

apache בכיתה ($ apachename = $ :: apache :: params :: apachename,) יורש :: apache :: params {package {'apache': name => $ apachename, ensure => present,}}

מחרוזת הערך $ :: apache :: params :: value אומר לבובה לשלוף את הערכים מה- אפאצ'י מודולים, פאראמים class, ואחריו שם הפרמטר. השבר יורש :: apache :: params מאפשרinit.ppלרשת את הערכים הללו.

שלב 2: נהל קבצי תצורה

קובץ התצורה של Apache יהיה שונה, תלוי אם אתה עובד על מערכת מבוססת Red Hat או Debian.

תוכל למצוא את קבצי התלות הבאים בסוף הדגמה זו:httpd.conf(כובע אדום),apache2.conf(דביאן).

  • העתק את התוכן של httpd.conf וapache2.confבקבצים נפרדים ושמור אותם ב- קבצים מַדרִיךבְּ- / etc / puppetlabs / code / סביבות / ייצור / מודולים / apache / קבצים .
  • ערוך את שני הקבצים ל- השבת להשאיר בחיים. יהיה עליך להוסיף את השורה KeepAlive כבוי בתוך הhttpd.confקוֹבֶץ. אם אינך רוצה לשנות הגדרה זו, עלינו להוסיף הערה בראש כל אחת מהןקוֹבֶץ:
    /etc/puppetlabs/code/environments/production/modules/apache/files/httpd.conf
# קובץ זה מנוהל על ידי בובה

הוסף קבצים אלה ל-init.ppקובץ, כך ש- Puppet יידע את מיקום הקבצים הללו גם בשרת השרת וגם בצמתי הסוכן. לשם כך אנו משתמשים ב- קוֹבֶץ מַשׁאָב.

/etc/puppetlabs/code/environments/production/modules/apache/manifests/init.pp

קובץ {'file-file': path => $ conffile, ensure => file, source => $ confsource,}

מכיוון שיש לנו את קבצי התצורה בשני מיקומים שונים, אנו נותנים למשאב את השם הכללי קובץ תצורה עם הקובץ נָתִיב מוגדר כפרמטר עם ה-נָתִיבתְכוּנָה.

לְהַבטִיחַ מבטיח שזה קובץ.

מָקוֹר מספק את המיקום על מאסטר הבובות של הקבצים שנוצרו לעיל.

פתח את הparams.ppקוֹבֶץ.

אנו מגדירים את $ conffile ו $ confsourceמשתנים בתוךאםהַצהָרָה:

/etc/puppetlabs/code/environments/production/modules/apache/manifests/params.pp

אם $ :: osfamily == 'RedHat' {... $ conffile = '/etc/httpd/conf/httpd.conf' $ confsource = 'puppet: ///modules/apache/httpd.conf'} elsif $: : osfamily == 'Debian' {... $ conffile = '/etc/apache2/apache2.conf' $ confsource = 'puppet: ///modules/apache/apache2.conf'} אחר {...

עלינו להוסיף את הפרמטרים לתחילת ה-אפאצ'יהצהרת כיתות בinit.ppקובץ, בדומה לדוגמא הקודמת.

כאשר קובץ התצורה משתנה, Apache צריך להפעיל מחדש. כדי להפוך את זה לאוטומטי, אנו יכולים להשתמש במשאב השירותבשילוב עם לְהוֹדִיעַ תכונה, שתקרא למשאב לפעול בכל פעם שקובץ התצורה משתנה:

/etc/puppetlabs/code/environments/production/modules/apache/manifests/init.pp

קובץ {'תצורת-קובץ': path => $ conffile, ensure => file, source => $ confsource, notify => Service ['apache-service'],} service {'apache-service': name => $ apachename, hasrestart => נכון,}

שֵׁרוּת המשאב משתמש בפרמטר שכבר נוצר והגדיר את שם האפצ'י במערכות Red Hat ו- Debian.
יש להתחיל מחדש התכונה משמשת להפעלת הפעלה מחדש של השירות המוגדר.

ההבדלים בין html ל- xml

שלב 3: צור את קבצי המארח הווירטואלי

בהתאם להפצת המערכת שלך, קבצי המארח הווירטואלי ינוהלו אחרת. מסיבה זו, נכלול את הקוד עבור מארחים וירטואליים ב-אםהצהרה, דומה לזו המשמשת בparams.ppבכיתה אך מכילה משאבי בובה בפועל.

  • מבפניםאפאצ'י / מתבטא /ספריה, צור ופתח אvhosts.ppקוֹבֶץ. הוסף את השלד של ה-אםהַצהָרָה:

/etc/puppetlabs/code/environments/production/modules/apache/manifests/vhosts.pp

apache בכיתה :: vhosts {if $ :: osfamily == 'RedHat' {} elsif $ :: osfamily == 'Debian' {} אחר {}}

המיקום של קובץ המארח הווירטואלי בשרת CentOS 7 הוא/etc/httpd/conf.d/vhost.conf . עליך ליצור את הקובץ כתבנית במאסטר הבובות. בצע את אותו הדבר בקובץ המארחים הווירטואליים של אובונטו, שנמצא בכתובת/etc/apache2/sites-available/example.com.conf, מחליףexample.comעם ה- FQDN של השרת.

  • נווט אל תבניות קובץ בתוך אפאצ'י ולאחר מכן צור שני קבצים עבור המארחים הווירטואליים שלך:

למערכות רד האט:
/etc/puppetlabs/code/environments/production/modules/apache/templates/vhosts-rh.conf.erb

ServerAdmin ServerName ServerAlias ​​www. DocumentRoot / var / www // public_html / ErrorLog /var/www//logs/error.log CustomLog /var/www//logs/access.log בשילוב

עבור מערכות דביאן:
/etc/puppet/modules/apache/templates/vhosts-deb.conf.erb

ServerAdmin ServerName ServerAlias ​​www. DocumentRoot / var / www / html // public_html / ErrorLog /var/www/html//logs/error.log CustomLog /var/www/html//logs/access.log בשילובדרוש את כל המוענק

אנו משתמשים רק בשני משתנים בקבצים אלה: דואר מנהל ו שם שרת . נגדיר אותם על בסיס צומת אחר צומת, בתוך ה-site.ppקוֹבֶץ.

  • לחזור לvhosts.ppקוֹבֶץ. כעת ניתן להפנות את התבניות שנוצרו בקוד:

/etc/puppetlabs/code/environments/production/modules/apache/manifests/vhosts.pp

apache בכיתה :: vhosts {if $ :: osfamily == 'RedHat' {file {'/etc/httpd/conf.d/vhost.conf': ensure => file, content => template ('apache / vhosts-rh .conf.erb '),}} elsif $ :: osfamily ==' Debian '{file {' /etc/apache2/sites-available/$servername.conf ': ensure => file, content => template (' apache /vhosts-deb.conf.erb '),}} אחר {fail (' זו לא הפצה נתמכת. ')}}

שתי משפחות ההפצה מתקשרות אלקוֹבֶץמשאב ולקבל על עצמך את כותרת המיקום של המארח הווירטואלי בהפצה בהתאמה. עבור דביאן, זה אומר שוב הפניה ל$ servernameערך. התוֹכֶןתכונה קוראת לתבניות המתאימות.

  • שני קבצי המארח הווירטואליים מתייחסים לשני ספריות. הם לא נמצאים במערכות כברירת מחדל. אנו יכולים ליצור אותם באמצעות ה-קוֹבֶץמשאב, כל אחד מהם בתוךאםהַצהָרָה. השלםvhosts.confהקובץ צריך להיות דומה:

/etc/puppetlabs/code/environments/production/modules/apache/manifests/vhosts.pp

apache בכיתה :: vhosts {if $ :: osfamily == 'RedHat' {file {'/etc/httpd/conf.d/vhost.conf': ensure => file, content => template ('apache / vhosts-rh .conf.erb '),} קובץ {[' / var / www / $ servername ',' / var / www / $ servername / public_html ',' / var / www / $ servername / log ',]: ensure => ספריה,}} elsif $ :: osfamily == 'Debian' {file {'/etc/apache2/sites-available/$servername.conf': ensure => file, content => template ('apache / vhosts-deb. conf.erb '),} קובץ {[' / var / www / $ servername ',' / var / www / $ servername / public_html ',' / var / www / $ servername / logs ',]: ensure => directory ,}} אחר {fail ('זו לא הפצה נתמכת.')}}

שלב 4: בדוק את המודול

  • נווט אלאפאצ'י / מתבטא /ספריה, הפעל את מנתח בובות על כל הקבצים כדי להבטיח שהקידוד של בובות הוא ללא שגיאה:

sudo / opt / puppetlabs / bin / puppet parser לאמת init.pp params.pp vhosts.pp

הוא אמור לחזור ריק, ללא בעיות.

  • נווט אל דוגמאות ספריה בתוךאפאצ'ימודול. ליצורinit.ppהקובץ וכולל את המחלקות שנוצרו. החלף את הערכים עבור$ servernameו$ adminemailעם משלך:

/etc/puppetlabs/code/environments/production/modules/apache/examples/init.pp

serveremail = 'webmaster@example.com' $ servername = 'puppet.example.com' כולל apache כולל apache :: vhosts
  • בדוק את המודול על ידי הפעלה בובה חלה עם ה –לא תָג:
    sudo / opt / puppetlabs / bin / puppet apply - no init.pp

הוא לא אמור להחזיר שום שגיאה ולפלט שהוא יפעיל רענון מאירועים. כדי להתקין ולהגדיר את התצורה של אפאצ'י ב- Master Puppet, הפעל שוב ללא–לא, אם תרצה בכך.

  • נווט חזרה לספריית הבובות הראשית ולאחר מכן אלמתבטאתיקיה (לֹאזה שנמצא במודול אפאצ'י).

cd / etc / puppetlabs / code / environment / production / manifests

כיצד ליצור מערך של אובייקטים ב - Java

ליצורsite.ppקוֹבֶץ,וכוללים את מודול האפצ'י לכל צומת סוכן. הזן גם את המשתנים עבור ה-דואר מנהל ו שם שרתפרמטרים. שֶׁלְךָsite.ppצריך להיות דומה לדברים הבאים:

/etc/puppetlabs/code/environments/production/manifests/site.pp

צומת 'puppet-agent-ubuntu.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'puppet.example.com' כולל apache כולל apache :: vhosts} node 'puppet-agent-centos.example .com '{$ adminemail =' webmaster@example.com '$ servername =' puppet.example.com 'כולל apache כולל apache :: vhosts}

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

sudo / opt / puppetlabs / bin / puppet agent -t

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

השתמש במודול מ- PuppetForge

בובה פורג ' כבר יש מודולים רבים להפעלת השרת. אנו יכולים להגדיר אותם בצורה נרחבת בדיוק כמו מודול שיצרת ויכול לחסוך זמן מכיוון שאיננו צריכים ליצור את המודול מאפס.

ודא שאתה נמצא ב / etc / puppetlabs / code / סביבות / ייצור / מודולים ספריה והתקן את מודול MySQL של ​​Puppet Forge מאת PuppetLabs. פעולה זו תתקין גם את כל המודולים המוקדמים.

cd / etc / puppetlabs / code / סביבות / הפקה / מודולים

מודול sudo / opt / puppetlabs / bin / puppet להתקין puppetlabs-mysql

השתמש ב- Hiera כדי ליצור מסדי נתונים

לפני שתיצור את קבצי התצורה של מודול MySQL, שקול שלא תרצה להשתמש באותם ערכים בכל צמתי הסוכנים. כדי לספק ל- Puppet את הנתונים הנכונים לכל צומת, אנו משתמשים ב- Hiera. תשתמש בסיסמת בסיס שונה לכל צומת, וכך תיצור מסדי נתונים של MySQL שונים.

  • נווט אל/ וכו '/ בובהוליצור את קובץ התצורה של היירהhiera.yamlבעיקריבּוּבָּהמַדרִיך. תשתמש בערכי ברירת המחדל של היירה:

/etc/puppetlabs/code/environments/production/hiera.yaml

--- גרסה: היררכיה 5: - שם: נתיב משותף: common.yaml ברירות מחדל: data_hash: yaml_data datadir: data
  • צור את הקובץנפוץ.יאמל. זה יגדיר את ברירת המחדל שורש סיסמה עבור MySQL:

/etc/puppetlabs/code/environments/production/common.yaml

mysql :: שרת :: root_password: 'סיסמה'

אנו משתמשים ב-נפוץ.יאמלקוֹבֶץכאשר משתנה אינו מוגדר במקום אחר. פירוש הדבר שכל השרתים ישתפו את אותה סיסמת שורש MySQL. סיסמאות אלה ניתנות לגיבוש גם כדי להגביר את האבטחה.

  • כדי להשתמש בברירות המחדל של מודול MySQL אתה יכול להוסיף כולל ':: mysql :: server' קו לsite.ppקוֹבֶץ. עם זאת, בדוגמה זו תבטל חלק מהברירות המחדל של המודול כדי ליצור מסד נתונים עבור כל אחד מהצמתים שלך.

ערוך אתsite.ppקובץ עם הערכים הבאים:

הצומת 'Puppetagent-ubuntu.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'hostname.example.com' כולל apache כולל apache :: vhosts include mysql :: server mysql :: db {'mydb_ $ {fqdn} ': user =>' myuser ', password =>' mypass ', dbname =>' mydb ', host => $ :: fqdn, grant => [' SELECT ',' UPDATE '], tag = > $ domain,}} צומת 'Puppetagent-centos.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'hostname.example.com' כולל apache כולל apache :: vhosts include mysql :: server mysql :: db {'mydb _ $ {fqdn}': user => 'myuser', password => 'mypass', dbname => 'mydb', host => $ :: fqdn, grant => ['SELECT', ' UPDATE '], tag => $ domain,}}

אוטומציה של התקנת מודולי הבובות ממאסטר בובות לסוכן בובות

  • באפשרותך להריץ עדכונים אלה באופן ידני בכל צומת על ידי SSHing לכל צומת והנפקת הפקודה הבאה:

sudo / opt / puppetlabs / bin / puppet agent -t

  • אחרת, שירות סוכני Puppet בצמתים המנוהלים שלך יבדוק אוטומטית עם המאסטר אחת ל -30 דקות ויחיל כל תצורה חדשה מהמאסטר.

הקטלוג הוחל בהצלחה על סוכן אובונטו

הקטלוג הוחל בהצלחה על סוכן CentOS

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

אני מקווה שהדגמה זו עזרה לך להשיג מושג ברור על מודולי בובות ומניפסטים ועל השימוש בהם לאוטומציה של תשתית ה- IT.במקרה זה, העבודה שלך הופכת כל כך קלה, רק ציין את התצורות בסולם Puppet Master וסוכני Puppet יעריכו אוטומטית את המניפסט הראשי ויחילו את המודול שמציין את הגדרת Apache ו- MySQL. אם אתה נתקע בשאילתות כלשהן, אל תהסס לפרסם אותן .

אם מצאת זאת הדרכת בובות רלוונטי, לבדוק את מאת אדוריקה, חברת למידה מקוונת מהימנה עם רשת של יותר מ -250,000 לומדים מרוצים הפזורים ברחבי העולם. קורס הכשרת ההסמכה של Edureka DevOps עוזר ללומדים לרכוש מומחיות בתהליכים וכלים שונים של DevOps כמו Puppet, Jenkins, Nagios ו- GIT לאוטומציה של שלבים מרובים ב- SDLC.