ఐటి ఇన్ఫ్రాస్ట్రక్చర్ ఆటోమేషన్ కోసం పప్పెట్ మాడ్యూళ్ళను ఎలా ఉపయోగించాలి?

ఒక తోలుబొమ్మ మాడ్యూల్ రాయడం మరియు ఒక సంస్థ యొక్క ఐటి మౌలిక సదుపాయాలను ఆటోమేట్ చేయడానికి మరియు నిర్వహించడానికి మానిఫెస్ట్‌ను ఉపయోగించడం గురించి మాట్లాడే ఒక తోలుబొమ్మ ట్యుటోరియల్.

గతంలో, సిస్టమ్ అడ్మినిస్ట్రేటర్లు తమ సర్వర్‌లను అమలు చేయడానికి షెల్ స్క్రిప్ట్‌లను ఉపయోగించారు మరియు ఈ పద్ధతి సున్నా స్కేలబిలిటీని కలిగి ఉంది. ఎప్పటికప్పుడు మారుతున్న వందలాది లేదా వేల సర్వర్లు మరియు వాటి సిస్టమ్ కాన్ఫిగరేషన్‌ల కోసం స్క్రిప్ట్‌లను నిరంతరం సవరించడం చాలా కష్టమైన పని.



ఈ వ్యాసంలో తోలుబొమ్మ గుణకాలు & వ్యక్తమవుతాయి సర్వర్ సెటప్, ప్రోగ్రామ్ ఇన్‌స్టాలేషన్ మరియు సిస్టమ్ మేనేజ్‌మెంట్‌ను ఆటోమేట్ చేయడానికి మేము తోలుబొమ్మ మాడ్యూళ్ళను ఎలా ఉపయోగించవచ్చో చూద్దాం.



ఈ బ్లాగ్ ఈ క్రింది అంశాలను కవర్ చేస్తుంది:

పప్పెట్ ప్రోగ్రామింగ్ పరిచయం

తోలుబొమ్మ కాన్ఫిగరేషన్ నిర్వహణ కోసం విస్తృతంగా ఉపయోగించబడే ప్రజాదరణ పొందిన DevOps సాధనాల్లో ఇది ఒకటి. ఇది తీసుకురావడానికి ఉపయోగిస్తారు స్థిరత్వం మౌలిక సదుపాయాలలో. పప్పెట్ మౌలిక సదుపాయాలను కోడ్‌గా నిర్వచించవచ్చు, బహుళ సర్వర్‌లను నిర్వహించవచ్చు మరియు సిస్టమ్ కాన్ఫిగరేషన్‌ను అమలు చేస్తుంది, తద్వారా మౌలిక సదుపాయాల నిర్వహణ ప్రక్రియను ఆటోమేట్ చేయడంలో సహాయపడుతుంది.



తోలుబొమ్మ ఉందిదాని స్వంత కాన్ఫిగరేషన్ భాష, పప్పెట్ DSL . ఇతర DevOps ప్రోగ్రామ్‌ల మాదిరిగా, పప్పెట్ మార్పులను ఆటోమేట్ చేస్తుంది, మాన్యువల్ స్క్రిప్ట్-ఆధారిత మార్పులను తొలగిస్తుంది. ఏదేమైనా, పప్పెట్ మరొక షెల్ భాష కాదు, లేదా ఇది PHP వంటి స్వచ్ఛమైన ప్రోగ్రామింగ్ భాష కాదు. బదులుగా, పప్పెట్ ఉపయోగిస్తుందికు డిక్లరేటివ్ మోడల్-బేస్డ్ విధానం IT ఆటోమేషన్‌కు. ఇది మౌలిక సదుపాయాలను కోడ్‌గా నిర్వచించడానికి మరియు ప్రోగ్రామ్‌లతో సిస్టమ్ కాన్ఫిగరేషన్‌ను అమలు చేయడానికి పప్పెట్‌ను అనుమతిస్తుంది.

డెమోతో ప్రారంభించడానికి ముందు, తోలుబొమ్మ ప్రోగ్రామింగ్ యొక్క కొన్ని ప్రధాన అంశాలను చూద్దాం.

పెద్ద డేటా విశ్లేషణ యొక్క అనువర్తనాలు

పప్పెట్ ప్రోగ్రామింగ్‌లో కీలక పదాలు

మానిఫెస్ట్

ఒక తోలుబొమ్మ కార్యక్రమం అంటారు మానిఫెస్ట్ మరియు దీనితో ఫైల్ పేరు ఉంది .పి పొడిగింపు. పప్పెట్ యొక్క డిఫాల్ట్ ప్రధాన మానిఫెస్ట్ /etc/puppet/manifests/site.pp . (ఇది నిర్వచిస్తుందిLDAP కాన్ఫిగరేషన్, DNS సర్వర్లు లేదా ప్రతి నోడ్‌కు వర్తించే ఇతర కాన్ఫిగరేషన్‌లు వంటి గ్లోబల్ సిస్టమ్ కాన్ఫిగరేషన్‌లు).



తరగతులు

