كيفية استخدام وحدات الدمى لأتمتة البنية التحتية لتكنولوجيا المعلومات؟



برنامج تعليمي عملي للعرائس يتحدث عن كتابة وحدة دمية واستخدام بيان لأتمتة وصيانة البنية التحتية لتكنولوجيا المعلومات لمؤسسة ما.

في السابق ، كان مسؤولو النظام يستخدمون برامج شل النصية لتشغيل خوادمهم ، ولم يكن لهذه الطريقة أي قابلية للتوسع. إنها مهمة شاقة أن تقوم بتعديل البرامج النصية باستمرار لمئات أو آلاف الخوادم المتغيرة باستمرار وتكوينات أنظمتها.

في هذه المقالة على وحدات الدمى والقوائم دعونا نرى كيف يمكننا استخدام وحدات الدمى لأتمتة إعداد الخادم ، وتثبيت البرامج ، وإدارة النظام.





ستغطي هذه المدونة المواضيع التالية:

مقدمة في برمجة الدمى

دمية هي إحدى أدوات DevOps الشائعة الاستخدام والمستخدمة على نطاق واسع لإدارة التكوين. يتم استخدامه لتحقيق التناسق في البنية التحتية. يمكن لـ Puppet تعريف البنية التحتية على أنها رمز ، وإدارة خوادم متعددة ، وفرض تكوين النظام ، وبالتالي المساعدة في أتمتة عملية إدارة البنية التحتية.



دمية لديهالغة التكوين الخاصة بها ، دمية DSL . كما هو الحال مع برامج DevOps الأخرى ، فإن Puppet بأتمتة التغييرات ، مما يلغي التغييرات اليدوية التي يحركها البرنامج النصي. ومع ذلك ، فإن Puppet ليست مجرد لغة صدفة أخرى ، كما أنها ليست لغة برمجة خالصة ، مثل PHP. بدلا من ذلك ، يستخدم Puppetإلى النهج القائم على النموذج التصريحي لأتمتة تكنولوجيا المعلومات. يمكّن هذا Puppet من تحديد البنية التحتية كرمز وفرض تكوين النظام بالبرامج.

قبل البدء في العرض التوضيحي ، دعنا نلقي نظرة على بعض الجوانب الأساسية لبرمجة الدمى.

كيفية عمل تنبيه بلغة html

المصطلحات الأساسية في برمجة الدمى

المانيفستات

برنامج الدمى يسمى يظهر وله اسم ملف .pp تمديد. البيان الرئيسي الافتراضي للدمى هو /etc/puppet/manifests/site.pp . (هذا يعرّفتكوينات النظام العالمية ، مثل تكوين LDAP أو خوادم DNS أو التكوينات الأخرى التي تنطبق على كل عقدة).



الطبقات

ضمن هذه البيانات هي كتل التعليمات البرمجية تسمى الطبقات يمكن أن تستدعي الوحدات الأخرى. تقوم الفئات بتكوين مجموعات كبيرة أو متوسطة الحجم من الوظائف ، مثل جميع الحزم وملفات التكوين والخدمات اللازمة لتشغيل أحد التطبيقات. تجعل الفصول من السهل إعادة استخدام رمز Puppet وتحسين إمكانية القراءة.

مصادر

يتكون كود الدمية في الغالب من إعلانات الموارد. أ الموارد يصف عنصرًا محددًا عن حالة النظام المطلوبة. على سبيل المثال ، يمكن أن يتضمن ذلك ملفًا معينًا يجب أن يكون موجودًا أو يجب تثبيت حزمة.

وحدات الدمى

ما عدا الرئيسيsite.ppيظهر،يخزن المانيفستفي الوحدات .

يتم تنظيم جميع أكواد الدمى الخاصة بنا في وحدات هي اللبنات الأساسية للدمى التي يمكننا إعادة استخدامها ومشاركتها. تدير كل وحدة مهمة محددة في البنية التحتية ، مثل تثبيت وتكوين جزء من البرنامج.

