آئی ٹی انفراسٹرکچر آٹومیشن کے لئے کٹھ پتلی ماڈیول کس طرح استعمال کریں؟



ایک کٹھ پتلی ٹیوٹوریل جو کٹھ پتلی ماڈیول لکھنے اور کسی تنظیم کے آئی ٹی انفراسٹرکچر کو خودکار اور برقرار رکھنے کے لئے مینی فیسٹ استعمال کرنے کے بارے میں بات کرتا ہے۔

اس سے قبل ، سسٹم کے منتظمین اپنے سرور چلانے کے لئے شیل اسکرپٹ کا استعمال کرتے تھے ، اور اس طریقہ کار میں صفر کی کمی تھی۔ سیکڑوں یا ہزاروں بدلے ہوئے سرورز اور ان کی سسٹم کی تشکیلوں کے ل sc اسکرپٹ میں مستقل طور پر ترمیم کرنا ایک پریشانی کا کام ہے۔

پر اس مضمون میں کٹھ پتلی ماڈیول اور ظاہر ہوتا ہے آئیے دیکھتے ہیں کہ ہم سرور سیٹ اپ ، پروگرام انسٹالیشن ، اور سسٹم مینجمنٹ کے لئے کٹھ پتلی ماڈیولس کو کس طرح استعمال کرسکتے ہیں۔





اس بلاگ میں مندرجہ ذیل عنوانات کا احاطہ کیا جائے گا۔

پپیٹ پروگرامنگ کا تعارف

کٹھ پتلی ایک مقبول مقبول ڈیو اوپس ٹول ہے جو ترتیب سے متعلق انتظام کے لئے وسیع پیمانے پر استعمال ہوتا ہے۔ یہ لانے کے لئے استعمال کیا جاتا ہے مستقل مزاجی انفراسٹرکچر میں۔ پتلی انفراسٹرکچر کو کوڈ کے طور پر متعین کرسکتا ہے ، ایک سے زیادہ سرورز کا نظم کرسکتا ہے ، اور نظام کی تشکیل نافذ کرسکتا ہے ، اس طرح انفراسٹرکچر مینجمنٹ کے عمل کو خودکار بنانے میں مدد مل سکتی ہے۔



پتلی کے پاس ہےاپنی تشکیل کی زبان ، پتلی ڈی ایس ایل . جیسا کہ دوسرے ڈی اوپس پروگراموں کی طرح ، کٹھ پتلی خودکار تبدیلیاں ، دستی اسکرپٹ سے چلنے والی تبدیلیوں کو ختم کرتے ہوئے. تاہم ، کٹھ پتلی صرف ایک اور شیل زبان نہیں ہے ، اور نہ ہی یہ خالص پروگرامنگ زبان ہے ، جیسے پی ایچ پی۔ اس کے بجائے ، پتلی استعمال کرتا ہےکرنے کے لئے اعلاناتی ماڈل پر مبنی نقطہ نظر آئی ٹی میشن پر اس سے کٹھ پتلی بنیادی ڈھانچے کو کوڈ کی شکل دینے اور پروگراموں کے ساتھ سسٹم کی تشکیل کو نافذ کرنے کے قابل بناتا ہے۔

ڈیمو کے ساتھ حاصل کرنے سے پہلے آئیے ، کٹھ پتلی پروگرامنگ کے چند بنیادی پہلوؤں کو دیکھیں۔

پروگرامنگ زبان استعمال کرنے والی کمپنیاں

پپیٹ پروگرامنگ میں کلیدی اصطلاحات

ظاہر ہوتا ہے

کٹھ پتلی پروگرام کہا جاتا ہے مینیفٹ اور کے ساتھ ایک فائل کا نام ہے .pp توسیع پتلی کا ڈیفالٹ مین منشور ہے /etc/puppet/manifests/site.pp . (اس کی وضاحت کرتا ہےعالمی نظام کی تشکیلات ، جیسے LDAP کنفیگریشن ، DNS سرورز ، یا دیگر تشکیلات جو ہر نوڈ پر لاگو ہوتی ہیں)۔



کلاسز

ان مظاہروں کے اندر کوڈ بلاکس کہا جاتا ہے کلاسز دوسرے ماڈیول کال کرسکتے ہیں۔ کلاسز بڑے یا درمیانے درجے کے فنکشن کو تشکیل دیتے ہیں ، جیسے کہ تمام پیکیجز ، کنفگریشن فائلیں ، اور ایپلی کیشن کو چلانے کے لئے درکار خدمات۔ کلاسوں کو پتلی کوڈ کا دوبارہ استعمال اور پڑھنے کی اہلیت کو بہتر بنانا ہے۔

حوالہ جات