ఈ మానిఫెస్ట్లలో కోడ్ బ్లాక్స్ అంటారు తరగతులు ఇతర గుణకాలు కాల్ చేయవచ్చు. అనువర్తనాలు అమలు చేయడానికి అవసరమైన అన్ని ప్యాకేజీలు, కాన్ఫిగరేషన్ ఫైల్స్ మరియు సేవలు వంటి పెద్ద లేదా మధ్య తరహా కార్యాచరణ భాగాలను తరగతులు కాన్ఫిగర్ చేస్తాయి. తరగతులు పప్పెట్ కోడ్‌ను తిరిగి ఉపయోగించడం మరియు చదవడానికి మెరుగుపరచడం సులభం చేస్తాయి.

వనరులు

తోలుబొమ్మ కోడ్ ఎక్కువగా వనరుల ప్రకటనలతో రూపొందించబడింది. జ వనరు సిస్టమ్ కోరుకున్న స్థితి గురించి ఒక నిర్దిష్ట మూలకాన్ని వివరిస్తుంది. ఉదాహరణకు, ఇది ఒక నిర్దిష్ట ఫైల్ ఉనికిలో ఉండాలి లేదా ప్యాకేజీని వ్యవస్థాపించాలి.

తోలుబొమ్మ గుణకాలు

ప్రధాన మినహాsite.ppమానిఫెస్ట్,ఇది నిల్వ చేస్తుందిలో గుణకాలు .

మా పప్పెట్ కోడ్ అంతా మాడ్యూళ్ళలో నిర్వహించబడుతుంది, ఇవి మనం తిరిగి ఉపయోగించుకోగల మరియు పంచుకోగల తోలుబొమ్మ యొక్క ప్రాథమిక బిల్డింగ్ బ్లాక్స్. ప్రతి మాడ్యూల్ సాఫ్ట్‌వేర్ యొక్క భాగాన్ని ఇన్‌స్టాల్ చేయడం మరియు కాన్ఫిగర్ చేయడం వంటి మౌలిక సదుపాయాలలో ఒక నిర్దిష్ట పనిని నిర్వహిస్తుంది.

గుణకాలు పప్పెట్ తరగతులు, నిర్వచించిన రకాలు, పనులు, పని ప్రణాళికలు, సామర్థ్యాలు, వనరుల రకాలు మరియు ప్లగిన్‌లను కలిగి ఉంటాయి, ఉదాహరణకు, అనుకూల రకాలు లేదా వాస్తవాలు. తోలుబొమ్మలో గుణకాలు వ్యవస్థాపించండిమాడ్యూల్-మార్గం. తోలుబొమ్మ మాడ్యూల్-పాత్‌లోని ప్రతి మాడ్యూల్ నుండి మొత్తం కంటెంట్‌ను లోడ్ చేస్తుంది, ఈ కోడ్‌ను ఉపయోగం కోసం అందుబాటులో ఉంచుతుంది.

గుణకాలు - పప్పెట్ ప్రోగ్రామింగ్ - ఎడురేకాపప్పెట్‌లాబ్స్‌లో ముందే నిర్వచించిన మాడ్యూల్స్ ఉన్నాయి, వాటిని డౌన్‌లోడ్ చేయడం ద్వారా మేము తక్షణమే ఉపయోగించవచ్చు పప్పెట్ఫోర్జ్ . మీరు మీ అవసరాలకు అనుగుణంగా అనుకూల తోలుబొమ్మ మాడ్యూల్‌ను కూడా సృష్టించవచ్చు.

పప్పెట్ ప్రోగ్రామ్ వర్క్ఫ్లో

మానిఫెస్ట్ అని పిలువబడే ఫైళ్ళలో సిస్టమ్ యొక్క కావలసిన స్థితిని వివరించడానికి మేము పప్పెట్ యొక్క డిక్లరేటివ్ భాషను ఉపయోగిస్తాము. ఫైళ్లు, ప్యాకేజీలు మరియు సేవలు వంటి మీ నెట్‌వర్క్ మరియు ఆపరేటింగ్ సిస్టమ్ వనరులను మీరు ఎలా కాన్ఫిగర్ చేయాలో మానిఫెస్ట్ వివరిస్తుంది.

పప్పెట్ కంపైల్స్ లోకి వ్యక్తమవుతాయి కేటలాగ్లు మరియు t యొక్క ఆకృతీకరణను నిర్ధారించడానికి ఇది ప్రతి కేటలాగ్‌ను దాని సంబంధిత నోడ్‌కు వర్తిస్తుందిఅతను నోడ్ సరైనదిమీ మౌలిక సదుపాయాల అంతటా.

ప్రదర్శన: అపాచీ & MySQL యొక్క సంస్థాపనను ఆటోమేట్ చేస్తోంది

తోలుబొమ్మ గుణకాలపై ఈ వ్యాసం ఒక తోలుబొమ్మ మాడ్యూల్‌ను ఉపయోగించటానికి రెండు మార్గాలను చూపుతుంది మరియు ఎలా చేయాలో నేర్పుతుంది ఆటోమేట్ ఈ రెండు మాడ్యూళ్ళతో కాన్ఫిగర్ చేయబడిన సర్వర్ యొక్క సంస్థాపన.

ప్రారంభించడానికి, మీకు తోలుబొమ్మ మాస్టర్ సర్వర్ మరియు 2 తోలుబొమ్మ ఏజెంట్లు ఉండే ఒక పప్పెట్ మౌలిక సదుపాయాలు సిద్ధంగా ఉన్నాయని నిర్ధారించుకోండి.

  • పప్పెట్ మాస్టర్: ఉబుంటు 18.04
  • ఏజెంట్ 1: ఉబుంటు 18.04
  • ఏజెంట్ 2:CentOS7