تحتوي الوحدات النمطية على فئات Puppet وأنواع محددة ومهام وخطط مهام وقدرات وأنواع موارد ومكونات إضافية ، على سبيل المثال ، أنواع أو حقائق مخصصة. تثبيت الوحدات في الدمىمسار الوحدة. يقوم Puppet بتحميل كل المحتوى من كل وحدة في مسار الوحدة ، مما يجعل هذا الرمز متاحًا للاستخدام.

الوحدات - برمجة الدمى - Edurekaلدى Puppetlabs وحدات محددة مسبقًا يمكننا استخدامها على الفور عن طريق تنزيلها منها الدمى . يمكنك أيضًا إنشاء وحدة دمية مخصصة لتناسب متطلباتك.

سير عمل برنامج الدمى

سنستخدم لغة إعلان Puppet لوصف الحالة المرغوبة للنظام في ملفات تسمى manifests. تصف البيانات كيفية تكوين الشبكة وموارد نظام التشغيل ، مثل الملفات والحزم والخدمات.

تتجلى الدمية في ملفات كتالوجات ويطبق كل كتالوج على العقدة المقابلة له لضمان تكوين tالعقدة صحيحةعبر بنيتك التحتية.

برهنة: أتمتة تثبيت Apache و MySQL

هذه المقالة حول وحدات الدمى عملية من شأنها أن توضح طريقتين لاستخدام وحدة الدمى وتعلمك أيضًا كيفية أتمتة تثبيت خادم تم تكوينه باستخدام هاتين الوحدتين.

بادئ ذي بدء ، تأكد من أن لديك بنية تحتية للدمى جاهزة والتي قد تتضمن خادمًا رئيسيًا للدمى و 2 من وكلاء الدمى.

  • سيد الدمية: أوبونتو 18.04
  • عامل 1: Ubuntu 18.04
  • الوكيل 2:CentOS7

في ما يلي ملخص لما سنحققه في هذا التدريب العملي:


لذا فلنبدأ بالتدريب العملي:

إنشاء وحدة من الصفر

في وحدة الدمى هذه ، سنتعامل مع مهام مثل تنزيل حزمة Apache ، وتكوين الملفات ، وإعداد مضيفات افتراضية.

  • من Puppet Master ، انتقل إلى دليل وحدة Puppet وأنشئ دليل Apache:
    cd / etc / puppet / modules sudo mkdir apache
  • من داخل دليل apache ، أنشئ أدلة فرعية: قوائم وقوالب وملفات وأمثلة.
    cd apache sudo mkdir {مانيفست ، قوالب ، ملفات ، أمثلة}
  • انتقل إلى دليل manifests:
    بيانات القرص المضغوط
  • من هنا ، سنقوم بفصل الوحدة إلى فئات بناءً على أهداف هذا القسم من الكود.

init.pp -> لتنزيل حزمة Apache

params.pp -> لتحديد أي متغيرات ومعاملات

config.pp -> لإدارة أي ملفات تكوين لخدمة Apache.

vhosts.pp -> لتحديد المضيفين الظاهريين.