پتلی کوڈ زیادہ تر وسائل کے اعلانات پر مشتمل ہوتا ہے۔ A وسائل نظام کی مطلوبہ حالت کے بارے میں ایک خاص عنصر کی وضاحت کرتا ہے۔ مثال کے طور پر ، اس میں یہ شامل ہوسکتا ہے کہ ایک مخصوص فائل موجود ہونی چاہئے یا کوئی پیکیج انسٹال ہونا چاہئے۔

کٹھ پتلی ماڈیولز

سوائے مین کےسائٹ.ppظاہر ،یہ ظاہر ہوتا ہےمیں ماڈیولز .

ہمارا سارا پتلی کوڈ ان ماڈیولز میں ترتیب دیا گیا ہے جو کٹھ پتلی کے بنیادی ڈھانچے ہیں جو ہم دوبارہ استعمال اور اشتراک کرسکتے ہیں۔ ہر ماڈیول انفراسٹرکچر میں ایک مخصوص کام کا انتظام کرتا ہے ، جیسے سافٹ ویئر کے ٹکڑے کو انسٹال کرنا اور اس کی تشکیل کرنا۔

ماڈیولز میں کٹھ پتلی کلاس ، متعین اقسام ، کاموں ، ٹاسک پلانز ، صلاحیتوں ، وسائل کی قسمیں ، اور پلگ ان شامل ہوتے ہیں ، مثال کے طور پر اپنی مرضی کی اقسام یا حقائق۔ پتلی میں ماڈیول انسٹال کریںماڈیول راہ. کٹھ پتلی ماڈیول پاتھ کے ہر ماڈیول سے تمام مواد کو لوڈ کرتی ہے ، اس کوڈ کو استعمال کے ل available دستیاب ہے۔

ماڈیولز - کٹھ پتلی پروگرامنگ۔ ایڈیورکاپپٹلیبس میں پہلے سے متعین ماڈیولز ہیں جن کو ہم ڈاؤن لوڈ کرکے فوری طور پر استعمال کرسکتے ہیں کٹھ پتلی . آپ اپنی ضروریات کے مطابق کٹھ پتلی ماڈیول بھی تشکیل دے سکتے ہیں۔

کٹھ پتلی پروگرام ورک فلو

ہم پپیٹ کی تشریحی زبان کا استعمال فائلوں میں نظام کی مطلوبہ حالت کو بیان کرنے کے ل will کریں گے۔ اس سے ظاہر ہوتا ہے کہ آپ کو کس طرح اپنے نیٹ ورک اور آپریٹنگ سسٹم کے وسائل ، جیسے فائلیں ، پیکیجز ، اور خدمات تشکیل دیں۔

کٹھ پتلیوں کو مرتب کرتا ہے کیٹلاگ اور یہ ٹی ٹی کی ترتیب کو یقینی بنانے کے ل catalog ہر کیٹلاگ کو اپنے متعلقہ نوڈ پر لاگو کرتا ہےوہ نوڈ درست ہےآپ کے بنیادی ڈھانچے کے اس پار۔

مظاہرہ: اپاچی اور ایس کیو ایل کی تنصیب کو خودکار بنانا

کٹھ پتلی ماڈیولز پر یہ مضمون ہاتھ سے جاری ہے جس میں کٹھ پتلی ماڈیول کے استعمال کے دو طریقے دکھائے جائیں گے اور یہ بھی آپ کو سکھائے گا کہ کیسے خودکار ان دو ماڈیولز کے ساتھ تشکیل شدہ سرور کی تنصیب۔

شروعات کے ساتھ ، یہ یقینی بنائیں کہ آپ کے پاس کٹھ پتلی انفراسٹرکچر تیار ہے جس میں کٹھ پتلی ماسٹر سرور اور 2 کٹھ پتلی ایجنٹ شامل ہوں گے۔

  • پتلی ماسٹر: اوبنٹو 18.04
  • ایجنٹ 1: اوبنٹو 18.04
  • ایجنٹ 2:سینٹوس 7

ہم اس کام میں کیا حاصل کریں گے اس کا خاکہ یہاں ہے:


تو آئیے شروع سے ہی شروع کریں:

شروع سے ماڈیول بنانا

اس کٹھ پتلی ماڈیول میں ، ہم اپاچی پیکیج ڈاؤن لوڈ کرنے ، فائلوں کی تشکیل اور ورچوئل میزبانوں کی ترتیب جیسے کاموں سے نمٹیں گے۔

  • پپیٹ ماسٹر سے ، پپیٹ کی ماڈیول ڈائرکٹری پر جائیں اور اپاچی ڈائرکٹری تشکیل دیں:
    سی ڈی / وغیرہ / کٹھ پتلی / ماڈیول sudo mkdir اپاچی
  • اپاچی ڈائرکٹری کے اندر سے ، ذیلی ڈائریکٹریز بنائیں: ظاہر ، ٹیمپلیٹس ، فائلیں اور مثالوں۔
    سی ڈی اپاچی sudo mkdir {ظاہر ہوتا ہے ، ٹیمپلیٹس ، فائلیں ، مثالوں}
  • مینی فیسٹ ڈائرکٹری پر جائیں:
    سی ڈی ظاہر ہوتا ہے
  • یہاں سے ، ہم اس حصے کے کوڈ کے اہداف کی بنیاد پر ماڈیول کو کلاسوں میں الگ کردیں گے۔