ఈ చేతిలో మనం ఏమి సాధించాలో ఇక్కడ ఒక రూపురేఖలు ఉన్నాయి:


కాబట్టి చేతుల మీదుగా ప్రారంభిద్దాం:

మొదటి నుండి మాడ్యూల్ సృష్టిస్తోంది

ఈ తోలుబొమ్మ మాడ్యూల్‌లో, అపాచీ ప్యాకేజీని డౌన్‌లోడ్ చేయడం, ఫైల్‌లను కాన్ఫిగర్ చేయడం మరియు వర్చువల్ హోస్ట్‌లను సెటప్ చేయడం వంటి పనులతో మేము వ్యవహరిస్తాము.

  • పప్పెట్ మాస్టర్ నుండి, పప్పెట్ యొక్క మాడ్యూల్ డైరెక్టరీకి నావిగేట్ చేయండి మరియు అపాచీ డైరెక్టరీని సృష్టించండి:
    cd / etc / puppet / modules sudo mkdir apache
  • అపాచీ డైరెక్టరీ లోపలి నుండి, ఉప డైరెక్టరీలను సృష్టించండి: మానిఫెస్ట్, టెంప్లేట్లు, ఫైల్స్ మరియు ఉదాహరణలు.
    cd apache sudo mkdir {వ్యక్తమవుతుంది, టెంప్లేట్లు, ఫైళ్ళు, ఉదాహరణలు}
  • మానిఫెస్ట్ డైరెక్టరీకి నావిగేట్ చేయండి:
    cd వ్యక్తమవుతుంది
  • ఇక్కడ నుండి, కోడ్ యొక్క ఆ విభాగం యొక్క లక్ష్యాల ఆధారంగా మాడ్యూల్‌ను తరగతులుగా వేరు చేస్తాము.

init.pp -> అపాచీ ప్యాకేజీని డౌన్‌లోడ్ చేయడానికి

params.pp -> ఏదైనా వేరియబుల్స్ మరియు పారామితులను నిర్వచించడానికి

config.pp -> అపాచీ సేవ కోసం ఏదైనా కాన్ఫిగరేషన్ ఫైళ్ళను నిర్వహించడానికి.

vhosts.pp -> వర్చువల్ హోస్ట్లను నిర్వచించడానికి.

ఈ మాడ్యూల్ కూడా ఉపయోగించుకుంటుంది హిరా (అంతర్నిర్మిత కీ-విలువ కాన్ఫిగరేషన్ డేటా శోధన వ్యవస్థ, పప్పెట్ కోడ్ నుండి డేటాను వేరు చేయడానికి ఉపయోగించబడుతుంది) డేటా, ప్రతి నోడ్ కోసం వేరియబుల్స్ నిల్వ చేయడానికి.

దశ 1: అపాచీ ప్యాకేజీని డౌన్‌లోడ్ చేస్తోంది

Init.pp తరగతిని సృష్టించండి

ఇప్పుడు మనం ఒక సృష్టిస్తాముinit.ppఅపాచీ ప్యాకేజీని ఉంచడానికి ఫైల్ డైరెక్టరీని మానిఫెస్ట్ చేస్తుంది.
అపాచీ కోసం వేర్వేరు ప్యాకేజీ పేర్లను ఉపయోగించే 2 వేర్వేరు OS (ఉబుంటు మరియు సెంటొస్ 7) ఉన్నందున, మేము వేరియబుల్ ఉపయోగించాలి$ అపాచెనేమ్.

/etc/puppetlabs/code/en Environmentles / production / modules / apache / manifests / init.pp

తరగతి అపాచీ {ప్యాకేజీ ap 'అపాచీ': పేరు => $ అపాచెనేమ్, నిర్ధారించుకోండి => ప్రస్తుతం,}}

ప్యాకేజీ ప్యాకేజీ నిర్వహణకు వనరు అనుమతిస్తుంది. ప్యాకేజీని జోడించడానికి, తీసివేయడానికి లేదా నిర్ధారించడానికి ఇది ఉపయోగించబడుతుంది.

చాలా సందర్భాలలో, ది పేరు వనరు యొక్క (అపాచీ, పైన) నిర్వహించబడుతున్న ప్యాకేజీ పేరు అయి ఉండాలి. విభిన్న నామకరణ సమావేశాల కారణంగా,మేము ప్యాకేజీ యొక్క అసలు పేరును పిలుస్తాముతో పేరు సూచన. కాబట్టి పేరు , ఇంకా నిర్వచించబడని వేరియబుల్ కోసం పిలుస్తుంది$ అపాచెనేమ్.

నిర్ధారించడానికి ప్యాకేజీ అని సూచన నిర్ధారిస్తుందిప్రస్తుతం.

Params.pp ఫైల్‌ను సృష్టించండి

దిparams.ppఫైల్ అవసరమైన వేరియబుల్స్ ను నిర్వచిస్తుంది. మేము ఈ వేరియబుల్స్ ను నిర్వచించగలముinit.ppఫైల్, రిసోర్స్ రకానికి వెలుపల ఎక్కువ వేరియబుల్స్ ఉపయోగించాల్సిన అవసరం ఉన్నందున, aparams.ppఫైల్ వేరియబుల్స్ను నిర్వచించటానికి అనుమతిస్తుందిఉంటేప్రకటనలు మరియు బహుళ తరగతులలో ఉపయోగించబడతాయి.