ستستفيد هذه الوحدة أيضًا من هيرا (نظام بحث مدمج عن بيانات تكوين القيمة الرئيسية ، يستخدم لفصل البيانات عن بيانات كود الدمى ، لتخزين المتغيرات لكل عقدة.

الخطوة الأولى: تنزيل حزمة Apache

إنشاء فئة init.pp

الآن سنقوم بإنشاء ملفinit.ppملف ضمن دليل manifests لعقد حزمة اباتشي.
نظرًا لأن لدينا نظامي تشغيل مختلفين (ubuntu و CentOS7) يستخدمان أسماء حزم مختلفة لـ Apache ، فسيتعين علينا استخدام متغيراسم أباتشين $.

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

class apache {package {'apache': name => $ apachename ، تأكد => موجود ،}}

صفقة يسمح المورد بإدارة الحزمة. يستخدم هذا لإضافة حزمة أو إزالتها أو ضمان وجودها.

في معظم الحالات ، اسم من المورد (اباتشي، أعلاه) اسم الحزمة التي تتم إدارتها. بسبب اصطلاحات التسمية المختلفة ،نسمي الاسم الفعلي للحزمةعليها مع اسم مرجع. وبالتالي اسم ، يستدعي المتغير غير المحدد بعداسم أباتشين $.

التأكد من مرجع يضمن أن الحزمةحاضر.

إنشاء ملف params.pp

الparams.ppسيحدد الملف المتغيرات المطلوبة. بينما يمكننا تحديد هذه المتغيرات داخلinit.ppfile ، حيث سيتعين استخدام المزيد من المتغيرات خارج نوع المورد نفسه ، باستخدام ملفparams.ppيسمح الملف للمتغيرات التي سيتم تحديدها فيإذاالبيانات واستخدامها عبر فئات متعددة.

إنشاءparams.ppالملف والتعليمات البرمجية التالية.

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

class apache :: params {if $ :: osfamily == 'RedHat' {$ apachename = 'httpd'} elsif $ :: osfamily == 'Debian' {$ apachename = 'apache2'} وإلا {فشل ('هذا ليس توزيعة مدعومة. ')}}

خارج الأصل init.ppفئة ، يجب أن يتفرع كل اسم فئة منهااباتشي. نسمي هذه الفئة باسم اباتشي :: params . يجب أن يشارك الاسم الذي يظهر بعد النقطتين المزدوجة اسمًا مع الملف. انإذاالبيان يستخدم لتحديد المعلمات ، سحب من المعلومات المقدمة من قبل عامل ، Puppet لديها تثبيت Facter كجزء من التثبيت نفسه. هنا ، سوف يسحب Facter عائلة نظام التشغيل (أوسفاميلي) ، لتمييز ما إذا كان كذلكقبعة حمراءأوعلى أساس دبيان.

مع تحديد المعلمات أخيرًا ، نحتاج إلى استدعاء params.pp ملف والمعلمات إلىinit.pp. للقيام بذلك ، نحتاج إلى إضافة المعلمات بعد اسم الفئة ، ولكن قبل قوس الفتح المتعرج({).

لذلكinit.ppالذي أنشأناه سابقًا يجب أن يبدو مثل هذا:

class apache ($ apachename = $ :: apache :: params :: apachename،) يرث :: apache :: params {package {'apache': name => $ apachename، sure => present،}}

سلسلة القيمة $ :: apache :: params :: value يخبر Puppet بسحب القيم من ملف اباتشي وحدات بارامز فئة ، متبوعة باسم المعلمة. الجزء يرث :: apache :: params مسموح لinit.ppلترث هذه القيم.

الخطوة 2: إدارة ملفات التكوين

سيكون ملف تكوين Apache مختلفًا اعتمادًا على ما إذا كنت تعمل على نظام يعتمد على Red Hat أو نظام Debian.

يمكنك العثور على ملفات التبعية التالية في نهاية هذا العرض التوضيحي:httpd.conf(قبعة حمراء)،ملف apache2.conf(ديبيان).

ما هي لغة البرمجة ساس
  • انسخ محتوى httpd.conf وملف apache2.confفي ملفات منفصلة وحفظها في ملف الملفات الدليلفي / etc / puppetlabs / code / environment / production / modules / apache / files .
  • قم بتحرير كلا الملفين إلى تعطيل حافظ على حياتك. سوف تحتاج إلى إضافة الخط KeepAlive معطلة في الhttpd.confملف. إذا كنت لا ترغب في تغيير هذا الإعداد ، يجب أن نضيف تعليقًا في أعلى كل منهاملف:
    /etc/puppetlabs/code/environment/production/modules/apache/files/httpd.conf
# هذا الملف يديره دمية

أضف هذه الملفات إلى ملفinit.ppملف ، لذلك سيعرف Puppet موقع هذه الملفات على كل من عقد الخادم الرئيسي والوكيل. للقيام بذلك ، نستخدم ملف ملف الموارد.

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

ملف {'config-file': path => $ conffile ، التأكد => file ، source => $ confsource ،}

نظرًا لأن لدينا ملفات التكوين في موقعين مختلفين ، فإننا نعطي المورد الاسم العام ملف الضبط بالملف مسار يتم تعريفه كمعامل معمسارينسب.

التأكد من يضمن أنه ملف.

مصدر يوفر الموقع على لوحة الدمى الرئيسية للملفات التي تم إنشاؤها أعلاه.

افتح الparams.ppملف.

نحدد ال $ conffile و $ confsourceالمتغيرات داخلإذابيان:

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

if $ :: 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'} else {...

نحتاج إلى إضافة المعلمات إلى بداية ملفاباتشيإعلان فئة فيinit.ppملف مشابه للمثال السابق.

عندما يتغير ملف التكوين ، يحتاج Apache إلى إعادة التشغيل. لأتمتة هذا ، يمكننا استخدام مورد الخدمةبالاشتراك مع يخطر السمة ، والتي ستستدعي المورد للتشغيل متى تم تغيير ملف التكوين:

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

ملف {'config-file': path => $ conffile، insurance => file، source => $ confsource، notify => Service ['apache-service']،} service {'apache-service': name => $ apachename ، hasrestart => صحيح ،}

الخدمات يستخدم المورد المعلمة التي تم إنشاؤها بالفعل والتي حددت اسم Apache على أنظمة Red Hat و Debian.
hasrestart يتم استخدام السمة لبدء إعادة تشغيل الخدمة المحددة.

الخطوة 3: قم بإنشاء ملفات المضيف الظاهري

اعتمادًا على توزيع نظامك ، ستتم إدارة ملفات المضيف الظاهري بشكل مختلف. لهذا السبب ، سنقوم بتغليف رمز المضيفين الظاهريين في ملفإذابيان ، مشابه لتلك المستخدمة فيparams.ppفئة ولكنها تحتوي على موارد دمى فعلية.

  • من داخلاباتشي / مانيفستس /الدليل ، وإنشاء وفتح ملفvhosts.ppملف. أضف الهيكل العظمي لـإذابيان:

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

class apache :: vhosts {if $ :: osfamily == 'RedHat' {} elsif $ :: osfamily == 'Debian' {} else {}}

موقع ملف المضيف الظاهري على خادم CentOS 7 الخاص بنا هو/etc/httpd/conf.d/vhost.conf . تحتاج إلى إنشاء الملف كقالب على لوحة التحكم في الدمى. افعل الشيء نفسه لملف Ubuntu virtual hosts ، الموجود في/etc/apache2/sites-available/example.com.conf، استبدالexample.comمع FQDN للخادم.

  • انتقل إلى القوالب ملف داخل اباتشي الوحدة النمطية ثم قم بإنشاء ملفين لمضيفيك الظاهري:

لأنظمة ريد هات:
/etc/puppetlabs/code/environment/production/modules/apache/templates/vhosts-rh.conf.erb

ServerAdmin اسم الخادم ServerAlias ​​شبكة الاتصالات العالمية. 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 اسم الخادم ServerAlias ​​شبكة الاتصالات العالمية. 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/environment/production/modules/apache/manifests/vhosts.pp

class apache :: vhosts {if $ :: osfamily == 'RedHat' {file {'/etc/httpd/conf.d/vhost.conf': sure => file، content => template ('apache / vhosts-rh .conf.erb ')،}} elsif $ :: osfamily ==' Debian '{file {' /etc/apache2/sites-available/$servername.conf ': sure => file، content => template (' apache /vhosts-deb.conf.erb ')،}} else {fail (' هذه ليست توزيعة مدعومة. ')}}

كلتا عائلات التوزيع تستدعيملفالموارد واتخاذ عنوان موقع المضيف الظاهري في التوزيع المعني. بالنسبة إلى دبيان ، يعني هذا مرة أخرى الرجوع إلى ملفاسم الخادم $القيمة. الالمحتوىتستدعي السمة القوالب المعنية.

  • يشير كلا ملفي المضيف الظاهري إلى دليلين. هم ليسوا على الأنظمة بشكل افتراضي. يمكننا إنشاء هذه من خلال استخدامملفالموارد ، كل داخلإذابيان. الكاملvhosts.confيجب أن يكون الملف مشابهًا:

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

class apache :: vhosts {if $ :: osfamily == 'RedHat' {file {'/etc/httpd/conf.d/vhost.conf': sure => file، content => template ('apache / vhosts-rh .conf.erb ')، ملف {[' / var / www / $ servername '،' / var / www / $ servername / public_html '،' / var / www / $ servername / log '،]: التأكد => directory،}} elsif $ :: osfamily == 'Debian' {file {'/etc/apache2/sites-available/$servername.conf': warranty => file، content => template ('apache / vhosts-deb. conf.erb ')، file {[' / var / www / $ servername '،' / var / www / $ servername / public_html '،' / var / www / $ servername / logs '،]: التأكد => الدليل ،}} else {fail ('هذه ليست توزيعة مدعومة.')}}

الخطوة 4: اختبر الوحدة

  • انتقل إلىاباتشي / مانيفستس /الدليل ، قم بتشغيل ملف محلل الدمية على جميع الملفات للتأكد من خلو تشفير الدمى من أخطاء:

sudo / opt / puppetlabs / bin / puppet parser تحقق من init.pp params.pp vhosts.pp

يجب أن يعود فارغًا ، بدون مشاكل.

  • انتقل إلى أمثلة الدليل داخلاباتشيوحدة. يخترعinit.ppملف وتضمين الفئات التي تم إنشاؤها. استبدل قيماسم الخادم $و$ adminemailمع الخاص بك:

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

serveremail = 'webmaster@example.com' $ servername = 'puppet.example.com' تتضمن apache تتضمن apache :: vhosts
  • اختبر الوحدة عن طريق التشغيل دمية تطبيق مع ال - نوب بطاقة شعار:
    sudo / opt / puppetlabs / bin / puppet application - noop init.pp

لا يجب أن يُرجع أي أخطاء وسيخرج أنه سيؤدي إلى تحديث من الأحداث. لتثبيت وتكوين apache على Puppet master ، قم بتشغيله مرة أخرى بدون- نوب، إذا رغبت في ذلك.

  • انتقل مرة أخرى إلى دليل Puppet الرئيسي ثم إلى ملفالمانيفستاتمجلد (ليسالموجود في وحدة Apache).

cd / etc / puppetlabs / code / البيئات / الإنتاج / المانيفست

إنشاءsite.ppملف،وتضمين وحدة Apache لكل عقدة وكيل. أدخل أيضًا المتغيرات لـالبريد الاداري و اسم الخادمالمعلمات. الخاص بكsite.ppيجب أن يشبه ما يلي:

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

العقدة 'puppet-agent-ubuntu.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'puppet.example.com' تتضمن apache تتضمن apache :: vhosts} العقدة 'puppet-agent-centos.example .com '{$ adminemail =' webmaster@example.com '$ servername =' puppet.example.com 'يتضمن apache apache :: vhosts}

بشكل افتراضي ، ستتحقق خدمة وكيل Puppet على العقد المُدارة تلقائيًا مع السيد مرة واحدة كل 30 دقيقة وتطبق أي تكوينات جديدة من السيد. يمكنك أيضًا استدعاء عملية وكيل Puppet يدويًا بين عمليات تشغيل الوكيل التلقائية. لتشغيل الوحدة الجديدة يدويًا على عقد الوكيل ، قم بتسجيل الدخول إلى العقد وقم بتشغيل:

sudo / opt / puppetlabs / bin / وكيل دمية -t

الآن وقد تعلمنا كيفية إنشاء وحدة من البداية ، فلنتعلم كيفية استخدام وحدة موجودة مسبقًا من تشكيل الدمى لمختبرات الدمى.

استخدم وحدة من PuppetForge

دمية فورج يحتوي بالفعل على العديد من الوحدات النمطية لتشغيلها على الخادم. يمكننا تكوينها على نطاق واسع مثل الوحدة التي أنشأتها ويمكننا توفير الوقت لأننا لا نحتاج إلى إنشاء الوحدة من البداية.

تأكد من أنك في / etc / puppetlabs / code / البيئات / الإنتاج / الوحدات الدليل وتثبيت وحدة MySQL من Puppet Forge بواسطة PuppetLabs. سيؤدي هذا أيضًا إلى تثبيت أي وحدات نمطية مطلوبة مسبقًا.

cd / etc / puppetlabs / code / البيئات / الإنتاج / الوحدات

sudo / opt / puppetlabs / bin / puppet module install puppetlabs-mysql

استخدم Hiera لإنشاء قواعد البيانات

قبل إنشاء ملفات التكوين لوحدة MySQL ، ضع في اعتبارك أنك قد لا ترغب في استخدام نفس القيم عبر جميع عقد الوكيل. لتزويد Puppet بالبيانات الصحيحة لكل عقدة ، نستخدم Hiera. ستستخدم كلمة مرور جذر مختلفة لكل عقدة ، وبالتالي إنشاء قواعد بيانات MySQL مختلفة.

  • انتقل إلى/ الخ / دميةوإنشاء ملف تكوين Hieraهييرارئيسيادميةالدليل. ستستخدم قيم Hiera الافتراضية:

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

--- الإصدار: 5 التسلسل الهرمي: - الاسم: المسار المشترك: الافتراضات العامة. yaml: data_hash: yaml_data datadir: البيانات
  • قم بإنشاء الملفمشترك. سيحدد الافتراضي جذر كلمة مرور MySQL:

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

mysql :: server :: 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 تتضمن mysql :: server mysql :: db {'mydb_ $ {fqdn} ': user =>' myuser '، password =>' mypass '، dbname =>' mydb '، host => $ :: fqdn، منح => [' SELECT '،' UPDATE ']، tag = > $ domain،}} العقدة 'Puppetagent-centos.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'hostname.example.com' تتضمن apache تتضمن apache :: vhosts تتضمن mysql :: server mysql :: db {'mydb _ $ {fqdn}': user => 'myuser'، password => 'mypass'، dbname => 'mydb'، host => $ :: fqdn، منح => ['SELECT'، ' UPDATE '] ، العلامة => $ domain ،}}

أتمتة تثبيت وحدات الدمى من سيد الدمى إلى وكيل الدمى

  • يمكنك تشغيل هذه التحديثات يدويًا على كل عقدة عن طريق SSHing في كل عقدة وإصدار الأمر التالي:

sudo / opt / puppetlabs / bin / وكيل دمية -t

  • خلاف ذلك ، فإن خدمة وكيل Puppet على العقد المُدارة الخاصة بك سوف تقوم تلقائيًا بالتحقق من المدير مرة واحدة كل 30 دقيقة وتطبيق أي تكوينات جديدة من السيد.

تم تطبيق الكتالوج بنجاح على وكيل Ubuntu

تم تطبيق الكتالوج بنجاح على وكيل CentOS

وبالتالي ، يحصل التثبيت بأكمله الآلي على عقد الوكيل بمجرد تطبيق الكتالوج.يمكن العثور على ملفات التعليمات البرمجية والتبعيات المستخدمة في هذا العرض التوضيحي هنا .

آمل أن يكون هذا العرض التوضيحي قد ساعدك في الحصول على فكرة واضحة عن وحدات الدمى والمانيفستات واستخدامها لأتمتة البنية التحتية لتكنولوجيا المعلومات.في هذه الحالة ، يصبح عملك سهلاً للغاية ، ما عليك سوى تحديد التكوينات في Puppet Master وسيقوم وكلاء Puppet تلقائيًا بتقييم البيان الرئيسي وتطبيق الوحدة التي تحدد إعداد Apache و MySQL. إذا واجهتك أي استفسارات ، فلا تتردد في نشرها على .

إذا وجدت هذا دروس الدمية ذو صلة، تفحص ال من Edureka ، وهي شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250000 متعلم راضٍ منتشرين في جميع أنحاء العالم. تساعد الدورة التدريبية لشهادة Edureka DevOps المتعلمين على اكتساب الخبرة في عمليات وأدوات DevOps المختلفة مثل Puppet و Jenkins و Nagios و GIT لأتمتة خطوات متعددة في SDLC.