init.pp -> اپاچی پیکیج ڈاؤن لوڈ کرنے کے لئے

params.pp -> کسی بھی متغیر اور پیرامیٹرز کی وضاحت کرنے کے لئے

config.pp -> اپاچی سروس کے ل any کسی بھی تشکیل فائلوں کا انتظام کرنا۔

vhosts.pp -> ورچوئل میزبان کی وضاحت کرنے کے لئے.

یہ ماڈیول بھی استعمال کرے گا ہیرا (ایک بلٹ میں کلید-قیمت ترتیب ڈیٹا لچکنگ سسٹم ، جو کٹھ پتلی کوڈ سے ڈیٹا کو الگ کرنے کے لئے استعمال ہوتا ہے) ، ہر نوڈ کے لئے متغیر ذخیرہ کرنے کے لئے.

مرحلہ 1: اپاچی پیکیج ڈاؤن لوڈ کرنا

init.pp کلاس بنائیں

اب ہم ایک تشکیل دیں گےinit.ppاپاچی پیکیج کے انعقاد کے لئے مینی فیسٹ ڈائریکٹری کے تحت فائل۔
چونکہ ہمارے پاس 2 مختلف OS (اوبنٹو اور CentOS7) ہیں جو اپاچی کے لئے مختلف پیکیج کے ناموں کا استعمال کرتے ہیں ، ہمیں ایک متغیر استعمال کرنا پڑے گا$ apachename.

/etc/puppetlabs/code/enomotments/ product/modules/apache/manifests/init.pp