సృష్టించండి aparams.ppఫైల్ మరియు క్రింది కోడ్.

/etc/puppetlabs/code/en Environmentles / production / modules / apache / manifests / params.pp

class apache :: params {if $ :: osfamily == 'RedHat' {$ apachename = 'httpd'} elsif $ :: osfamily == 'Debian' {$ apachename = 'apache2'} else {fail ('ఇది కాదు మద్దతు ఉన్న డిస్ట్రో. ')}}

అసలు వెలుపల init.ppతరగతి, ప్రతి తరగతి పేరు నుండి విడదీయాలిఅపాచీ. మేము ఈ తరగతిని ఇలా పిలుస్తాము apache :: పారామ్స్ . డబుల్ కోలన్ తర్వాత ఉన్న పేరు ఫైల్‌తో ఒక పేరును పంచుకోవాలి. ఒకఉంటేపారామితులను నిర్వచించడానికి స్టేట్మెంట్ ఉపయోగించబడుతుంది, అందించిన సమాచారం నుండి లాగడం కారకం , పప్పెట్ దాని సంస్థాపనలో భాగంగా ఫ్యాక్టర్ సంస్థాపనను కలిగి ఉంది. ఇక్కడ, ఫాక్టర్ ఆపరేటింగ్ సిస్టమ్ కుటుంబాన్ని తీసివేస్తుంది (osfamily), అది ఉంటే గుర్తించడానికిRed Hatలేదాడెబియన్ ఆధారిత.

