అన్సిబుల్ ఇన్వెంటరీ ఫైల్లు మీరు యాన్సిబుల్తో కాన్ఫిగర్ చేయడానికి లేదా నిర్వహించడానికి కావలసిన హోస్ట్ల జాబితాను నిర్వహిస్తాయి. మీరు ఈ హోస్ట్లను సమూహపరచవచ్చు మరియు వాటిని సమూహాల ద్వారా కూడా నిర్వహించవచ్చు. మీరు ప్రతి హోస్ట్ కోసం లేదా హోస్ట్ల సమూహం కోసం వేర్వేరు వేరియబుల్స్ను కూడా పాస్ చేయవచ్చు.
ఈ వ్యాసంలో, ఆన్సిబుల్ ప్లేబుక్లు, వేరియబుల్స్, ఇన్వెంటరీ ఫైల్స్ మరియు ఆచరణాత్మక ఉదాహరణలతో కొన్ని సాధారణ అన్సబుల్ మాడ్యూల్లతో ఎలా పని చేయాలో నేను మీకు చూపుతాను. కాబట్టి, మనం ప్రారంభిద్దాం!
ముందస్తు అవసరాలు
మీరు ఈ వ్యాసంలోని ఉదాహరణలను ప్రయత్నించాలనుకుంటే,
1) మీరు తప్పనిసరిగా మీ కంప్యూటర్లో Ansible ని ఇన్స్టాల్ చేసి ఉండాలి.
2) మీరు తప్పనిసరిగా కనీసం ఉబుంటు/డెబియన్ హోస్ట్ మరియు సెంటొస్/RHEL 8 హోస్ట్ను యాన్సిబుల్ ఆటోమేషన్ కోసం కాన్ఫిగర్ చేయాలి.
అన్సిబుల్ ఆటోమేషన్ కోసం యాన్సిబుల్ మరియు కాన్ఫిగర్ హోస్ట్లను ఇన్స్టాల్ చేయడానికి అంకితమైన లైనక్స్హింట్లో అనేక కథనాలు ఉన్నాయి. మరింత సమాచారం కోసం అవసరమైతే మీరు ఈ కథనాలను తనిఖీ చేయవచ్చు.
ప్రాజెక్ట్ డైరెక్టరీని సృష్టించడం
ముందుగా, ప్రాజెక్ట్ డైరెక్టరీని సృష్టించండి ~/ప్రాజెక్ట్/ కింది ఆదేశంతో:
$mkdir -పివిఐ/ప్రాజెక్ట్/ప్లేబుక్స్కు నావిగేట్ చేయండి ~/ప్రాజెక్ట్/ డైరెక్టరీ క్రింది విధంగా ఉంది:
$CDఐ/ప్రాజెక్ట్ప్రాథమిక జాబితా ఫైల్:
అన్సిబుల్ ఇన్వెంటరీ ఫైల్ను సృష్టించండి ఆతిథ్యమిస్తుంది కింది ఆదేశంతో ప్రాజెక్ట్ డైరెక్టరీలో:
$నానోఆతిథ్యమిస్తుందిAnsible లో మీరు కాన్ఫిగర్/ఆటోమేట్ చేయాలనుకుంటున్న హోస్ట్ల IP చిరునామాలను మీరు టైప్ చేయవచ్చు ఆతిథ్యమిస్తుంది జాబితా ఫైల్.
192.168.20.167192.168.20.168
192.168.20.169
192.168.20.170
మీరు ఈ దశను పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
మీరు ఇన్వెంటరీ ఫైల్లో IP చిరునామాలకు బదులుగా DNS పేర్లను ఉపయోగించాలనుకుంటే, మీరు దీన్ని కూడా చేయవచ్చు.
మీకు పని చేసే DNS సర్వర్ లేకపోతే, మీరు దీనిని ఉపయోగించవచ్చు /etc/హోస్ట్లు స్థానిక DNS రిజల్యూషన్ కోసం మీ కంప్యూటర్లో ఫైల్ చేయండి.
స్థానిక DNS రిజల్యూషన్ కోసం, తెరవండి /etc/హోస్ట్లు టెక్స్ట్ ఎడిటర్తో ఫైల్ ( నానో , నా విషయంలో) కింది విధంగా:
$సుడో నానో /మొదలైనవి/ఆతిథ్యమిస్తుందిIP చిరునామాలను మరియు మీకు కావలసిన DNS పేర్లను ఈ క్రింది విధంగా టైప్ చేయండి:
192.168.20.167 vm1.nodekite.com192.168.20.168 vm2.nodekite.com
192.168.20.169 vm3.nodekite.com
192.168.20.170 vm4.nodekite.com
మీరు ఈ దశను పూర్తి చేసిన తర్వాత, నొక్కండి + X తరువాత మరియు మరియు .
అన్సిబుల్ ఇన్వెంటరీ ఫైల్ని తెరవండి ఆతిథ్యమిస్తుంది కింది విధంగా:
$నానోఆతిథ్యమిస్తుందిమీరు ఇప్పుడు ఆకృతీకరించాలనుకుంటున్న హోస్ట్ల DNS పేర్లను టైప్ చేయవచ్చు ఆతిథ్యమిస్తుంది జాబితా ఫైల్.
vm1.nodekite.comvm2.nodekite.com
vm3.nodekite.com
vm4.nodekite.com
మీరు పూర్తి చేసిన తర్వాత, హోస్ట్ల జాబితా ఫైల్ను నొక్కడం ద్వారా సేవ్ చేయండి + X తరువాత మరియు మరియు .
అన్ని హోస్ట్లకు కనెక్టివిటీని పరీక్షిస్తోంది
ఇప్పుడు, మీరు ఇన్వెంటరీ ఫైల్లోని అన్ని హోస్ట్లను క్రింది విధంగా పింగ్ చేయడానికి ప్రయత్నించవచ్చు:
$జవాబుదారీ-ఐఅన్నింటికీ హోస్ట్ చేస్తుంది-ఉజవాబుదారీ-m పింగ్మీరు గమనిస్తే, ఇన్వెంటరీ ఫైల్లోని అన్ని హోస్ట్లు అందుబాటులో ఉంటాయి. కాబట్టి, ఈ వ్యాసం యొక్క తదుపరి విభాగానికి వెళ్లడానికి మేము సిద్ధంగా ఉన్నాము.
మీ మొదటి అన్సిబుల్ ప్లేబుక్
మాకు సరళమైన అన్సిబుల్ ప్లేబుక్ను సృష్టిద్దాం ping_all_hosts.yaml లో ప్లేబుక్స్/ డైరెక్టరీ. ఈ చర్య అన్ని హోస్ట్లను పింగ్ చేస్తుంది ఆతిథ్యమిస్తుంది మునుపటిలాగా ఇన్వెంటరీ ఫైల్.
$నానోప్లేబుక్స్/ping_all_hosts.yamlకింది పంక్తులను టైప్ చేయండి ping_all_hosts.yaml ఆమోదయోగ్యమైన ప్లేబుక్ ఫైల్:
- హోస్ట్లు: అన్నీవినియోగదారు: జవాబుదారీ
పనులు:
- పేరు: అన్ని హోస్ట్లను పింగ్ చేయండి
పింగ్:
ఇక్కడ,
హోస్ట్లు: అన్నీ - జాబితా ఫైల్ నుండి అన్ని హోస్ట్లను ఎంచుకుంటుంది ఆతిథ్యమిస్తుంది .
వినియోగదారు: జవాబుదారీ - ఇన్వెంటరీ ఫైల్లోని హోస్ట్లలోకి SSH కి Ansible కు చెబుతుంది జవాబుదారీ వినియోగదారు
పనులు - హోస్ట్లలో అన్సిబుల్ అమలు చేసే అన్ని పనులు ఇక్కడ జాబితా చేయబడ్డాయి. ప్రతి పనిలో సాధారణంగా ఒక ఉంటుంది పేరు మరియు ఒకటి లేదా అంతకంటే ఎక్కువ మాడ్యూల్ నిర్దిష్ట ఎంపికలు.
ప్లేబుక్ ping_all_hosts.yaml ఇన్వెంటరీ ఫైల్లో అన్ని హోస్ట్లను పింగ్ చేయడం ద్వారా ఒకే ఒక్క పని ఉంది ఆతిథ్యమిస్తుంది . టాస్క్ పేరు అన్ని హోస్ట్లను పింగ్ చేయండి మరియు అది ఉపయోగిస్తుంది పింగ్ మాడ్యూల్.
ది పింగ్ మాడ్యూల్కు ఇతర ఎంపికలు అవసరం లేదు. కాబట్టి, నేను దానిని ఖాళీగా ఉంచాను (పెద్దప్రేగు తర్వాత ఏమీ లేదు, : )
మీరు ఈ దశను పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
మీరు అమలు చేయవచ్చు ping_all_hosts.yaml కింది విధంగా ఆమోదయోగ్యమైన ప్లేబుక్:
$అన్సిబుల్-ప్లేబుక్-ఐప్లేబుక్లను హోస్ట్ చేస్తుంది/ping_all_hosts.yamlమీరు గమనిస్తే, ఇన్వెంటరీ ఫైల్లోని అన్ని హోస్ట్లలో పింగ్ టాస్క్ విజయవంతమైంది.
సాధారణ అన్సిబుల్ కాన్ఫిగరేషన్ ఫైల్
మునుపటి ఉదాహరణలో, మీరు దీనిని ఉపయోగించాల్సి వచ్చింది -ఐ ఏ ఇన్వెంటరీ ఫైల్ని ఉపయోగించాలో అనిసిబుల్కి చెప్పే ఎంపిక. నా విషయంలో, ఇది ఆతిథ్యమిస్తుంది జాబితా ఫైల్.
$అన్సిబుల్-ప్లేబుక్-ఐప్లేబుక్లను హోస్ట్ చేస్తుంది/ping_all_hosts.yamlఒకవేళ మీరు ఒక ఇన్వెంటరీ ఫైల్ని పాస్ చేయకూడదనుకుంటే -ఐ మీరు అన్సిబుల్ ప్లేబుక్ను అమలు చేస్తున్న ప్రతిసారీ ఎంపిక, మీరు చేయాల్సిందల్లా మీ ప్రాజెక్ట్ కోసం డిఫాల్ట్ ఇన్వెంటరీ ఫైల్ను సెట్ చేయడం.
అలా చేయడానికి, కొత్త అన్సిబుల్ కాన్ఫిగరేషన్ ఫైల్ను సృష్టించండి ansible.cfg మీ ప్రాజెక్ట్ రూట్లో కింది విధంగా:
$నానోansible.cfgకింది పంక్తులను టైప్ చేయండి ansible.cfg ఫైల్:
[డిఫాల్ట్లు]జాబితా =./ఆతిథ్యమిస్తుంది
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
మీరు ఈ క్రింది విధంగా అదే అన్సిబుల్ ప్లేబుక్ను అమలు చేయవచ్చు:
$ఆమోదయోగ్యమైన-ప్లేబుక్ ప్లేబుక్లు/ping_all_hosts.yamlమీరు గమనిస్తే, ప్లేబుక్ దీనిని ఉపయోగిస్తోంది ఆతిథ్యమిస్తుంది డిఫాల్ట్గా జాబితా ఫైల్. మీరు ఇప్పటికీ దీనిని ఉపయోగించవచ్చు -ఐ మీకు కావాలంటే వేరే ఇన్వెంటరీ ఫైల్ని పేర్కొనే అవకాశం. అన్సిబుల్ చాలా సరళమైనది.
ఇన్వెంటరీ ఫైల్లో హోస్ట్లను సమూహపరచడం
ఇప్పటివరకు, ఇన్వెంటరీ ఫైల్లోని అన్ని హోస్ట్లలో టాస్క్లు (ప్లేబుక్) ఎలా అమలు చేయాలో నేను మీకు చూపించాను. అయితే మీరు కొన్ని హోస్ట్లలో ఒక సెట్ టాస్క్లు మరియు ఇతర హోస్ట్లలో మరో టాస్క్లను అమలు చేయాలనుకుంటే? మీరు ఇన్వెంటరీ ఫైల్లో హోస్ట్లను గ్రూప్ చేయవచ్చు మరియు హోస్ట్ గ్రూపులలో విభిన్న టాస్క్లను అమలు చేయవచ్చు.
ఈ విభాగంలో, ఇన్వెంటరీ ఫైల్లో హోస్ట్లను ఎలా గ్రూప్ చేయాలో మరియు హోస్ట్ గ్రూపులతో ఎలా పని చేయాలో నేను మీకు చూపుతాను.
ముందుగా, ఇన్వెంటరీ ఫైల్ని తెరవండి ఆతిథ్యమిస్తుంది కింది విధంగా:
$నానోఆతిథ్యమిస్తుందికింది పంక్తులను టైప్ చేయండి ఆతిథ్యమిస్తుంది జాబితా ఫైల్:
[డెబియన్ 10]vm1.nodekite.com
vm2.nodekite.com
[సెంటోస్ 8]
vm3.nodekite.com
vm4.nodekite.com
ఇక్కడ, నేను రెండు హోస్ట్ గ్రూపులను సృష్టించాను: డెబియన్ 10 మరియు సెంటోస్ 8 .
లో డెబియన్ 10 సమూహం, నాకు ఇద్దరు హోస్ట్లు ఉన్నారు: vm1.nodekite.com మరియు vm2.nodekite.com
లో సెంటోస్ 8 సమూహం, నాకు ఇద్దరు హోస్ట్లు ఉన్నారు: vm3.nodekite.com మరియు vm4.nodekite.com
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
మేము ఇప్పుడు కొత్త ప్లేబుక్ను సృష్టిస్తాము ping_debian10_hosts.yaml , ఇది పింగ్ హోస్ట్లను మునుపటిలా చేస్తుంది, కానీ హోస్ట్లు మాత్రమే డెబియన్ 10 హోస్ట్ సమూహం.
ప్లేబుక్ సృష్టించండి ping_debian10_hosts.yaml లో ప్లేబుక్స్/ డైరెక్టరీ క్రింది విధంగా ఉంది:
$నానోప్లేబుక్స్/ping_debian10_hosts.yamlకింది పంక్తులను టైప్ చేయండి ping_debian10_hosts.yaml ఆమోదయోగ్యమైన ప్లేబుక్:
- హోస్ట్లు: డెబియన్ 10వినియోగదారు: జవాబుదారీ
పనులు:
- పేరు: పింగ్ ఆల్ డెబియన్10ఆతిథ్యమిస్తుంది
పింగ్:
బదులుగా హోస్ట్లు: అన్నీ , నేను జోడించాను హోస్ట్లు: డెబియన్ 10 ఇక్కడ. డెబియన్ 10 హోస్ట్ గ్రూప్. ఈ ప్లేబుక్ హోస్ట్లలో మాత్రమే నడుస్తుంది డెబియన్ 10 హోస్ట్ సమూహం.
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
ప్లేబుక్ను ఈ విధంగా అమలు చేయండి:
$ఆమోదయోగ్యమైన-ప్లేబుక్ ప్లేబుక్లు/ping_debian10_hosts.yamlమీరు గమనిస్తే, హోస్ట్లు మాత్రమే డెబియన్ 10 హోస్ట్ గ్రూప్ పింగ్ చేయబడింది.
అదే పద్ధతిని ఉపయోగించి, మరొక ప్లేబుక్ను సృష్టించండి ping_centos8_hosts.yaml కింది విధంగా:
$నానోప్లేబుక్స్/ping_centos8_hosts.yamlకింది పంక్తులను టైప్ చేయండి ping_centos8_hosts.yaml ఆమోదయోగ్యమైన ప్లేబుక్:
- హోస్ట్లు: centos8వినియోగదారు: జవాబుదారీ
పనులు:
- పేరు: పింగ్ ఆల్ సెంటోస్8ఆతిథ్యమిస్తుంది
పింగ్:
అదే విధంగా, నేను జోడించాను హోస్ట్లు: centos8 ఇక్కడ. సెంటోస్ 8 హోస్ట్ గ్రూప్. ఈ ప్లేబుక్ హోస్ట్లలో మాత్రమే నడుస్తుంది సెంటోస్ 8 హోస్ట్ సమూహం.
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
ప్లేబుక్ను ఈ విధంగా అమలు చేయండి:
$ఆమోదయోగ్యమైన-ప్లేబుక్ ప్లేబుక్లు/ping_centos8_hosts.yamlమీరు గమనిస్తే, హోస్ట్లు మాత్రమే సెంటోస్ 8 హోస్ట్ గ్రూప్ పింగ్ చేయబడింది.
అనుగుణమైన వేరియబుల్ రకాలు
అన్సిబుల్లో వివిధ రకాల వేరియబుల్స్ ఉన్నాయి. ప్రధాన వేరియబుల్ రకాలు అదృశ్య వాస్తవాలు వేరియబుల్స్ మరియు వినియోగదారు నిర్వచించిన వేరియబుల్స్ .
అదృశ్య వాస్తవాల వేరియబుల్స్: యాన్సిబుల్ పని చేస్తున్న హోస్ట్ని బట్టి, అన్సిబుల్ అన్సిబుల్ ఫ్యాక్ట్స్ వేరియబుల్స్ను రూపొందిస్తుంది. విశ్వసనీయ వాస్తవాల వేరియబుల్స్ IP చిరునామాలు, హోస్ట్ పేరు, డొమైన్ పేరు, తేదీ, సమయం, షెల్ ఎన్విరాన్మెంట్ వేరియబుల్స్ మరియు మరిన్ని వంటి హోస్ట్ గురించిన సమాచారాన్ని కలిగి ఉంటాయి.
వినియోగదారు నిర్వచించిన వేరియబుల్స్: ఇవి వినియోగదారు నిర్వచించిన అనుకూల వేరియబుల్స్. మీరు వినియోగదారు నిర్వచించిన వేరియబుల్స్ను కమాండ్ లైన్ నుండి లేదా ఇన్వెంటరీ ఫైల్ని ఉపయోగించి పాస్ చేయవచ్చు.
ప్రధానంగా యూజర్ నిర్వచించిన వేరియబుల్స్ రెండు రకాలు: సమూహ వేరియబుల్స్ మరియు హోస్ట్ వేరియబుల్స్ .
అన్సిబుల్ వేరియబుల్ ప్రాధాన్యత
అన్సిబుల్ యొక్క వేరియబుల్ ప్రాధాన్యత : కమాండ్ లైన్ వేరియబుల్స్ > హోస్ట్ వేరియబుల్స్ > గ్రూప్ వేరియబుల్స్
మీరు హోస్ట్ వేరియబుల్ మరియు గ్రూప్ వేరియబుల్ వలె అదే వేరియబుల్ సెట్ చేస్తే, హోస్ట్ వేరియబుల్ వర్తించబడుతుంది.
అదేవిధంగా, ప్లేబుక్ నడుపుతున్నప్పుడు మీరు కమాండ్ లైన్ నుండి సెట్ చేసిన వేరియబుల్స్ హోస్ట్ మరియు గ్రూప్ వేరియబుల్స్ రెండింటినీ భర్తీ చేస్తాయి.
అన్సిబుల్ ఫ్యాక్ట్స్ వేరియబుల్స్తో పని చేస్తోంది
ఈ విభాగంలో, అన్సిబుల్ ఫ్యాక్ట్స్ వేరియబుల్స్తో ఎలా పని చేయాలో నేను మీకు చూపుతాను. కాబట్టి, మనం ప్రారంభిద్దాం!
మీలోని హోస్ట్ల యొక్క అన్ని వాస్తవ వాస్తవాల వేరియబుల్ను మీరు జాబితా చేయవచ్చు ఆతిథ్యమిస్తుంది జాబితా ఫైల్ క్రింది విధంగా ఉంది:
$అన్నింటికీ ఆమోదయోగ్యమైనది-ఉజవాబుదారీ-mఏర్పాటుమీరు గమనిస్తే, అన్ని అన్సిబుల్ ఫ్యాక్ట్స్ వేరియబుల్స్ JSON ఫార్మాట్లో జాబితా చేయబడ్డాయి. ఇది చాలా పెద్ద జాబితా.
జాబితా చాలా పొడవుగా ఉన్నందున, మీరు దీన్ని పేజర్ ప్రోగ్రామ్తో తెరవవచ్చు తక్కువ కింది విధంగా:
$అన్నింటికీ ఆమోదయోగ్యమైనది-ఉజవాబుదారీ-mఏర్పాటు| తక్కువఇప్పుడు, మీరు అవుట్పుట్ను అవసరమైన విధంగా పైకి, క్రిందికి, ఎడమవైపు మరియు కుడివైపుకి స్క్రోల్ చేయవచ్చు.
మీరు పేజర్ నుండి వేరియబుల్ పేర్ల కోసం కూడా శోధించవచ్చు. దీన్ని చేయడానికి, నొక్కండి / మీ కీబోర్డ్ మీద కీ. అప్పుడు, సెర్చ్ స్ట్రింగ్ టైప్ చేయండి ( హోస్ట్ పేరు నా విషయంలో) మరియు నొక్కండి .
మీరు చూడగలిగినట్లుగా, సెర్చ్ స్ట్రింగ్తో సరిపోయే అన్సిబుల్ ఫ్యాక్ట్స్ వేరియబుల్ అన్సిబుల్_హోస్ట్ పేరు . మీరు నొక్కవచ్చు ఎన్ తదుపరి మ్యాచ్కు వెళ్లడానికి మరియు పి పేజర్ నుండి మునుపటి మ్యాచ్కు వెళ్లడానికి. మీ అన్సిబుల్ ప్రాజెక్ట్ కోసం మీకు అవసరమైన అన్సిబుల్ ఫ్యాక్ట్స్ వేరియబుల్ను మీరు ఈ విధంగా కనుగొంటారు.
అన్సిబుల్ ఫ్యాక్ట్స్ వేరియబుల్స్ను ఎలా యాక్సెస్ చేయాలో ఇప్పుడు చూద్దాం.
కొత్త ప్లేబుక్ను సృష్టించండి print_ variable1.yaml కింది విధంగా:
$నానోప్లేబుక్స్/print_ variable1.yamlకింది పంక్తులను టైప్ చేయండి print_ variable1.yaml ఫైల్:
- హోస్ట్లు: అన్నీవినియోగదారు: జవాబుదారీ
పనులు:
- పేరు: ప్రింట్హోస్ట్ పేరుఅన్ని అతిధేయల
డీబగ్:
సందేశం:'{{ansible_hostname}}'
ఇక్కడ, నేను ఒక పనిని జోడించాను అన్ని హోస్ట్ల హోస్ట్ పేరును ముద్రించండి . ఈ పని అన్సిబుల్ని ఉపయోగిస్తుంది డీబగ్ ప్లేబుక్ నడుస్తున్నప్పుడు సందేశాన్ని ముద్రించడానికి మాడ్యూల్.
సందేశం యొక్క మాత్రమే అవసరమైన పరామితి డీబగ్ మాడ్యూల్. ది సందేశం పరామితి కోట్లలో స్ట్రింగ్ను అంగీకరిస్తుంది, ఇది కన్సోల్లో ముద్రించబడే సందేశం.
ఇక్కడ, {{variable_name}} వేరియబుల్ను యాక్సెస్ చేయడానికి ఫార్మాట్ ఉపయోగించబడుతుంది. ఈ విషయంలో, {{ansible_hostname}} ముద్రించడానికి ఉపయోగిస్తారు అన్సిబుల్_హోస్ట్ పేరు జాబితా ఫైల్లోని ప్రతి హోస్ట్ యొక్క వేరియబుల్.
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
మీరు అన్సిబుల్ ఫ్యాక్ట్స్ వేరియబుల్ని కూడా యాక్సెస్ చేయవచ్చు అన్సిబుల్_ఫ్యాక్ట్స్ [వేరియబుల్_పేరు] . కాబట్టి, ది అన్సిబుల్_హోస్ట్ పేరు వేరియబుల్ అవుతుంది అన్సిబుల్_ఫ్యాక్ట్స్ [హోస్ట్ పేరు] .
మేము దానిని తిరిగి వ్రాయవచ్చు print_ variable1.yaml ఇలాంటి ప్లేబుక్ కూడా. మేము అదే అవుట్పుట్ పొందుతాము.
- హోస్ట్లు: అన్నీవినియోగదారు: జవాబుదారీ
పనులు:
- పేరు: ప్రింట్హోస్ట్ పేరుఅన్ని అతిధేయల
డీబగ్:
సందేశం:'{{ansible_facts [' variable_name ']}}'
ప్లేబుక్ను అమలు చేయండి print_ variable1.yaml కింది విధంగా:
$ఆమోదయోగ్యమైన-ప్లేబుక్ ప్లేబుక్లు/print_ variable1.yamlమీరు గమనిస్తే, ఇన్వెంటరీ ఫైల్లోని ప్రతి హోస్ట్ హోస్ట్ పేరు కన్సోల్లో ముద్రించబడుతుంది.
హోస్ట్ పేరుతో పాటు ప్రతి హోస్ట్ యొక్క డిఫాల్ట్ IPv4 చిరునామాను ఇప్పుడు ప్రింట్ చేద్దాం. మీరు చూడగలిగినట్లుగా, హోస్ట్ యొక్క డిఫాల్ట్ IPv4 చిరునామాను ఉపయోగించి యాక్సెస్ చేయవచ్చు చిరునామా యొక్క ఆస్తి ansible_default_ipv4 వస్తువు
కొత్త ప్లేబుక్ను సృష్టించండి print_ variable2.yaml కింది విధంగా:
$నానోప్లేబుక్స్/print_ variable2.yamlకింది పంక్తులను టైప్ చేయండి print_ variable2.yaml ఫైల్:
- హోస్ట్లు: అన్నీవినియోగదారు: జవాబుదారీ
పనులు:
- పేరు: ప్రింట్హోస్ట్ పేరుఅన్ని అతిధేయల
డీబగ్:
సందేశం:'{{ansible_hostname}} - {{ansible_default_ipv4.address}}'
ఈ ప్లేబుక్ మునుపటిలాగే ఉంది. కొత్త వేరియబుల్ మాత్రమే తేడా {{ansible_default_ipv4.address}} లో సందేశం యొక్క ఎంపిక డీబగ్ మాడ్యూల్.
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
అమలు చేయండి print_ variable2.yaml ప్లేబుక్ క్రింది విధంగా ఉంది:
$ఆమోదయోగ్యమైన-ప్లేబుక్ ప్లేబుక్లు/print_ variable2.yamlమీరు గమనిస్తే, డిఫాల్ట్ IPv4 చిరునామా మరియు హోస్ట్ల హోస్ట్ పేరు కన్సోల్లో ముద్రించబడతాయి.
కాబట్టి, మీరు అన్సిబుల్ ఫ్యాక్ట్స్ వేరియబుల్స్తో ఈ విధంగా పని చేస్తారు.
కమాండ్ లైన్ నుండి వినియోగదారు నిర్వచించిన వేరియబుల్స్ సెట్ చేయడం:
ఈ విభాగంలో, యాన్సిబుల్ ప్లేబుక్లను అమలు చేస్తున్నప్పుడు కమాండ్ లైన్ నుండి వినియోగదారు నిర్వచించిన వేరియబుల్స్ను ఎలా సెట్ చేయాలో నేను మీకు చూపుతాను.
ముందుగా, కొత్త ప్లేబుక్ను సృష్టించండి print_ variable3.yaml కింది విధంగా:
$నానోప్లేబుక్స్/print_ variable3.yamlకింది పంక్తులను టైప్ చేయండి print_ variable3.yaml ఫైల్:
- హోస్ట్లు: అన్నీవినియోగదారు: జవాబుదారీ
పనులు:
- పేరు: ప్రింట్కమాండ్లైన్ వేరియబుల్
డీబగ్:
సందేశం:'స్వాగతం {{username}}'
ఇక్కడ, నేను ఉపయోగించాను డీబగ్ సందేశాన్ని ముద్రించడానికి మాడ్యూల్ స్వాగతం {{username}} . వినియోగదారు పేరు మేము ప్లేబుక్ను అమలు చేస్తున్నప్పుడు ప్రత్యామ్నాయంగా ఉండే ఒక వేరియబుల్.
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
ప్లేబుక్ను అమలు చేయండి print_ variable3.yaml కింది విధంగా:
$అన్సిబుల్-ప్లేబుక్-మరియు 'వినియోగదారు పేరు = బాబ్'ప్లేబుక్స్/print_ variable3.yamlగమనిక: ఇక్కడ, -మరియు a పాస్ చేయడానికి ఎంపిక ఉపయోగించబడుతుంది వినియోగదారు పేరు విలువతో వేరియబుల్ బాబ్ ప్లేబుక్కి print_ variable3.yaml కమాండ్ లైన్ నుండి.
మీరు గమనిస్తే, సందేశం స్వాగతం బాబ్ కన్సోల్లో ముద్రించబడింది.
కమాండ్ లైన్ నుండి బహుళ వేరియబుల్స్ ఎలా పాస్ చేయాలో ఇప్పుడు తెలుసుకుందాం.
కొత్త ప్లేబుక్ను సృష్టించండి print_ variable4.yaml కింది విధంగా:
$నానోప్లేబుక్స్/print_ variable4.yamlకింది పంక్తులను టైప్ చేయండి print_ variable4.yaml ఫైల్:
- హోస్ట్లు: అన్నీవినియోగదారు: జవాబుదారీ
పనులు:
- పేరు: ప్రింట్ యూజర్ నిర్వచించిన వేరియబుల్స్
డీబగ్:
సందేశం:'username = {{username}} http_port = {{http_port}}'
ప్లేబుక్ ప్రస్తుతం మీకు బాగా తెలిసి ఉండాలి. ఇది 2 వేరియబుల్స్ ప్రింట్ చేయడమే వినియోగదారు పేరు మరియు http_port కన్సోల్ మీద.
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
మీరు ఇప్పుడు పాస్ కావచ్చు వినియోగదారు పేరు మరియు http_port రెండు వేర్వేరు ఉపయోగించి ప్లేబుక్కు వేరియబుల్ -మరియు ఈ క్రింది విధంగా ఎంపిక:
$ ansible-playbook-మరియు 'వినియోగదారు పేరు = బాబ్' -మరియు 'http_port = 8080'ప్లేబుక్స్/print_ variable4.yaml
లేదా, మీరు ఈ క్రింది విధంగా వైట్స్పేస్తో వేరియబుల్లను వేరు చేయవచ్చు:
$ ansible-playbook-మరియు 'వినియోగదారు పేరు = బాబ్ http_port = 8080'ప్లేబుక్స్/print_ variable4.yaml
మీరు గమనిస్తే, ది వినియోగదారు పేరు మరియు http_port కన్సోల్లో వేరియబుల్స్ ముద్రించబడతాయి.
యూజర్-నిర్వచించిన గ్రూప్ వేరియబుల్స్తో పని చేస్తోంది
చెప్పండి, మీరు హోస్ట్ల సమూహానికి కొన్ని వేరియబుల్స్ జోడించాలనుకుంటున్నారు. ఈ చర్య యాన్సిబుల్లో చేయడం చాలా సులభం.
మొదట, మీది తెరవండి ఆతిథ్యమిస్తుంది జాబితా ఫైల్ క్రింది విధంగా ఉంది:
$నానోఆతిథ్యమిస్తుందిమీలో కింది పంక్తులను టైప్ చేయండి ఆతిథ్యమిస్తుంది జాబితా ఫైల్:
[డెబియన్ 10]vm1.nodekite.com
vm2.nodekite.com
[డెబియన్ 10: వర్స్]
వినియోగదారు పేరు = లిల్లీ
http_port =4343
[సెంటోస్ 8]
vm3.nodekite.com
vm4.nodekite.com
[centos8: వర్స్]
వినియోగదారు పేరు = బాబ్
http_port =7878
మీరు గమనిస్తే, నేను ఒక కొత్త విభాగాన్ని సృష్టించాను [డెబియన్ 10: వర్స్] కోసం డెబియన్ 10 హోస్ట్ గ్రూప్ మరియు వేరియబుల్స్ జోడించబడింది ( వినియోగదారు పేరు మరియు http_port ) కోసం డెబియన్ 10 అక్కడ హోస్ట్ గ్రూప్.
అదే విధంగా, నేను కొత్త విభాగాన్ని సృష్టించాను [centos8: vars] కోసం సెంటోస్ 8 హోస్ట్ గ్రూప్ మరియు వేరియబుల్స్ జోడించబడింది ( వినియోగదారు పేరు మరియు http_port ) కోసం సెంటోస్ 8 అక్కడ హోస్ట్ గ్రూప్.
మీరు పూర్తి చేసిన తర్వాత, దాన్ని సేవ్ చేయండి ఆతిథ్యమిస్తుంది నొక్కడం ద్వారా జాబితా ఫైల్ + X తరువాత మరియు మరియు .
అమలు చేయండి print_ variable4.yaml ఈ క్రింది విధంగా ప్లేబుక్లు:
$ఆమోదయోగ్యమైన-ప్లేబుక్ ప్లేబుక్లు/print_ variable4.yamlమీరు గమనిస్తే, ప్రతి హోస్ట్ గ్రూప్ని బట్టి సరైన వేరియబుల్స్ ప్రతి హోస్ట్కు పంపబడతాయి.
వినియోగదారు నిర్వచించిన హోస్ట్ వేరియబుల్స్తో పని చేస్తోంది
ఈ విభాగంలో, ఇన్వెంటరీ ఫైల్లో నిర్దిష్ట హోస్ట్ల కోసం వేరియబుల్స్ ఎలా సెట్ చేయాలో నేను మీకు చూపుతాను.
మొదట, తెరవండి ఆతిథ్యమిస్తుంది జాబితా ఫైల్ క్రింది విధంగా ఉంది:
$నానోఆతిథ్యమిస్తుందినిర్దిష్ట హోస్ట్కు వేరియబుల్స్ జోడించడానికి (చెప్పండి, vm1.nodekite.com ), దిగువ స్క్రీన్ షాట్లో చూపిన విధంగా, హోస్ట్ IP/DNS పేరు తర్వాత స్పేస్/ట్యాబ్ను జోడించి, మీ వేరియబుల్స్లో టైప్ చేయండి.
మీరు బహుళ చరరాశులను జోడించవచ్చు. ప్రతి వేరియబుల్స్ను ఖాళీతో వేరు చేయండి.
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా జాబితా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
అమలు చేయండి print_ variable4.yaml ఈ క్రింది విధంగా ప్లేబుక్లు:
$ఆమోదయోగ్యమైన-ప్లేబుక్ ప్లేబుక్లు/print_ variable4.yamlమీరు గమనిస్తే, వేరియబుల్స్ మాత్రమే దీని కోసం సెట్ చేయబడ్డాయి vm1.nodekite.com హోస్ట్ ఇతర హోస్ట్లు వాటికి వర్తింపజేసిన సమూహ వేరియబుల్స్ ఉన్నాయి.
రేంజ్లతో త్వరితగతిన ఇన్వెంటరీ ఫైల్లను ఉత్పత్తి చేస్తోంది
మీ హోస్ట్ IP చిరునామాలు లేదా DNS పేర్లు స్థిరంగా ఉంటే (అనగా, నిర్దిష్ట ఆకృతిని కలిగి ఉన్నట్లయితే) మీరు త్వరగా ఇన్వెంటరీ ఇన్వెంటరీ ఫైల్లను రూపొందించడానికి పరిధులను ఉపయోగించవచ్చు.
మునుపటి ఉదాహరణలలో, నేను హోస్ట్లను ఉపయోగించాను vm1.nodekite.com , vm2.nodekite.com , vm3.nodekite.com మరియు vm4.nodekite.com . 4 లైన్లలో టైప్ చేయడానికి బదులుగా, నేను టైప్ చేసి ఉండవచ్చు vm [1: 4] .nodekite.com జాబితా ఫైల్లో.
పరిధులతో ప్రయోగాలు చేయడానికి, తెరవండి ఆతిథ్యమిస్తుంది జాబితా ఫైల్ క్రింది విధంగా ఉంది:
$నానోఆతిథ్యమిస్తుందిజాబితా ఫైల్స్ నుండి అన్ని హోస్ట్లు మరియు వేరియబుల్స్ తొలగించండి.
మేము ఇప్పుడు భర్తీ చేయవచ్చు vm1.nodekite.com మరియు vm2.nodekite.com తో vm [1: 2] .nodekite.com కోసం డెబియన్ 10 ఈ క్రింది విధంగా హోస్ట్ గ్రూప్.
అదే విధంగా, మేము భర్తీ చేయవచ్చు vm3.nodekite.com మరియు vm4.nodekite.com తో vm [3: 4] .nodekite.com కోసం సెంటోస్ 8 హోస్ట్ సమూహం.
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
అమలు చేయండి ping_all_hosts.yaml కింది విధంగా:
$ఆమోదయోగ్యమైన-ప్లేబుక్ ప్లేబుక్లు/ping_all_hosts.yamlమీరు చూడగలిగినట్లుగా, నేను ప్లేబుక్ను అమలు చేస్తున్నప్పుడు హోస్ట్ శ్రేణులు విస్తరించబడ్డాయి.
విభిన్న ఫైల్స్లో వేరియబుల్స్ నిల్వ చేయడం
గ్రూప్ వేరియబుల్స్ మరియు హోస్ట్ వేరియబుల్స్ ఒకే ఇన్వెంటరీ ఫైల్లో స్టోర్ చేయడం చాలా సులభం. కానీ, మీరు మరింత సౌలభ్యాన్ని వెతుకుతూ ఉండవచ్చు. ప్రత్యేకించి మీరు మీ ఇన్వెంటరీ ఫైల్లో పరిధులను ఉపయోగించాలనుకున్నప్పుడు మీరు పరిధులను ఉపయోగిస్తే మీరు ఇకపై హోస్ట్ వేరియబుల్స్ సెట్ చేయలేరు. సరే, మీరు గ్రూప్ వేరియబుల్స్ మరియు హోస్ట్ వేరియబుల్స్ను వివిధ ఫైల్లలో స్టోర్ చేయవచ్చు. ఈ విభాగంలో, ఇది ఎలా జరిగిందో నేను మీకు చూపుతాను.
డిఫాల్ట్గా, అన్సిబుల్ గ్రూప్ వేరియబుల్స్ కోసం చూస్తుంది సమూహం_వర్స్ / లో డైరెక్టరీ మరియు హోస్ట్ వేరియబుల్స్ హోస్ట్_వర్స్ / డైరెక్టరీ.
కాబట్టి, సృష్టించు సమూహం_వర్స్ / మరియు హోస్ట్_వర్స్ / డైరెక్టరీ క్రింది విధంగా ఉంది:
$mkdir -పివి {హోస్ట్, సమూహం}_ఎవరిదికోసం గ్రూప్ వేరియబుల్స్ సెట్ చేయడానికి డెబియన్ 10 హోస్ట్ సమూహం, ఒక ఫైల్ను సృష్టించండి డెబియన్ 10 (సమూహం పేరు వలె) లో సమూహం_వర్స్ / డైరెక్టరీ క్రింది విధంగా ఉంది:
$నానోసమూహం_వర్లు/డెబియన్ 10మీ వేరియబుల్స్ కింది విధంగా టైప్ చేయండి:
వినియోగదారు పేరు: లిల్లీhttp_port: 4343
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X Y మరియు తరువాత .
అదే విధంగా, కోసం సమూహ వేరియబుల్స్ సెట్ చేయడానికి సెంటోస్ 8 హోస్ట్ సమూహం, ఒక ఫైల్ను సృష్టించండి సెంటోస్ 8 (సమూహం పేరు వలె) లో సమూహం_వర్స్ / డైరెక్టరీ క్రింది విధంగా ఉంది:
$నానోసమూహం_వర్లు/సెంటోస్ 8మీ వేరియబుల్స్ కింది విధంగా టైప్ చేయండి:
వినియోగదారు పేరు: బాబ్http_port: 7878
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X Y మరియు తరువాత .
అమలు చేయండి print_ variable4.yaml ప్లేబుక్ క్రింది విధంగా ఉంది:
$ఆమోదయోగ్యమైన-ప్లేబుక్ ప్లేబుక్లు/print_ variable4.yamlమీరు గమనిస్తే, ప్రతి హోస్ట్ గ్రూపులకు గ్రూప్ వేరియబుల్స్ సరిగ్గా సెట్ చేయబడ్డాయి.
హోస్ట్ కోసం హోస్ట్ వేరియబుల్స్ సెట్ చేయడానికి vm1.nodekite.com , ఒక ఫైల్ను సృష్టించండి vm1.nodekite.com (హోస్ట్ పేరు లేదా IP చిరునామా వలె) హోస్ట్_వర్స్ / డైరెక్టరీ క్రింది విధంగా ఉంది:
$నానోvm1.nodekite.comమీ హోస్ట్ వేరియబుల్స్ను ఈ క్రింది విధంగా టైప్ చేయండి:
వినియోగదారు పేరు: అలెక్స్http_port: 7788
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X Y మరియు తరువాత .
అమలు చేయండి print_ variable4.yaml ప్లేబుక్ క్రింది విధంగా ఉంది:
$ ansible-playbook playbooks/print_ variable4.yaml[
మీరు గమనిస్తే, హోస్ట్ వేరియబుల్స్ హోస్ట్ కోసం సరిగ్గా సెట్ చేయబడ్డాయి vm1.nodekite.com .
అన్సిబుల్లో లూప్లతో పని చేస్తోంది
ఈ విభాగంలో, అన్సిబుల్లో లూప్లను ఎలా ఉపయోగించాలో నేను మీకు చూపుతాను.
ముందుగా, కొత్త ప్లేబుక్ను సృష్టించండి loop1.yaml లో ప్లేబుక్స్/ డైరెక్టరీ క్రింది విధంగా ఉంది:
$నానోప్లేబుక్స్/loop1.yamlకింది పంక్తులను టైప్ చేయండి loop1.yaml ప్లేబుక్:
- హోస్ట్లు: అన్నీవినియోగదారు: జవాబుదారీ
పనులు:
- పేరు: ప్రింట్ యూజర్ లిస్ట్
డీబగ్:
సందేశం:'వినియోగదారు: {{item}}'
వస్తువులతో_:
- అలెక్స్
- బాబ్
- లిల్లీ
ఇక్కడ, నాకు 1 పని ఉంది, ఇది లూప్ ఉపయోగించి వినియోగదారుల జాబితాను ముద్రించింది.
పని కోసం పునరుక్తి విలువలను సెట్ చేయడానికి, మీరు దీనిని ఉపయోగించండి వస్తువులతో_ మాడ్యూల్. అప్పుడు, మీరు విలువలను ఒక్కొక్కటిగా జోడించండి.
వస్తువులతో_:- అలెక్స్
- బాబ్
- లిల్లీ
మీరు దీనిని ఉపయోగించి ప్రస్తుత పునరుక్తి విలువను యాక్సెస్ చేయవచ్చు అంశం వేరియబుల్.
డీబగ్:సందేశం:'వినియోగదారు: {{item}}'
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
అమలు చేయండి loop1.yaml ప్లేబుక్ క్రింది విధంగా ఉంది:
$ఆమోదయోగ్యమైన-ప్లేబుక్ ప్లేబుక్లు/loop1.yamlమీరు చూడగలిగినట్లుగా, ప్రతి హోస్ట్లోని ప్రతి ఐటెమ్ కోసం ఒకే టాస్క్ నడుస్తుంది. కాబట్టి, లూప్ పనిచేస్తోంది.
Ansible లో షరతులతో పని చేయడం
మీరు కొన్ని షరతుల ఆధారంగా పనులను అమలు చేయాలనుకుంటే, ఈ విభాగం మీ కోసం.
పరిస్థితి ఆధారంగా పనులను అమలు చేయడానికి, మీరు దీనిని ఉపయోగించవచ్చు ఎప్పుడు అన్సబుల్ మాడ్యూల్. ఈ మాడ్యూల్ యొక్క ఉదాహరణను చూద్దాం. ముందుగా, కొత్త ప్లేబుక్ను సృష్టించండి షరతు 1. yml కింది విధంగా:
$నానోప్లేబుక్స్/షరతు 1. ymlకింది పంక్తులను టైప్ చేయండి షరతు 1. yml ప్లేబుక్:
- హోస్ట్లు: అన్నీవినియోగదారు: జవాబుదారీ
పనులు:
- పేరు: ఈ పనిని డెబియన్లో మాత్రమే అమలు చేయండి
డీబగ్:
సందేశం:'ఈ పని డెబియన్లో నడుస్తోంది'
ఎప్పుడు: అస్పష్టమైన_ వాస్తవాలు['పంపిణీ']=='డెబియన్'
ఇక్కడ,
ansible_facts [‘పంపిణీ’] == ‘డెబియన్’ లేదో తనిఖీ చేయడానికి ఉపయోగించబడుతుంది పంపిణీ ఉంది డెబియన్ . పంపిణీ డెబియన్ అయితే మాత్రమే పని నడుస్తుంది.
ది జవాబుదారీ వాస్తవాలు ['పంపిణీ'] అన్సిబుల్ ఫ్యాక్ట్స్ వేరియబుల్ను యాక్సెస్ చేయడానికి ఉపయోగించబడుతుంది అన్సబుల్_విభజన . మీరు దీనిని ఉపయోగించి పంపిణీ వెర్షన్ కోసం కూడా తనిఖీ చేయవచ్చు జవాబుదారీ_విభజన_ ప్రధాన_వర్షన్ వేరియబుల్.
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
అమలు చేయండి షరతు 1. yml ప్లేబుక్ క్రింది విధంగా ఉంది:
$ఆమోదయోగ్యమైన-ప్లేబుక్ ప్లేబుక్లు/షరతు 1. ymlమీరు చూడగలిగినట్లుగా, పని డెబియన్ హోస్ట్లలో మాత్రమే నడుస్తుంది. సెంటొస్ హోస్ట్లలో టాస్క్ అమలు కాలేదు.
మీరు ఒకేసారి బహుళ పరిస్థితుల కోసం తనిఖీ చేయవచ్చు మరియు అన్ని పరిస్థితులు నిజమైతే మాత్రమే పనిని అమలు చేయవచ్చు. ఒక ఉదాహరణ చూద్దాం.
కొత్త ప్లేబుక్ను సృష్టించండి పరిస్థితి 2. యమ్ఎల్ కింది విధంగా:
$నానోప్లేబుక్స్/పరిస్థితి 2. యమ్ఎల్కింది పంక్తులను టైప్ చేయండి పరిస్థితి 2. యమ్ఎల్ ఫైల్:
- హోస్ట్లు: అన్నీవినియోగదారు: జవాబుదారీ
పనులు:
- పేరు: ఈ పనిని డెబియన్లో మాత్రమే అమలు చేయండి10
డీబగ్:
సందేశం:'ఈ పని డెబియన్ 10 లో నడుస్తోంది'
ఎప్పుడు: అస్పష్టమైన_ వాస్తవాలు['పంపిణీ']=='డెబియన్'
మరియు ఊహించదగిన వాస్తవాలు['పంపిణీ_ ప్రధాన_వర్షన్']=='10'
ఇక్కడ, పంపిణీ డెబియన్ అయితే మాత్రమే పని నడుస్తుంది ( ansible_facts [‘పంపిణీ’] == ‘డెబియన్’ ) మరియు వెర్షన్ 10 ( అన్సిబుల్_ఫ్యాక్ట్స్ ['పంపిణీ_మేజర్_వర్షన్'] == '10' ). రెండు షరతులు నిజమైతే, పని అమలు అవుతుంది. అదేవిధంగా, పని అమలు కాదు.
నేను ఉపయోగించాను మరియు రెండు పరిస్థితులు ఇక్కడ నిజమేనా అని తనిఖీ చేయడానికి కీవర్డ్. మీరు ఏవైనా షరతులు నిజమేనా అని తనిఖీ చేయాలనుకుంటే, మీరు దానిని ఉపయోగించవచ్చు లేదా బదులుగా కీవర్డ్.
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
ప్లేబుక్ను అమలు చేయండి పరిస్థితి 2. యమ్ఎల్ కింది విధంగా:
$ఆమోదయోగ్యమైన-ప్లేబుక్ ప్లేబుక్లు/పరిస్థితి 2. యమ్ఎల్మీరు గమనిస్తే, పని డెబియన్ 10 హోస్ట్లలో మాత్రమే నడుస్తుంది.
మనం ప్లేబుక్ మార్చుకుందాం పరిస్థితి 2. యమ్ఎల్ కింది విధంగా డెబియన్ 8 హోస్ట్లలో మాత్రమే పనిని అమలు చేయడానికి.
మీరు చూడగలిగినట్లుగా, ఇన్వెంటరీ ఫైల్లో నా వద్ద డెబియన్ 8 హోస్ట్లు లేనందున అన్ని హోస్ట్లు దాటవేయబడ్డాయి.
యాన్సిబుల్ యాప్ట్ మాడ్యూల్తో పని చేస్తోంది
ది సముచితమైనది ఉబుంటు/డెబియన్ హోస్ట్లలో నిర్దిష్ట సాఫ్ట్వేర్ ప్యాకేజీని ఇన్స్టాల్ చేయడానికి యాన్సిబుల్ మాడ్యూల్ ఉపయోగించబడుతుంది. ఈ మాడ్యూల్ని ఎలా ఉపయోగించాలో చూద్దాం.
ముందుగా, కొత్త ప్లేబుక్ను సృష్టించండి apt1.yaml లో ప్లేబుక్స్/ డైరెక్టరీ క్రింది విధంగా ఉంది:
$నానోప్లేబుక్స్/apt1.yamlకింది పంక్తులను టైప్ చేయండి apt1.yaml ప్లేబుక్:
- హోస్ట్లు: డెబియన్ 10వినియోగదారు: జవాబుదారీ
మారింది: నిజం
పనులు:
- పేరు: apache2 ని ఇన్స్టాల్ చేయండి
సముచితమైనది:
పేరు: అపాచీ 2
రాష్ట్రం: తాజాది
ది సముచితమైనది మాడ్యూల్కు మాత్రమే అవసరం పేరు మీరు ఇన్స్టాల్/అప్గ్రేడ్/తీసివేయాలనుకుంటున్న ప్యాకేజీ మరియు రాష్ట్రం ప్యాకేజీ యొక్క.
ఇక్కడ, నేను ఇన్స్టాల్ చేయడానికి ప్రయత్నిస్తున్నాను అపాచీ 2 ప్యాకేజీ ( పేరు: అపాచీ 2 ) నా డెబియన్ 10 హోస్ట్లలో. నేను ఒక ప్యాకేజీని ఇన్స్టాల్ చేయడానికి మరియు కొత్త వెర్షన్ అందుబాటులో ఉంటే దాన్ని అప్గ్రేడ్ చేయడానికి ప్రయత్నిస్తున్నందున, ది రాష్ట్రం ఉండాలి తాజా .
రాష్ట్రం కింది ఎంపికలను కూడా అంగీకరిస్తుంది:
- గైర్హాజరు - ఇప్పటికే ఇన్స్టాల్ చేయబడితే ప్యాకేజీ తీసివేయబడుతుంది.
- తాజా - అప్డేట్ అందుబాటులో ఉంటే ప్యాకేజీ అప్గ్రేడ్ చేయబడుతుంది. ప్యాకేజీ ఇప్పటికే ఇన్స్టాల్ చేయకపోతే, అది ఇన్స్టాల్ చేయబడుతుంది.
- ప్రస్తుతం - ఇప్పటికే ఇన్స్టాల్ చేయకపోతే ప్యాకేజీ ఇన్స్టాల్ చేయబడుతుంది. కానీ అప్డేట్ అందుబాటులో ఉంటే ప్యాకేజీ అప్గ్రేడ్ చేయబడదు.
నేను జోడించినట్లు గమనించండి మారింది: నిజం ప్లేబుక్లో. ఇది ఇస్తుంది జవాబుదారీ ఫైల్ సిస్టమ్ నిర్మాణాన్ని సవరించడానికి వినియోగదారు సుడో అధికారాలు (అనగా ప్యాకేజీలను ఇన్స్టాల్/అప్గ్రేడ్/తీసివేయి). లేకుండా మారింది: నిజం , ది సముచితమైనది మాడ్యూల్ ఇన్స్టాల్ చేయబడదు అపాచీ 2 ప్యాకేజీ.
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ప్లేబుక్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
అమలు చేయండి apt1.yaml ప్లేబుక్ క్రింది విధంగా ఉంది:
$ఆమోదయోగ్యమైన-ప్లేబుక్ ప్లేబుక్లు/apt1.yamlమీరు గమనిస్తే, డెబియన్ 10 హోస్ట్లలో ప్లేబుక్ విజయవంతంగా నడిచింది.
మీరు గమనిస్తే, ది అపాచీ 2 ప్యాకేజీ నా డెబియన్ 10 హోస్ట్లలో ఇన్స్టాల్ చేయబడింది.
Ansible dnf/yum మాడ్యూల్తో పని చేస్తోంది
ది dnf మరియు యమ్ సెంటొస్/ఆర్హెచ్ఇఎల్ హోస్ట్లలో నిర్దిష్ట సాఫ్ట్వేర్ ప్యాకేజీని ఇన్స్టాల్ చేయడానికి యాన్సిబుల్ మాడ్యూల్ ఉపయోగించబడుతుంది. మీరు ఈ మాడ్యూల్ను ఉపయోగించిన విధంగానే ఉపయోగించవచ్చు సముచితమైనది ఈ వ్యాసం యొక్క మునుపటి విభాగంలో మాడ్యూల్.
రెండూ dnf మరియు యమ్ గుణకాలు ఒకే పారామితులను అంగీకరిస్తాయి. మీరు దీనిని ఉపయోగించవచ్చు dnf CentOS/RHEL 8 హోస్ట్లలో మాడ్యూల్, మరియు యమ్ CentOS/RHEL 7 లేదా పాతది.
ఇప్పుడు ఈ మాడ్యూల్ యొక్క ఉదాహరణను చూద్దాం.
ముందుగా, కొత్త ప్లేబుక్ను సృష్టించండి dnf1.yaml లో ప్లేబుక్స్/ డైరెక్టరీ క్రింది విధంగా ఉంది:
$నానోప్లేబుక్స్/dnf1.yamlకింది పంక్తులను టైప్ చేయండి dnf1.yaml ప్లేబుక్:
- హోస్ట్లు: centos8వినియోగదారు: జవాబుదారీ
మారింది: నిజం
పనులు:
- పేరు: httpd ప్యాకేజీని ఇన్స్టాల్ చేయండి
dnf:
పేరు: httpd
రాష్ట్రం: తాజాది
ది dnf మరియు యమ్ మాడ్యూల్కు మాత్రమే అవసరం పేరు మీరు ఇన్స్టాల్/అప్గ్రేడ్/తీసివేయాలనుకుంటున్న ప్యాకేజీని మరియు రాష్ట్రం ప్యాకేజీ యొక్క.
ఇక్కడ, నేను ఇన్స్టాల్ చేయడానికి ప్రయత్నిస్తున్నాను httpd ప్యాకేజీ ( పేరు: httpd ) నా CentOS 8 హోస్ట్లలో. నేను ఒక ప్యాకేజీని ఇన్స్టాల్ చేయడానికి ప్రయత్నిస్తున్నందున, కొత్త వెర్షన్ అందుబాటులో ఉంటే దాన్ని అప్గ్రేడ్ చేయాలనుకుంటున్నాను రాష్ట్రం ఉండాలి తాజా .
రాష్ట్రం కింది ఎంపికలను అంగీకరిస్తుంది:
- గైర్హాజరు - ఇప్పటికే ఇన్స్టాల్ చేయబడితే ప్యాకేజీ తీసివేయబడుతుంది.
- తాజా - అప్డేట్ అందుబాటులో ఉంటే ప్యాకేజీ అప్గ్రేడ్ చేయబడుతుంది. ప్యాకేజీ ఇప్పటికే ఇన్స్టాల్ చేయకపోతే, అది ఇన్స్టాల్ చేయబడుతుంది.
- ప్రస్తుతం - ఇప్పటికే ఇన్స్టాల్ చేయకపోతే ప్యాకేజీ ఇన్స్టాల్ చేయబడుతుంది. కానీ అప్డేట్ అందుబాటులో ఉంటే ప్యాకేజీ అప్గ్రేడ్ చేయబడదు.
నేను జోడించినట్లు గమనించండి మారింది: నిజం ప్లేబుక్లో. ఇది ఇస్తుంది జవాబుదారీ ఫైల్ సిస్టమ్ నిర్మాణాన్ని సవరించడానికి వినియోగదారు సుడో అధికారాలు (అనగా ప్యాకేజీలను ఇన్స్టాల్/అప్గ్రేడ్/తీసివేయి). లేకుండా మారింది: నిజం , ది సముచితమైనది మాడ్యూల్ ఇన్స్టాల్ చేయబడదు httpd ప్యాకేజీ.
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ప్లేబుక్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
అమలు చేయండి dnf1.yaml ప్లేబుక్ క్రింది విధంగా ఉంది:
$ఆమోదయోగ్యమైన-ప్లేబుక్ ప్లేబుక్లు/dnf1.yamlమీరు గమనిస్తే, సెంటొస్ 8 హోస్ట్లో ప్లేబుక్ విజయవంతంగా నడిచింది.
అన్సిబుల్ సర్వీస్ మాడ్యూల్తో పని చేస్తోంది
ది సేవ Ansible యొక్క మాడ్యూల్ మీ హోస్ట్లలో సేవలను ప్రారంభించడానికి, ఆపడానికి, పునartప్రారంభించడానికి, ప్రారంభించడానికి (ప్రారంభానికి సేవను జోడించండి) మరియు నిలిపివేయడానికి (స్టార్టప్ నుండి సేవను తీసివేయండి) ఉపయోగించబడుతుంది.
మునుపటి విభాగాలలో, అన్సాబుల్ ఉపయోగించి అపాచీ HTTP సర్వర్ ప్యాకేజీని ఎలా ఇన్స్టాల్ చేయాలో నేను మీకు చూపించాను సముచితమైనది , dnf మరియు యమ్ గుణకాలు. అపాచీ హెచ్టిటిపి సర్వర్ సర్వీస్ నడుస్తోందని మరియు సిస్టమ్ స్టార్టప్కు జోడించబడిందని ఇప్పుడు నిర్ధారించుకుందాం.
నేను నా డెబియన్ 10 హోస్ట్లతో పని చేస్తాను. అయితే, మీరు కోరుకుంటే, మీరు CentOS 8 హోస్ట్లతో పని చేయవచ్చు. తదనుగుణంగా ప్లేబుక్ను సర్దుబాటు చేయండి.
ముందుగా, కొత్త అన్సిబుల్ ప్లేబుక్ను సృష్టించండి apt2.yaml కింది విధంగా:
$నానోప్లేబుక్స్/apt2.yamlకింది పంక్తులను టైప్ చేయండి apt2.yaml ప్లేబుక్:
- హోస్ట్లు: డెబియన్ 10వినియోగదారు: జవాబుదారీ
మారింది: నిజం
పనులు:
- పేరు: apache2 ని ఇన్స్టాల్ చేయండి
సముచితమైనది:
పేరు: అపాచీ 2
రాష్ట్రం: తాజాది
- పేరు: apache2 సేవను ప్రారంభించండి
సేవ:
పేరు: అపాచీ 2
రాష్ట్రం: ప్రారంభమైంది
ప్రారంభించబడింది: నిజం
ఇక్కడ, నేను కొత్త పనిని జోడించాను, అపాచీ 2 సేవను ప్రారంభించండి .
పేరు: అపాచీ 2 - నేను పనిచేస్తున్న సేవ అపాచీ 2 .
రాష్ట్రం: ప్రారంభమైంది - సేవ తప్పక నడుస్తోంది.
ప్రారంభించబడింది: నిజం - సిస్టమ్ స్టార్టప్కు సర్వీస్ తప్పనిసరిగా జోడించబడాలి.
ది రాష్ట్రం పరామితి ఇతర విలువలను అంగీకరిస్తుంది.
- రీలోడ్ చేయబడింది - సేవ తప్పనిసరిగా కాన్ఫిగరేషన్ ఫైల్లను మళ్లీ లోడ్ చేయాలి.
- పునarప్రారంభించబడింది - సేవ తప్పనిసరిగా పునarప్రారంభించాలి.
- ప్రారంభించారు - సేవ తప్పక నడుస్తోంది. సర్వీస్ రన్ కాకపోతే, సర్వీస్ ప్రారంభించండి.
- ఆగిపోయింది - సేవను నిలిపివేయాలి. సేవ నడుస్తుంటే, సేవను నిలిపివేయండి.
ప్లేబుక్ను అమలు చేయండి apt2.yaml కింది విధంగా:
$ఆమోదయోగ్యమైన-ప్లేబుక్ ప్లేబుక్లు/apt2.yamlమీరు గమనిస్తే, ప్లేబుక్ విజయవంతంగా నడిచింది.
మీరు గమనిస్తే, ది అపాచీ 2 సేవ నా డెబియన్ 10 హోస్ట్లలో నడుస్తోంది.
అన్సిబుల్ కాపీ మాడ్యూల్తో పని చేస్తోంది
ది అన్సిబుల్ కాపీ మాడ్యూల్ ప్రధానంగా మీ కంప్యూటర్ నుండి రిమోట్ హోస్ట్లకు ఫైల్లను కాపీ చేయడానికి ఉపయోగించబడుతుంది.
మునుపటి విభాగంలో, నేను నా డెబియన్ 10 హోస్ట్లలో అపాచీ 2 వెబ్ సర్వర్ను ఇన్స్టాల్ చేసాను. ఇప్పుడు ఒకదాన్ని కాపీ చేద్దాం index.html డెబియన్ 10 హోస్ట్ల వెబ్రూట్కు ఫైల్.
ముందుగా, ఒక కొత్త డైరెక్టరీని సృష్టించండి ఫైళ్లు/ కింది విధంగా:
$mkdir -vఫైళ్లుక్రొత్త ఫైల్ను సృష్టించండి index.html లో ఫైళ్లు/ డైరెక్టరీ క్రింది విధంగా ఉంది:
$నానోఫైళ్లు/index.htmlకింది పంక్తులను టైప్ చేయండి index.html ఫైల్:
< html >
< తల >
< శీర్షిక >యాన్సిబుల్ ద్వారా వెబ్ సర్వర్</ శీర్షిక >
</ తల >
< శరీరం >
< h1 >LinuxHint కి స్వాగతం</ h1 >
< p >ఈ వెబ్ సర్వర్ Ansible తో అమలు చేయబడింది.</ p >
</ శరీరం >
</ html >
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
కొత్త అన్సిబుల్ ప్లేబుక్ను సృష్టించండి apt3.yaml కింది విధంగా:
$నానోప్లేబుక్స్/apt3.yamlకింది పంక్తులను టైప్ చేయండి apt3.yaml ఫైల్:
- హోస్ట్లు: డెబియన్ 10వినియోగదారు: జవాబుదారీ
మారింది: నిజం
పనులు:
- పేరు: apache2 ని ఇన్స్టాల్ చేయండి
సముచితమైనది:
పేరు: అపాచీ 2
రాష్ట్రం: తాజాది
- పేరు: index.html ని సర్వర్కు కాపీ చేయండి
కాపీ:
src: ../ఫైళ్లు/index.html
గమ్యం:/ఎక్కడ/www/html/index.html
మోడ్: 0644
యజమాని: www-data
సమూహం: www- డేటా
- పేరు: apache2 సేవను ప్రారంభించండి
సేవ:
పేరు: అపాచీ 2
రాష్ట్రం: ప్రారంభమైంది
ప్రారంభించబడింది: నిజం
ఇక్కడ, పని Index.html ని సర్వర్కు కాపీ చేయండి కాపీలు index.html నుండి ఫైళ్లు/ కు డైరెక్టరీ / var / www / html / డెబియన్ 10 హోస్ట్ల డైరెక్టరీ.
src: ../files/index.html - సోర్స్ ఫైల్ మార్గం.
డెస్ట్: /var/www/html/index.html - గమ్యం ఫైల్ మార్గం.
మోడ్: 0644 - ఫైల్ వినియోగదారు (6 - చదవడం మరియు వ్రాయడం), సమూహం (4 - చదవడం) మరియు ఇతరులు (4 - చదవండి) కోసం అనుమతులు.
యజమాని: www-data - ఫైల్ యజమానిని దీనికి సెట్ చేయండి www- డేటా .
సమూహం: www- డేటా - ఫైల్ సమూహాన్ని దీనికి సెట్ చేయండి www- డేటా .
మీరు పూర్తి చేసిన తర్వాత, నొక్కడం ద్వారా ఫైల్ను సేవ్ చేయండి + X తరువాత మరియు మరియు .
అమలు చేయండి apt3.yaml ప్లేబుక్ క్రింది విధంగా ఉంది:
$ఆమోదయోగ్యమైన-ప్లేబుక్ ప్లేబుక్లు/apt3.yamlమీరు గమనిస్తే, పని Index.html ని సర్వర్కు కాపీ చేయండి విజయవంతమైంది.
మీరు గమనిస్తే, ది index.html ఫైల్ డెబియన్ 10 హోస్ట్లకు కాపీ చేయబడింది.
మీరు చూడగలిగినట్లుగా, డెబియన్ 10 వెబ్ సర్వర్ సర్వ్ చేస్తుంది index.html నేను డెబియన్ 10 హోస్ట్లకు కాపీ చేసిన పేజీ.
కాబట్టి, ఇవి అన్సిబుల్ యొక్క ప్రాథమిక అంశాలు. అన్సిబుల్ యొక్క అధికారిక డాక్యుమెంటేషన్ చదవడం ద్వారా మీరు అన్సిబుల్ గురించి మరింత తెలుసుకోవచ్చు. ఈ కథనాన్ని చదివినందుకు ధన్యవాదాలు.