کلاس اپاچی {پیکیج {'اپاچی': نام => $ آپچینام ، یقینی بنائیں => موجود ،}

پیکیج وسائل کسی پیکیج کے انتظام کی اجازت دیتا ہے۔ اس کا استعمال کسی پیکیج کے موجود ، ہٹانے یا یقینی بنانے کے لئے کیا جاتا ہے۔

زیادہ تر معاملات میں ، نام وسائل کی (اپاچی، اوپر) اس پیکیج کا نام ہونا چاہئے جس کا انتظام کیا جارہا ہے۔ نام کی مختلف کنونشنوں کی وجہ سے ،ہم پیکیج کا اصل نام کہتے ہیںکے ساتھ نام حوالہ تو نام ، ابھی تک غیر متعینہ متغیر کا مطالبہ کرتا ہے$ apachename.

یقینی بنانے حوالہ یہ یقینی بناتا ہے کہ پیکیج ہےموجودہ.

params.pp فائل بنائیں

params.ppفائل مطلوبہ متغیر کی وضاحت کرے گی۔ جبکہ ہم ان متغیرات کی وضاحت کر سکتے ہیںinit.ppفائل ، چونکہ مزید متغیرات کو وسائل کی قسم سے باہر ہی استعمال کرنے کی ضرورت ہوگی ،params.ppفائل متغیر کی وضاحت کرنے کی اجازت دیتی ہےاگربیانات اور متعدد کلاسوں میں استعمال کیا جاتا ہے۔

بنائیے ایکparams.ppفائل اور مندرجہ ذیل کوڈ

/etc/puppetlabs/code/enomotments/ product/modules/apache/manifests/params.pp

کلاس اپاچی :: پیرامس {اگر $ :: osfamily == 'RedHat' {$ apachename = 'httpd'} elsif $ :: osfamily == 'Debian' {$ apachename = 'apache2'} ورنہ {ناکام ('یہ نہیں ہے ایک تعاون یافتہ ڈسٹرو۔ ')}}

اصل سے باہر init.ppکلاس ، ہر کلاس کا نام برانچ ہونے کی ضرورت ہےاپاچی. اس کلاس کو ہم کہتے ہیں apache :: params . ڈبل بڑی آنت کے نام پر فائل کے ساتھ ایک نام شیئر کرنا چاہئے۔ ایکاگربیان پیرامیٹرز کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے ، جو فراہم کردہ معلومات سے کھینچتے ہیں عنصر ، پپیٹ کی اپنی تنصیب کے ایک حصے کے طور پر فیکٹر انسٹالیشن ہے۔ یہاں ، فیکٹر آپریٹنگ سسٹم والے افراد کو کھینچ لے گا (عصمت دری سے) ، یہ جاننے کے لئے کہ آیا ہےلال ٹوپییاڈیبیان پر مبنی

آخر میں بیان کردہ پیرامیٹرز کے ساتھ ، ہمیں فون کرنے کی ضرورت ہے params.pp فائل اور پیرامیٹرز میںinit.pp. ایسا کرنے کے لئے ، ہمیں کلاس کے نام کے بعد پیرامیٹرز شامل کرنے کی ضرورت ہے ، لیکن گھوبگھرالی بریکٹ کھولنے سے پہلے({).

توinit.ppجو ہم نے پہلے پیدا کیا تھا اس کو کچھ اس طرح نظر آنا چاہئے:

کلاس اپاچی ($ apachename = $ :: apache :: params :: apachename،) وراثت میں :: apache :: params {package {'apache': name => $ apachename، sure => موجود ،}

ویلیو سٹرنگ $ :: اپاچی :: پیرامس :: ویلیو کٹھ پتلی سے کہتی ہے کہ وہ اقدار کو اس سے کھینچیں اپاچی ماڈیولز ، پیرامس کلاس ، اس کے بعد پیرامیٹر کا نام۔ ٹکڑا وراثت میں :: apache :: params کے لئے کی اجازت دیتا ہےinit.ppان اقدار کا وارث ہونا۔

مرحلہ 2: تشکیل فائلوں کا نظم کریں

آپ ریڈ ہیٹ- یا ڈیبیان پر مبنی نظام پر کام کر رہے ہیں اس پر منحصر ہے کہ اپاچی تشکیل فائل مختلف ہوگی۔

آپ کو اس ڈیمو کے آخر میں مندرجہ ذیل انحصار والی فائلیں مل سکتی ہیں۔httpd.conf(لال ٹوپی)،apache2.conf(دبیان)

  • کے مواد کو کاپی کریں httpd.conf اورapache2.confالگ فائلوں میں اور انہیں محفوظ کریں فائلوں ڈائریکٹریپر / وغیرہ / کٹھ پتلی / کوڈ / ماحول / پیداوار / ماڈیول / اپاچی / فائلیں .
  • دونوں فائلوں میں ترمیم کریں غیر فعال زندہ رہو. آپ کو لائن شامل کرنے کی ضرورت ہوگی زندہ رکھیں میںhttpd.confفائل اگر آپ اس ترتیب کو تبدیل نہیں کرنا چاہتے ہیں تو ہمیں ہر ایک کے اوپر ایک تبصرہ شامل کرنا چاہئےفائل:
    /etc/puppetlabs/code/en वातावरण / مصنوعہ / ماڈیولز / پیچی / فائلیں / htpd.conf
# اس فائل کا بندوبست کٹھ پتلی کے ذریعہ کیا جاتا ہے

میں ان فائلوں کو شامل کریںinit.ppفائل ، لہذا پپیٹ کو ان فائلوں کا مقام ماسٹر سرور اور ایجنٹ نوڈس دونوں پر معلوم ہوگا۔ ایسا کرنے کے لئے ، ہم استعمال کرتے ہیں فائل وسائل

/etc/puppetlabs/code/enomotments/ product/modules/apache/manifests/init.pp

فائل configuration 'تشکیل-فائل': راستہ => $ کنفائل کریں ، یقینی بنائیں => فائل ، سورس => s کنفراسورسٹ ،}

چونکہ ہمارے پاس کنفگریشن فائلیں دو مختلف جگہوں پر موجود ہیں ، لہذا ہم وسائل کو عام نام دیتے ہیں تشکیل فائل فائل کے ساتھ راستہ کے ساتھ ایک پیرامیٹر کے طور پر بیانراستہوصف.

یقینی بنانے اس بات کو یقینی بناتا ہے کہ یہ ایک فائل ہے۔

ذریعہ مذکورہ فائلوں کے پتلی ماسٹر پر مقام فراہم کرتا ہے۔

کھولوparams.ppفائل

ہم کی وضاحت ff بند کرو اور s رازکے اندر اندر متغیراتاگربیان:

/etc/puppetlabs/code/enomotments/ product/modules/apache/manifests/params.pp

if $ :: osfamily == 'RedHat' {... ff conffile = '/etc/httpd/conf/httpd.conf' s confsource = 'کٹھ پتلی: ///modules/apache/httpd.conf' ls elsif $: : osfamily == 'Debian' {... ff conffile = '/etc/apache2/apache2.conf' $ confsource = 'پتلی: ///modules/apache/apache2.conf'} دوسری {...

ہمیں پیرامیٹرز کو شروع کے آغاز میں شامل کرنے کی ضرورت ہےاپاچیمیں کلاس اعلامیہinit.ppپچھلی مثال کی طرح فائل۔

جب کنفگریشن فائل بدل جاتی ہے ، اپاچی کو دوبارہ شروع کرنے کی ضرورت ہوتی ہے۔ اس کو خودکار کرنے کے لئے ، ہم سروس وسائل استعمال کرسکتے ہیںکے ساتھ مجموعہ میں مطلع وابستہ ، جو جب بھی تشکیل فائل کو تبدیل کیا جاتا ہے کو وسائل چلانے کے لئے کہتے ہیں:

/etc/puppetlabs/code/enomotments/ product/modules/apache/manifests/init.pp

فائل {'تشکیل-فائل': راستہ => $ کنفائل ، یقینی بنائیں => فائل ، سورس => s کنفراسورسٹ ، مطلع کریں => سروس ['اپاچی خدمت'] ،} سروس {'اپاچی سروس': نام => apachename ، hasrestart => سچ ،}

خدمت وسائل پہلے سے تیار کردہ پیرامیٹر کا استعمال کرتا ہے جس نے ریڈ ہیٹ اور ڈیبیئن سسٹم پر اپاچی نام کی تعریف کی ہے۔
hasrestart وصف کا تعی theن شدہ خدمت کو دوبارہ شروع کرنے کے لئے استعمال کیا جاتا ہے۔

مرحلہ 3: ورچوئل میزبان فائلیں بنائیں

آپ کے سسٹم کی تقسیم پر انحصار کرتے ہوئے ورچوئل میزبان کی فائلوں کو مختلف طریقے سے منظم کیا جائے گا۔ اس کی وجہ سے ، ہم ایک میں ورچوئل میزبانوں کے لئے کوڈ کو انکیز کریں گےاگربیان ، میں استعمال ایک کی طرحparams.ppکلاس لیکن حقیقی پتلی وسائل پر مشتمل ہے۔

  • کے اندر سےاپاچی / ظاہر /ڈائرکٹری ، بنائیں اور کھولیں avhosts.ppفائل کا کنکال شامل کریںاگربیان:

/etc/puppetlabs/code/en वातावरण / مصنوعہ / ماڈیولز / پیچی / مینفیسٹیس / vhosts.pp

کلاس اپاچی :: vhosts {if $ :: osfamily == 'RedHat' {ls elsif $ :: osfamily == 'Debian' {} else {}}

ہمارے سینٹوس 7 سرور پر ورچوئل ہوسٹ فائل کا مقام ہے/etc/httpd/conf.d/vhost.conf . آپ کو کٹھ پتلی ماسٹر پر ٹیمپلیٹ کے بطور فائل تخلیق کرنے کی ضرورت ہے۔ اوبنٹو ورچوئل میزبان فائل کے لئے بھی ایسا ہی کریں ، جو واقع ہے/etc/apache2/sites-available/example.com.conf، تبدیل کرنامثال ڈاٹ کامسرور کے FQDN کے ساتھ۔

  • پر جائیں ٹیمپلیٹس فائل کے اندر اپاچی ماڈیول بنائیں اور پھر اپنے ورچوئل میزبانوں کے لئے دو فائلیں بنائیں۔

ریڈ ہیٹ سسٹم کے لئے:
/etc/puppetlabs/code/enomotments/ product/modules/apache/templates/vhosts-rh.conf.erb

جاوا میں ایک ایکس ایم ایل فائل کو پارس کرنا
سرور ایڈمن سرور نام سرورآلیاس www۔ دستاویزی روٹ / وی آر / www // پبلک_ ایچ ٹی ایم ایل / غلطیلاگ / وار /www//logs/error.log کسٹم لاگ /var/www//logs/access.log مشترکہ

دبیانی نظام کے لئے:
/etc/puppet/modules/apache/templates/vhosts-deb.conf.erb

سرور ایڈمن سرور نام سرورآلیاس www۔ دستاویزی روٹ / وی آر / www / ایچ ٹی ایم ایل // پبلک_ ایچ ٹی ایم ایل / غلطیلاگ / وار/www/html//logs/error.log کسٹم لاگ /var/www/html//logs/access.log مشترکہسب کی ضرورت ہے

ہم ان فائلوں میں صرف دو متغیرات استعمال کرتے ہیں۔ ایڈمین میل اور خدمت گار کا نام . ہم ان کی وضاحت نوڈ بائی نوڈ کی بنیاد پر کریں گےسائٹ.ppفائل

  • واپسvhosts.ppفائل تخلیق کردہ ٹیمپلیٹس کا حوالہ اب کوڈ میں دیا جاسکتا ہے۔

/etc/puppetlabs/code/en वातावरण / مصنوعہ / ماڈیولز / پیچی / مینفیسٹیس / vhosts.pp

کلاس اپاچی :: vhosts {if $ :: osfamily == 'redHat' {فائل {'/etc/httpd/conf.d/vhost.conf': یقینی بنائیں => فائل ، مواد => ٹیمپلیٹ ('اپاچی / vhosts-rh .conf.erb ')،} ls elsif $ :: osfamily ==' Debian '{file {' /etc/apache2/sites-available/$servername.conf ': یقینی بنائیں => فائل ، مواد => ٹیمپلیٹ (' اپاچی /vhosts-deb.conf.erb ') ،}} else {ناکام (' یہ معاون ڈسٹرو نہیں ہے۔ ')}

تقسیم کے دونوں خاندانوں نے رب کو فون کیافائلوسائل اور متعلقہ تقسیم پر ورچوئل میزبان کے مقام کا عنوان حاصل کریں۔ دبیان کے لئے ، اس کا ایک بار پھر حوالہ دینا ہےvern خطبہقدر.موادوابستہ متعلقہ ٹیمپلیٹس کو کال کرتی ہے.

  • دونوں ورچوئل میزبان فائلیں ریفرنس دو ڈائریکٹریز۔ وہ ڈیفالٹ سسٹم پر نہیں ہیں۔ ہم اسے استعمال کے ذریعہ تشکیل دے سکتے ہیںفائلوسائل ، ہر ایک کے اندراگربیان مکملvhosts.confفائل مشابہت ہونی چاہئے:

/etc/puppetlabs/code/en वातावरण / مصنوعہ / ماڈیولز / پیچی / مینفیسٹیس / vhosts.pp

کلاس اپاچی :: vhosts {if $ :: osfamily == 'redHat' {فائل {'/etc/httpd/conf.d/vhost.conf': یقینی بنائیں => فائل ، مواد => ٹیمپلیٹ ('اپاچی / vhosts-rh .conf.erb ') ،} فائل {[' / var / www / $ سرور نام '،' / var / www / $ سرور نام / عوامی_ html '،' / var / www / $ سرور نام / لاگ '،]: یقینی بنائیں> ڈائریکٹری ،}} elsif $ :: osfamily == 'Debian' {file {'/etc/apache2/sites-available/$servername.conf': یقینی بنائیں => فائل ، مواد => ٹیمپلیٹ ('اپاچی / vhosts-deb. conf.erb ') ،} فائل {[' / var / www / $ سرور نام '،' / var / www / $ سرور نام / عوامی_ html '،' / var / www / $ سرور نام / نوشتہ جات '،]: یقینی بنائیں>> ڈائریکٹری ،}} else {ناکام ('یہ تعاون یافتہ ڈسٹرو نہیں ہے۔')}

مرحلہ 4: ماڈیول کی جانچ کریں

  • پر جائیںاپاچی / ظاہر /ڈائرکٹری ، چلائیں کٹھ پتلی تجزیہ کار تمام فائلوں پر یہ یقینی بنانے کے لئے کہ کٹھ پتلی کوڈنگ غلطی کے بغیر ہے:

sudo / opt / puppetlabs / bin / کٹھ پتلی پارسر کو تصدیق کرنا init.pp params.pp vhosts.pp

اسے بغیر کسی مسئلہ کے خالی لوٹنا چاہئے۔

  • پر جائیں مثالیں کے اندر اندر ڈائریکٹریاپاچیماڈیول بنائیں ایکinit.ppفائلیں بنائیں اور تخلیق شدہ کلاسیں شامل کریں۔ کے لئے اقدار کو تبدیل کریںvern خطبہاورmine ایڈمین میلاپنے ساتھ:

/etc/puppetlabs/code/enomotments/ product/modules/apache/example/init.pp

servremail = 'webmaster@example.com' $ servername = 'puppet.example.com' میں اپاچی شامل ہیں اپاچی :: vhosts
  • چلاتے ہوئے ماڈیول کی جانچ کریں کٹھ پتلی لگائیں کے ساتہ oنوپ ٹیگ:
    sudo / opt / puppetlabs / bin / پتلی درخواست --noop init.pp

اسے ایسی غلطیوں اور آؤٹ پٹ کو واپس نہیں کرنا چاہئے جو اس سے واقعات سے تازہ دم ہوجائیں۔ کٹھ پتلی ماسٹر پر اپاچی کو انسٹال اور تشکیل کرنے کے لئے بغیر دوبارہ چلائیںoنوپ، اگر مطلوبہ ہے۔

  • مرکزی پتلی ڈائریکٹری میں واپس جائیں اور پھرظاہر ہوتا ہےفولڈر (نہیںاپاچی ماڈیول میں موجود ایک)۔

سی ڈی / وغیرہ / کٹھ پتلی / کوڈ / ماحول / پیداوار / ظاہر

بنائیے ایکسائٹ.ppفائل ،اور ہر ایجنٹ نوڈ کے لئے اپاچی ماڈیول شامل کریں۔ بھی کے لئے متغیر ان پٹایڈمین میل اور خدمت گار کا نامپیرامیٹرز آپ کاسائٹ.ppمندرجہ ذیل سے ملنا چاہئے:

/etc/puppetlabs/code/enomotments/ product / manifests/site.pp

نوڈ 'کٹھ پتلی-agent-ubuntu.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'puppet.example.com' میں اپاچی شامل ہیں اپاچی :: vhosts} نوڈ 'کٹھ پتلی-ایجنٹ-Centos.example .com '{$ adminemail =' webmaster@example.com '$ servername =' puppet.example.com 'میں اپاچی شامل ہیں اپاچی :: vhosts}

پہلے سے طے شدہ طور پر ، آپ کے منظم نوڈس پر کٹھ پتلی ایجنٹ کی خدمت ہر 30 منٹ میں ایک بار خود بخود ماسٹر سے چیک کرے گی اور ماسٹر سے کوئی نئی تشکیلات لاگو کرے گی۔ آپ خودکار ایجنٹ کے چلانے کے درمیان کٹھ پتلی ایجنٹ کے دستی طور پر دستی طور پر بھی درخواست کرسکتے ہیں۔ اپنے ایجنٹ نوڈس پر دستی طور پر نیا ماڈیول چلانے کے لئے نوڈس میں لاگ ان کریں اور چلائیں:

sudo / opt / puppetlabs / bin / کٹھ پتلی ایجنٹ -t

اب جب کہ ہم نے شروع سے ماڈیول کیسے بنانا سیکھ لیا ہے ، آئیے یہ سیکھیں کہ کٹھ پتلیوں کے کٹھ پتلیوں سے پہلے سے موجود ماڈیول کا استعمال کیسے کریں۔

پپیٹفورج سے ماڈیول استعمال کریں

کٹھ پتلی فورج سرور کے چلانے کے ل already پہلے ہی بہت سارے ماڈیولز موجود ہیں۔ ہم آپ کو ان ماڈیول کی طرح وسیع پیمانے پر تشکیل دے سکتے ہیں جس سے آپ نے تشکیل دیا ہے اور وقت کی بچت ہوسکتی ہے کیونکہ ہمیں شروع سے ماڈیول بنانے کی ضرورت نہیں ہے۔

یقینی بنائیں کہ آپ اس میں ہیں / وغیرہ / کٹھ پتلی / کوڈ / ماحول / پیداوار / ماڈیولز ڈائریکٹری اور انسٹال کریں کٹھ پتلی فورج کا ایس کیو ایل ماڈیول بذریعہ پپلیٹ لیبز۔ یہ کسی بھی ضروری ماڈیول کو بھی انسٹال کرے گا۔

جاوا میں آبجیکٹ کی ایک صف پیدا کرنے کا طریقہ

سی ڈی / وغیرہ / کٹھ پتلی / کوڈ / ماحول / پیداوار / ماڈیولز

sudo / opt / puppetlabs / bin / کٹھ پتلی ماڈیول انسٹال کٹھ پتلی - mysql

ڈیٹا بیس بنانے کے لئے ہیرا کا استعمال کریں

اس سے پہلے کہ آپ ایس کیو ایل ماڈیول کیلئے کنفگریشن فائلیں تشکیل دیں ، اس پر غور کریں کہ آپ تمام ایجنٹ نوڈس میں ایک جیسی اقدار استعمال نہیں کرنا چاہتے ہیں۔ فی نوڈ میں صحیح ڈیٹا کے ساتھ پپیٹ کی فراہمی کے لئے ، ہم ہیرا استعمال کرتے ہیں۔ آپ فی نوڈ مختلف روٹ پاس ورڈ استعمال کریں گے ، اس طرح مختلف ایس کیو ایل ڈیٹا بیس بنائیں گے۔

  • پر جائیں/ وغیرہ / کٹھ پتلیاور ہیرا کی کنفیگریشن فائل بنائیںhiera.yamlمرکز میںکٹھ پتلیڈائریکٹری آپ ہیرا کی ڈیفالٹ قدریں استعمال کریں گے:

/etc/puppetlabs/code/en वातावरण / مصنوعہ / ہیرا.امیل

--- ورژن: 5 درجہ بندی: - نام: مشترکہ راستہ: عام.آئمل ڈیفالٹ: ڈیٹا_ہش: یامل_ڈیٹا ڈیٹاڈیر: ڈیٹا
  • فائل بنائیںعام.امیل. یہ پہلے سے طے شدہ وضاحت کرے گا جڑ ایس کیو ایل کے لئے پاس ورڈ:

/etc/puppetlabs/code/enomotments/ product /common.yaml

mysql :: سرور :: روٹ_ پاس ورڈ: 'پاس ورڈ'

ہم استعمال کرتے ہیںعام.امیلفائلجب کسی متغیر کی تعریف کہیں اور نہیں کی جاتی ہے۔ اس کا مطلب ہے کہ تمام سرور یکساں ایس کیو ایل کے روٹ پاس ورڈ کا اشتراک کریں گے۔ یہ پاس ورڈ سیکیورٹی بڑھانے کے لئے بھی لگایا جاسکتا ہے۔

  • ایس کیو ایل ماڈیول کے ڈیفالٹس کو استعمال کرنے کے ل you آپ ان کو شامل کرسکتے ہیں شامل کریں: :: :: mysql :: سرور ’ لائنسائٹ.ppفائل تاہم ، اس مثال میں ، آپ اپنے ہر نوڈس کے لئے ڈیٹا بیس بنانے کے ل module ماڈیول کے کچھ ڈیفالٹس کو اوور رائڈ کریں گے۔

ترمیم کریںسائٹ.ppدرج ذیل اقدار کے ساتھ فائل کریں:

نوڈ 'پپیٹٹیجنٹ-ubuntu.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'hostname.example.com' میں اپاچی شامل ہیں اپاچی :: vhosts شامل mysql :: سرور mysql :: db {'mydb_ $ {fqdn} ': صارف =>' myuser '، پاس ورڈ =>' mypass '، dbname =>' mydb '، میزبان => $ :: fqdn، گرانٹ => [' منتخب کریں '،' اپ ڈیٹ ']، ٹیگ = > $ ڈومین ،} ode نوڈ 'Puppetagent-centos.example.com' {$ adminemail = 'webmaster@example.com' $ سرورورنام = 'میزبان نام. :: db {'mydb _ $ {fqdn}': صارف => 'myuser'، پاس ورڈ => 'mypass'، dbname => 'mydb'، میزبان => $ :: fqdn، گرانٹ => ['منتخب کریں'، ' تازہ کاری کریں]] ، ٹیگ => $ ڈومین ،}

کٹھ پتلی ماڈیول سے کٹھ پتلی ایجنٹ تک کٹھ پتلی ماڈیول کی تنصیب کا خودکار

  • آپ ہر نوڈ پر ایس ایس ایچنگ کے ذریعہ ہر نوڈ پر دستی طور پر یہ اپ ڈیٹ چلا سکتے ہیں اور درج ذیل کمانڈ جاری کرتے ہیں:

sudo / opt / puppetlabs / bin / کٹھ پتلی ایجنٹ -t

  • بصورت دیگر ، آپ کے منظم نوڈس پر کٹھ پتلی ایجنٹ سروس ہر 30 منٹ میں ایک بار خود بخود ماسٹر سے چیک کرے گی اور ماسٹر سے کوئی نئی تشکیلات لاگو کرے گی۔

اوبنٹو ایجنٹ پر کیٹلاگ کامیابی کے ساتھ نافذ ہوئی

سینٹوس ایجنٹ پر کیٹلاگ کامیابی کے ساتھ نافذ ہوئی

اس طرح ، پوری تنصیب ہو جاتی ہے خودکار ایجنٹ نوڈس پر صرف کیٹلاگ کا اطلاق کرکے۔اس ڈیمو کے لئے استعمال شدہ کوڈ فائلیں اور انحصار پایا جاسکتا ہے یہاں .

مجھے امید ہے کہ اس ڈیمو نے آپ کو کٹھ پتلی ماڈیولز اور بیانات اور آئی ٹی انفراسٹرکچر کو خودکار بنانے کے لئے ان کے استعمال کے بارے میں واضح نظریہ حاصل کرنے میں مدد فراہم کی ہے۔اس معاملے میں ، آپ کا کام اتنا آسان ہو جاتا ہے ، صرف کٹھ پتلی ماسٹر میں کنفیگریشن کی وضاحت کریں اور کٹھ پتلی ایجنٹ خود بخود مرکزی منشور کی جانچ کریں گے اور ماڈیول کا اطلاق کریں گے جس میں اپاچی اور ایس کیو ایل سیٹ اپ کی وضاحت ہوگی۔ اگر آپ کسی بھی سوال کے ساتھ پھنس گئے ہیں تو ، براہ کرم ان پر پوسٹ کریں .

اگر آپ کو یہ مل گیا پتلی سبق متعلقہ ، چیک کریں ایڈوریکا کے ذریعہ ، ایک قابل اعتماد آن لائن سیکھنے والی کمپنی جس کی دنیا بھر میں 250،000 سے زیادہ مطمئن سیکھنے والوں کے نیٹ ورک ہیں۔ ایڈورکا ڈی او اوپس سرٹیفیکیشن ٹریننگ کورس سیکھنے والوں کو SDLC میں متعدد مراحل کو خودکار بنانے کے لئے مختلف ڈی اوپس عمل اور اوزار جیسے پتلی ، جینکنز ، ناگیوس اور جی آئی ٹی میں مہارت حاصل کرنے میں مدد کرتا ہے۔