పారామితులు చివరకు నిర్వచించబడినప్పుడు, మేము కాల్ చేయాలి params.pp ఫైల్ మరియు పారామితులుinit.pp. దీన్ని చేయడానికి, మేము తరగతి పేరు తర్వాత పారామితులను జోడించాలి, కాని ప్రారంభ వంకర బ్రాకెట్ ముందు({).

కాబట్టిinit.ppమేము ఇంతకుముందు సృష్టించినవి ఇలా ఉండాలి:

class apache ($ apachename = $ :: apache :: params :: apachename,) వారసత్వంగా :: apache :: params {package {'apache': name => $ apachename, sure => present,}}

విలువ స్ట్రింగ్ $ :: అపాచే :: పారామ్స్ :: విలువ నుండి విలువలను లాగడానికి పప్పెట్కు చెబుతుంది అపాచీ గుణకాలు, పారామ్స్ తరగతి, తరువాత పారామితి పేరు. శకలం వారసత్వంగా :: apache :: params అనుమతిస్తుందిinit.ppఈ విలువలను వారసత్వంగా పొందటానికి.

దశ 2: కాన్ఫిగరేషన్ ఫైళ్ళను నిర్వహించండి

మీరు Red Hat- లేదా డెబియన్ ఆధారిత సిస్టమ్‌లో పనిచేస్తున్నారా అనే దానిపై ఆధారపడి అపాచీ కాన్ఫిగరేషన్ ఫైల్ భిన్నంగా ఉంటుంది.

ఈ డెమో చివరిలో మీరు ఈ క్రింది డిపెండెన్సీ ఫైళ్ళను కనుగొనవచ్చు:httpd.conf(Red Hat),apache2.conf(డెబియన్).

  • యొక్క కంటెంట్ను కాపీ చేయండి httpd.conf మరియుapache2.confప్రత్యేక ఫైళ్ళలో మరియు వాటిని సేవ్ చేయండి ఫైళ్లు డైరెక్టరీవద్ద / etc / puppetlabs / code / environment / production / modules / apache / files .
  • రెండు ఫైళ్ళను సవరించండి డిసేబుల్ ప్రాణాలతో ఉండనివ్వండి. మీరు పంక్తిని జోడించాలి KeepAlive ఆఫ్ లోhttpd.confఫైల్. మీరు ఈ సెట్టింగ్‌ను మార్చకూడదనుకుంటే, మేము ప్రతి దాని పైన ఒక వ్యాఖ్యను జోడించాలిఫైల్:
    /etc/puppetlabs/code/en Environmentles / production / modules / apache / files / httpd.conf
# ఈ ఫైల్ తోలుబొమ్మ చేత నిర్వహించబడుతుంది

ఈ ఫైళ్ళను జోడించండిinit.ppఫైల్, కాబట్టి మాస్టర్ సర్వర్ మరియు ఏజెంట్ నోడ్స్ రెండింటిలోనూ ఈ ఫైళ్ళ స్థానాన్ని పప్పెట్ తెలుసుకుంటుంది. దీన్ని చేయడానికి, మేము ఉపయోగిస్తాము ఫైల్ వనరు.

/etc/puppetlabs/code/en Environmentles / production / modules / apache / manifests / init.pp

file {'config-file': path => f conffile, నిర్ధారించండి => ఫైల్, మూలం => $ confsource,}

మేము రెండు వేర్వేరు ప్రదేశాలలో కాన్ఫిగరేషన్ ఫైళ్ళను కలిగి ఉన్నందున, మేము వనరుకు సాధారణ పేరును ఇస్తాము కాన్ఫిగరేషన్-ఫైల్ ఫైల్‌తో మార్గం తో పరామితిగా నిర్వచించబడిందిమార్గంగుణం.

నిర్ధారించడానికి ఇది ఫైల్ అని నిర్ధారిస్తుంది.

మూలం పైన సృష్టించిన ఫైళ్ళ యొక్క పప్పెట్ మాస్టర్‌లో స్థానాన్ని అందిస్తుంది.

తెరవండిparams.ppఫైల్.

మేము నిర్వచించాము $ కన్ఫిల్ మరియు s కాన్సోర్స్లోపల వేరియబుల్స్ఉంటేప్రకటన:

/etc/puppetlabs/code/en Environmentles / production / modules / apache / manifests / params.pp

if $ :: osfamily == 'RedHat' {... $ conffile = '/etc/httpd/conf/httpd.conf' $ confsource = 'తోలుబొమ్మ: ///modules/apache/httpd.conf'} elsif $: : osfamily == 'డెబియన్' {... $ conffile = '/etc/apache2/apache2.conf' $ confsource = 'తోలుబొమ్మ: ///modules/apache/apache2.conf'} else {...

మేము ప్రారంభంలో పారామితులను జోడించాలిఅపాచీలో క్లాస్ డిక్లరేషన్init.ppమునుపటి ఉదాహరణ మాదిరిగానే ఫైల్.

కాన్ఫిగరేషన్ ఫైల్ మారినప్పుడు, అపాచీ పున art ప్రారంభించాలి. దీన్ని ఆటోమేట్ చేయడానికి, మేము సేవా వనరును ఉపయోగించవచ్చుకలిపి తెలియజేయండి లక్షణం, ఇది కాన్ఫిగరేషన్ ఫైల్ మారినప్పుడల్లా అమలు చేయడానికి వనరును పిలుస్తుంది:

/etc/puppetlabs/code/en Environmentles / production / modules / apache / manifests / init.pp

జావాలో స్కానర్ వాడకం
file {'config-file': path => f conffile, నిర్ధారించండి => ఫైల్, మూలం => $ confsource, notify => సేవ ['apache-service'],} service {'apache-service': name => $ apachename, hasrestart => true,}

సేవ Red Hat మరియు Debian సిస్టమ్‌లలో అపాచీ పేరును నిర్వచించిన ఇప్పటికే సృష్టించిన పరామితిని వనరు ఉపయోగిస్తుంది.
hasrestart నిర్వచించిన సేవ యొక్క పున art ప్రారంభాన్ని ప్రారంభించడానికి లక్షణం ఉపయోగించబడుతుంది.

దశ 3: వర్చువల్ హోస్ట్ ఫైళ్ళను సృష్టించండి

మీ సిస్టమ్ పంపిణీని బట్టి వర్చువల్ హోస్ట్ యొక్క ఫైల్‌లు భిన్నంగా నిర్వహించబడతాయి. ఈ కారణంగా, మేము వర్చువల్ హోస్ట్‌ల కోసం కోడ్‌ను ఒకఉంటేస్టేట్మెంట్, ఉపయోగించిన మాదిరిగానేparams.ppతరగతి కానీ వాస్తవ పప్పెట్ వనరులను కలిగి ఉంది.

  • లోపల నుండిఅపాచీ / వ్యక్తమవుతుంది /డైరెక్టరీ, సృష్టించండి మరియు తెరవండి avhosts.ppఫైల్. యొక్క అస్థిపంజరం జోడించండిఉంటేప్రకటన:

/etc/puppetlabs/code/en Environmentles / production / modules / apache / manifests / vhosts.pp

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

మా CentOS 7 సర్వర్‌లో వర్చువల్ హోస్ట్ ఫైల్ యొక్క స్థానం/etc/httpd/conf.d/vhost.conf . మీరు పప్పెట్ మాస్టర్‌లో ఫైల్‌ను టెంప్లేట్‌గా సృష్టించాలి. వద్ద ఉన్న ఉబుంటు వర్చువల్ హోస్ట్స్ ఫైల్ కోసం అదే చేయండి/etc/apache2/sites-available/example.com.conf, భర్తీexample.comసర్వర్ యొక్క FQDN తో.

  • నావిగేట్ చేయండి టెంప్లేట్లు లోపల ఫైల్ అపాచీ మాడ్యూల్ ఆపై మీ వర్చువల్ హోస్ట్‌ల కోసం రెండు ఫైల్‌లను సృష్టించండి:

Red Hat వ్యవస్థల కోసం:
/etc/puppetlabs/code/en Environmentles / production / modules / apache / templates / vhosts-rh.conf.erb

సర్వర్అడ్మిన్ సర్వర్ పేరు సర్వర్అలియాస్ www. డాక్యుమెంట్ రూట్ / 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

సర్వర్అడ్మిన్ సర్వర్ పేరు సర్వర్అలియాస్ www. డాక్యుమెంట్ రూట్ / 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/en Environmentles / production / modules / apache / manifests / vhosts.pp

class apache :: vhosts {if $ :: osfamily == 'RedHat' {file {'/etc/httpd/conf.d/vhost.conf': నిర్ధారించండి => ఫైల్, కంటెంట్ => టెంప్లేట్ ('అపాచీ / వొస్ట్స్- rh .conf.erb '),}} elsif $ :: osfamily ==' డెబియన్ '{ఫైల్ {' /etc/apache2/sites-available/$servername.conf ': నిర్ధారించండి => ఫైల్, కంటెంట్ => టెంప్లేట్ (' అపాచీ /vhosts-deb.conf.erb '),}} else {fail (' ఇది మద్దతు ఉన్న డిస్ట్రో కాదు. ')}}

రెండు పంపిణీ కుటుంబాలు పిలుస్తాయిఫైల్సంబంధిత పంపిణీలో వర్చువల్ హోస్ట్ యొక్క స్థానం యొక్క శీర్షికను తీసుకోండి. డెబియన్ కోసం, ఇది మరోసారి సూచిస్తుంది$ సర్వర్ పేరువిలువ. దివిషయములక్షణం సంబంధిత టెంప్లేట్‌లను పిలుస్తుంది.

  • రెండు వర్చువల్ హోస్ట్ ఫైల్స్ రెండు డైరెక్టరీలను సూచిస్తాయి. అవి డిఫాల్ట్‌గా సిస్టమ్స్‌లో లేవు. వీటిని ఉపయోగించడం ద్వారా మనం వీటిని సృష్టించవచ్చుఫైల్వనరు, ప్రతి లోపలఉంటేప్రకటన. పూర్తిvhosts.confఫైల్ పోలి ఉండాలి:

/etc/puppetlabs/code/en Environmentles / production / modules / apache / manifests / vhosts.pp

class apache :: vhosts {if $ :: osfamily == 'RedHat' {file {'/etc/httpd/conf.d/vhost.conf': నిర్ధారించండి => ఫైల్, కంటెంట్ => టెంప్లేట్ ('అపాచీ / వొస్ట్స్- rh .conf.erb '),} file {[' / var / www / $ servername ',' / var / www / $ servername / public_html ',' / var / www / $ servername / log ',]: నిర్ధారించండి => డైరెక్టరీ,}} elsif $ :: osfamily == 'డెబియన్' {ఫైల్ {'/etc/apache2/sites-available/$servername.conf': నిర్ధారించండి => ఫైల్, కంటెంట్ => టెంప్లేట్ ('అపాచీ / వోస్ట్స్-డెబ్. conf.erb '),} file {[' / var / www / $ servername ',' / var / www / $ servername / public_html ',' / var / www / $ servername / log ',]: నిర్ధారించండి => డైరెక్టరీ ,}} else {విఫలం ('ఇది మద్దతు ఉన్న డిస్ట్రో కాదు.')}}

దశ 4: మాడ్యూల్‌ను పరీక్షించండి

  • నావిగేట్ చేయండిఅపాచీ / వ్యక్తమవుతుంది /డైరెక్టరీ, రన్ తోలుబొమ్మ పార్సర్ పప్పెట్ కోడింగ్ లోపం లేకుండా ఉందని నిర్ధారించడానికి అన్ని ఫైళ్ళలో:

sudo / opt / puppetlabs / bin / puppet parser init.pp params.pp vhosts.pp

ఇది ఎటువంటి సమస్యలు లేకుండా ఖాళీగా తిరిగి రావాలి.

  • నావిగేట్ చేయండి ఉదాహరణలు లోపల డైరెక్టరీఅపాచీమాడ్యూల్. ఒక సృష్టించండిinit.ppసృష్టించిన తరగతులను ఫైల్ చేయండి మరియు చేర్చండి. కోసం విలువలను భర్తీ చేయండి$ సర్వర్ పేరుమరియు$ అడ్మినిమెయిల్మీ స్వంతంగా:

/etc/puppetlabs/code/en Environmentles / production / modules / apache / example / init.pp

serveremail = 'webmaster@example.com' $ servername = 'puppet.example.com' లో అపాచీ ఉన్నాయి అపాచీ :: vhosts
  • అమలు చేయడం ద్వారా మాడ్యూల్‌ను పరీక్షించండి తోలుబొమ్మ వర్తించు తో –నాప్ ట్యాగ్:
    sudo / opt / puppetlabs / bin / puppet apply --noop init.pp

ఇది సంఘటనల నుండి రిఫ్రెష్లను ప్రేరేపించే లోపాలు మరియు అవుట్పుట్ను తిరిగి ఇవ్వకూడదు. పప్పెట్ మాస్టర్‌లో అపాచీని ఇన్‌స్టాల్ చేసి, కాన్ఫిగర్ చేయడానికి, లేకుండా మళ్లీ అమలు చేయండి–నాప్, కావాలనుకుంటే.

  • ప్రధాన పప్పెట్ డైరెక్టరీకి తిరిగి నావిగేట్ చేయండి మరియు తరువాతవ్యక్తమవుతుందిఫోల్డర్ (కాదుఅపాచీ మాడ్యూల్‌లో ఉన్నది).

cd / etc / puppetlabs / కోడ్ / ఎన్విరాన్మెంట్స్ / ప్రొడక్షన్ / మానిఫెస్ట్

సృష్టించండి asite.ppఫైల్,మరియు ప్రతి ఏజెంట్ నోడ్ కోసం అపాచీ మాడ్యూల్‌ను చేర్చండి. కోసం వేరియబుల్స్ ఇన్పుట్ చేయండిఅడ్మిన్ మెయిల్ మరియు సర్వర్ పేరుపారామితులు. మీsite.ppకింది వాటిని పోలి ఉండాలి:

/etc/puppetlabs/code/en Environmentles / production / manifests / site.pp

నోడ్ 'puppet-agent-ubuntu.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'puppet.example.com' లో అపాచీ ఉన్నాయి: అపాచీ :: వోస్ట్స్} నోడ్ 'తోలుబొమ్మ-ఏజెంట్-సెంటోస్ .com '{$ adminemail =' webmaster@example.com '$ servername =' puppet.example.com 'లో అపాచీ ఉన్నాయి అపాచీ :: vhosts}

అప్రమేయంగా, మీ నిర్వహించే నోడ్‌లలోని పప్పెట్ ఏజెంట్ సేవ ప్రతి 30 నిమిషాలకు ఒకసారి మాస్టర్‌తో స్వయంచాలకంగా తనిఖీ చేస్తుంది మరియు మాస్టర్ నుండి ఏదైనా కొత్త కాన్ఫిగరేషన్‌లను వర్తింపజేస్తుంది. ఆటోమేటిక్ ఏజెంట్ పరుగుల మధ్య మీరు పప్పెట్ ఏజెంట్ ప్రాసెస్‌ను మాన్యువల్‌గా ప్రారంభించవచ్చు. మీ ఏజెంట్ నోడ్‌లలో క్రొత్త మాడ్యూల్‌ను మాన్యువల్‌గా అమలు చేయడానికి, నోడ్‌లకు లాగిన్ అవ్వండి మరియు అమలు చేయండి:

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

మొదటి నుండి మాడ్యూల్‌ను ఎలా సృష్టించాలో ఇప్పుడు మేము నేర్చుకున్నాము, తోలుబొమ్మల యొక్క తోలుబొమ్మ ఫోర్జ్ నుండి ముందుగా ఉన్న మాడ్యూల్‌ను ఎలా ఉపయోగించాలో నేర్చుకుందాం.

పప్పెట్‌ఫోర్జ్ నుండి మాడ్యూల్ ఉపయోగించండి

పప్పెట్ ఫోర్జ్ సర్వర్ అమలు చేయడానికి ఇప్పటికే చాలా గుణకాలు ఉన్నాయి. మీరు సృష్టించిన మాడ్యూల్ వలె మేము వీటిని విస్తృతంగా కాన్ఫిగర్ చేయవచ్చు మరియు మేము మొదటి నుండి మాడ్యూల్‌ను సృష్టించనవసరం లేదు కాబట్టి సమయాన్ని ఆదా చేయవచ్చు.

మీరు ఉన్నారని నిర్ధారించుకోండి / etc / puppetlabs / కోడ్ / ఎన్విరాన్మెంట్స్ / ప్రొడక్షన్ / మాడ్యూల్స్ డైరెక్టరీ మరియు ఇన్స్టాల్ పప్పెట్ ఫోర్జ్ యొక్క MySQL మాడ్యూల్ పప్పెట్ లాబ్స్ చేత. ఇది ఏదైనా ముందస్తు మాడ్యూళ్ళను కూడా ఇన్‌స్టాల్ చేస్తుంది.

cd / etc / puppetlabs / కోడ్ / ఎన్విరాన్మెంట్స్ / ప్రొడక్షన్ / మాడ్యూల్స్

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

డేటాబేస్లను సృష్టించడానికి హీరాను ఉపయోగించండి

మీరు MySQL మాడ్యూల్ కోసం కాన్ఫిగరేషన్ ఫైళ్ళను సృష్టించే ముందు, మీరు అన్ని ఏజెంట్ నోడ్లలో ఒకే విలువలను ఉపయోగించకూడదని భావించండి. నోడ్‌కు సరైన డేటాతో పప్పెట్‌ను సరఫరా చేయడానికి, మేము హీరాను ఉపయోగిస్తాము. మీరు నోడ్‌కు వేరే రూట్ పాస్‌వర్డ్‌ను ఉపయోగిస్తారు, తద్వారా వేర్వేరు MySQL డేటాబేస్‌లను సృష్టిస్తుంది.

  • నావిగేట్ చేయండి/ etc / తోలుబొమ్మమరియు హీరా యొక్క కాన్ఫిగరేషన్ ఫైల్‌ను సృష్టించండిhiera.yamlప్రధానంగాతోలుబొమ్మడైరెక్టరీ. మీరు హిరా యొక్క డిఫాల్ట్ విలువలను ఉపయోగిస్తారు:

/etc/puppetlabs/code/en Environmentles / production / hiera.yaml

--- వెర్షన్: 5 సోపానక్రమం: - పేరు: సాధారణ మార్గం: common.yaml డిఫాల్ట్‌లు: data_hash: yaml_data datadir: data
  • ఫైల్ను సృష్టించండిcommon.yaml. ఇది డిఫాల్ట్‌ను నిర్వచిస్తుంది రూట్ MySQL కోసం పాస్‌వర్డ్:

/etc/puppetlabs/code/en Environmentles / production / com.yaml

mysql :: server :: root_password: 'password'

మేము ఉపయోగిస్తాముcommon.yamlఫైల్వేరియబుల్ మరెక్కడా నిర్వచించబడనప్పుడు. అంటే అన్ని సర్వర్‌లు ఒకే MySQL రూట్ పాస్‌వర్డ్‌ను పంచుకుంటాయి. భద్రతను పెంచడానికి ఈ పాస్‌వర్డ్‌లను కూడా హాష్ చేయవచ్చు.

  • MySQL మాడ్యూల్ డిఫాల్ట్‌లను ఉపయోగించడానికి మీరు ఒకదాన్ని జోడించవచ్చు ‘:: mysql :: server’ చేర్చండి లైన్site.ppఫైల్. అయితే, ఈ ఉదాహరణలో, మీ ప్రతి నోడ్‌కు డేటాబేస్ సృష్టించడానికి మీరు మాడ్యూల్ యొక్క కొన్ని డిఫాల్ట్‌లను భర్తీ చేస్తారు.

సవరించండిsite.ppకింది విలువలతో ఫైల్:

node 'Puppetagent-ubuntu.example.com' $ $ adminemail = 'webmaster@example.com' $ servername = 'hostname.example.com' అపాచీని చేర్చండి అపాచీ :: వోస్ట్స్‌లో mysql :: server mysql :: db my 'mydb_ $ {fqdn} ': user =>' myuser ', password =>' mypass ', dbname =>' mydb ', host => $ :: fqdn, grant => [' SELECT ',' UPDATE '], tag = > $ డొమైన్,}} నోడ్ 'పప్పెటాజెంట్- సెంటొస్.ఎక్సాంపుల్.కామ్' {$ అడ్మినిమెయిల్ = 'వెబ్‌మాస్టర్@ఎక్సాంపుల్.కామ్' $ సర్వర్‌నేమ్ = 'హోస్ట్‌నేమ్.ఎక్సాంపుల్.కామ్' అపాచీని చేర్చండి :: db {'mydb _ $ q fqdn}': వినియోగదారు => 'myuser', password => 'mypass', dbname => 'mydb', host => $ :: fqdn, grant => ['SELECT', ' UPDATE '], ట్యాగ్ => $ డొమైన్,}}

తోలుబొమ్మ మాస్టర్ నుండి తోలుబొమ్మ ఏజెంట్ వరకు పప్పెట్ మాడ్యూల్స్ యొక్క సంస్థాపనను ఆటోమేట్ చేస్తుంది

  • ప్రతి నోడ్‌లోకి SSHing మరియు కింది ఆదేశాన్ని జారీ చేయడం ద్వారా మీరు ఈ నవీకరణలను ప్రతి నోడ్‌లో మానవీయంగా అమలు చేయవచ్చు:

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

జావాలో అంకెలు మొత్తం
  • లేకపోతే, మీ నిర్వహించే నోడ్‌లలోని పప్పెట్ ఏజెంట్ సేవ ప్రతి 30 నిమిషాలకు ఒకసారి మాస్టర్‌తో స్వయంచాలకంగా తనిఖీ చేస్తుంది మరియు మాస్టర్ నుండి ఏదైనా కొత్త కాన్ఫిగరేషన్‌లను వర్తింపజేస్తుంది.

కాటలాగ్ ఉబుంటు ఏజెంట్‌లో విజయవంతంగా వర్తింపజేయబడింది

సెంటొస్ ఏజెంట్‌లో కాటలాగ్ విజయవంతంగా వర్తింపజేయబడింది

అందువలన, మొత్తం సంస్థాపన పొందుతుంది ఆటోమేటెడ్ కేటలాగ్‌ను వర్తింపజేయడం ద్వారా ఏజెంట్ నోడ్‌లపై.ఈ డెమో కోసం ఉపయోగించే కోడ్ ఫైల్స్ మరియు డిపెండెన్సీలను కనుగొనవచ్చు ఇక్కడ .

తోలుబొమ్మ గుణకాలు మరియు మానిఫెస్ట్ గురించి మరియు ఐటి మౌలిక సదుపాయాలను ఆటోమేట్ చేయడానికి వాటి ఉపయోగం గురించి స్పష్టమైన ఆలోచన పొందడానికి ఈ డెమో మీకు సహాయపడిందని నేను ఆశిస్తున్నాను.ఈ సందర్భంలో, మీ పని చాలా సులభం అవుతుంది, పప్పెట్ మాస్టర్ మరియు పప్పెట్ ఏజెంట్లలోని కాన్ఫిగరేషన్లను స్వయంచాలకంగా ప్రధాన మానిఫెస్ట్ను అంచనా వేస్తుంది మరియు అపాచీ మరియు MySQL సెటప్‌ను పేర్కొనే మాడ్యూల్‌ను వర్తింపజేస్తుంది. మీరు ఏవైనా ప్రశ్నలతో చిక్కుకుంటే, దయచేసి వాటిని పోస్ట్ చేయడానికి సంకోచించకండి .

మీరు దీన్ని కనుగొంటే పప్పెట్ ట్యుటోరియల్ సంబంధిత, చూడండి ప్రపంచవ్యాప్తంగా 250,000 కంటే ఎక్కువ సంతృప్తికరమైన అభ్యాసకుల నెట్‌వర్క్‌తో విశ్వసనీయ ఆన్‌లైన్ లెర్నింగ్ సంస్థ ఎడురేకా చేత. ఎడ్యురేకా డెవొప్స్ సర్టిఫికేషన్ ట్రైనింగ్ కోర్సు ఎస్డిఎల్‌సిలో బహుళ దశలను ఆటోమేట్ చేయడానికి వివిధ డెవొప్స్ ప్రాసెస్‌లు మరియు పప్పెట్, జెంకిన్స్, నాగియోస్ మరియు జిఐటి వంటి సాధనాలలో నైపుణ్యాన్ని పొందడానికి అభ్యాసకులకు సహాయపడుతుంది.