Ansible లో ట్యాగ్‌లను ఎలా ఉపయోగించాలి

Ansible Lo Tyag Lanu Ela Upayogincali



నాటకాలు, పాత్రలు మరియు టాస్క్‌లు అన్సిబుల్ స్ట్రక్చర్ మరియు ఈ యాన్సిబుల్ స్ట్రక్చర్ అన్సిబుల్‌లో ట్యాగ్‌లు అని పిలువబడే ముఖ్యమైన లక్షణాన్ని కలిగి ఉంటుంది. మేము Ansibleలో ప్లేబుక్‌ను ప్రారంభించినప్పుడల్లా, మీరు -tags మరియు –skip ట్యాగ్‌ల ఆదేశాలను ఉపయోగించవచ్చు, తద్వారా మేము నిర్దిష్ట టాస్క్‌లు, నాటకాలు మరియు పాత్రలను మాత్రమే అమలు చేయగలము. మన దగ్గర చాలా టాస్క్‌లు ఉన్న ప్లేబుక్ ఉంటే, కానీ ప్లేబుక్‌లోని అన్ని టాస్క్‌లను అమలు చేయకూడదనుకుంటే, ప్లేబుక్ మొత్తాన్ని అమలు చేయడానికి బదులుగా, మేము అన్సిబుల్ ప్లేబుక్‌లోని ట్యాగ్ కమాండ్‌ని ఉపయోగించి కొన్ని టాస్క్‌లను అమలు చేస్తాము.

మేము ఈ టాపిక్‌లోని ట్యాగ్‌లను చర్చించబోతున్నాము, ఇది అన్సిబుల్ యొక్క అత్యంత ముఖ్యమైన అంశాలలో ఒకటిగా పనిచేస్తుంది. ట్యాగ్‌లు అంటే ఏమిటి మరియు ట్యాగ్‌లు Ansibleలో ఎలా పనిచేస్తాయో వివరించడానికి మేము ప్రయత్నిస్తాము ఎందుకంటే ఇది Ansible ప్లాట్‌ఫారమ్‌లో కలవరపరిచే లక్షణం.







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



అన్సిబుల్ ప్లేబుక్‌లో ట్యాగ్‌లను ఉపయోగించుకోవడానికి ముందస్తు అవసరాలు

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



అన్సిబుల్ కంట్రోలింగ్ సర్వర్ తప్పనిసరిగా అవసరం కాబట్టి అది మార్పులు చేస్తుంది. Ansible సాఫ్ట్‌వేర్‌లో ట్యాగ్ పారామీటర్‌ని ఉపయోగించడానికి, వారితో కమ్యూనికేట్ చేయడానికి మాకు స్థానిక హోస్ట్‌లు అవసరం. ఈ సందర్భంలో, మేము ఎగ్జిక్యూషన్ అంతటా లోకల్ హోస్ట్‌ని టార్గెట్ రిమోట్ సర్వర్‌గా ఉపయోగిస్తున్నాము. మేము ప్లేబుక్‌లను సృష్టిస్తాము, Ansible ట్యాగ్ ఆదేశాలను అమలు చేస్తాము మరియు ansible-కంట్రోలర్ పరికరం నుండి రిమోట్ హోస్ట్‌లలో ఫలితాలను పర్యవేక్షిస్తాము.





మేము కొన్ని Ansible ట్యాగ్‌లను పరిశీలించడానికి విభిన్న దృశ్యాలను ఉపయోగించాలని లక్ష్యంగా పెట్టుకుంటాము, తద్వారా అభ్యాసకులు Ansible ప్లేబుక్‌లోని ట్యాగ్‌ల భావనను సులభంగా అర్థం చేసుకోగలరు.

ఉదాహరణ 01: అన్సిబుల్ ప్లేబుక్‌లో ఒకే పనిని యాక్సెస్ చేయడం

మేము ప్లేబుక్‌లో బహుళ టాస్క్‌లను అందించడం ద్వారా అన్సిబుల్‌లో అమలు చేయబోతున్నాము మరియు దానిలోని ట్యాగ్‌లను ఉపయోగించడం ద్వారా మేము ఒకే పనిని మాత్రమే యాక్సెస్ చేస్తాము. అలా చేయడానికి, కింది ఆదేశాన్ని వ్రాయడం ద్వారా మేము మొదట ప్లేబుక్‌ను సృష్టిస్తాము:



[root@master ansible]# నానో ansible_tags.yml

ansible_tags.yml ప్లేబుక్‌ని సృష్టించి, ప్రారంభించిన తర్వాత. ఇప్పుడు మనం ప్లేబుక్‌లో ఆదేశాలను వ్రాయడం ప్రారంభిస్తాము. ముందుగా, మేము అందించిన హోస్ట్‌లను 'హోస్ట్‌ల' పరామితిలో పాస్ చేస్తాము, దానిని మనం 'లోకల్ హోస్ట్' ఉపయోగిస్తాము. అప్పుడు, మేము 'gather_facts' పరామితిలో 'తప్పుడు' విలువను వ్రాస్తాము, తద్వారా మేము ప్లేబుక్‌ని అమలు చేసినప్పుడు లోకల్ హోస్ట్ గురించి అదనపు సమాచారాన్ని పొందలేము.

ఆ తర్వాత, మేము ఎగ్జిక్యూట్ చేయాలనుకుంటున్న 'టాస్క్‌లు' పరామితి క్రింద కార్యకలాపాలను ఒక్కొక్కటిగా జాబితా చేయడం ప్రారంభిస్తాము. మొదటి ప్రక్రియలో లోకల్ హోస్ట్ మెషీన్‌లో పత్రం ఉందో లేదో మేము నిర్ధారిస్తాము. ఇది అందుబాటులో ఉంటే, మేము దానిని 'రిజిస్టర్' పారామీటర్‌లో నిల్వ చేస్తాము మరియు ఆపై మేము ట్యాగ్‌కు ప్రత్యేకమైన పేరును ఇస్తాము, తద్వారా మేము ప్లేబుక్‌ని అమలు చేసినప్పుడు, ట్యాగ్‌ని యాక్సెస్ చేయడం సులభం అవుతుంది. రెండవ టాస్క్‌లో, మేము మొదటి టాస్క్‌లో చేసిన విధంగానే చేస్తాము, అయితే ట్యాగ్ ప్రత్యేకంగా ఉండాలి మరియు ఆపై సంబంధిత సందేశంతో పాటు టాస్క్‌ను ప్రదర్శించడానికి డీబగ్ ఎంపికను ఉపయోగిస్తాము.

- హోస్ట్‌లు:

- స్థానిక హోస్ట్
సేకరణ_వాస్తవాలు: తప్పు


పనులు:
- పేరు: ఫైల్ ఉనికిని తనిఖీ చేయండి x`
గణాంకాలు: మార్గం=./host.yml
నమోదు: ఫైల్ ఉంది
ట్యాగ్‌లు: check_file


- డీబగ్:
msg: '{{ 'ఫైల్ ఉనికిలో ఉంది' fileExists.stat.exists ఉంటే 'ఫైల్ కనుగొనబడలేదు' }}'
ట్యాగ్‌లు: check_file


- పేరు: host.ymlని ప్రస్తుత వినియోగదారు యాక్సెస్ చేయగలరో లేదో తనిఖీ చేయండి
షెల్: stat -c '%a' ./host.yml
నమోదు: యాక్సెస్‌పాత్
ట్యాగ్‌లు: check_access


- డీబగ్:
msg: '(accessPath.stdout|int) < 660 else 'ఫైల్ యాక్సెస్ చేయబడలేదు' }} ఉంటే {{ 'ఫైల్ యాక్సెస్ చేయగలదు''
ట్యాగ్‌లు: check_access

ఇప్పుడు, మేము ప్లేబుక్‌ని సేవ్ చేసి, ఆపై దాన్ని మూసివేస్తాము. మేము ansible_tags.yml ప్లేబుక్‌ని అమలు చేయాలనుకుంటున్నాము, కాబట్టి మేము వినియోగదారులకు అవుట్‌పుట్‌ను ప్రదర్శించడానికి Ansible టెర్మినల్‌లో కింది ఆదేశాన్ని వ్రాస్తాము.

[root@master ansible]# ansible-playbook ansible_tags.yml –tags check_file

పై కమాండ్‌ని అమలు చేసిన తర్వాత, మనకు కావలసిన అవుట్‌పుట్ తిరిగి వస్తుంది. క్రింద చూపిన విధంగా, ఒక పని మాత్రమే అమలు చేయబడుతుంది మరియు అది 'ఫైల్ ఉనికిని తనిఖీ చేయి' అనే అవుట్‌పుట్‌లో ప్రదర్శించబడుతుంది.

ఉదాహరణ 02: అన్సిబుల్ ప్లేబుక్‌లో ప్రత్యేక ట్యాగ్‌ని విస్మరించండి

ఇక్కడ మనం “స్కిప్” ట్యాగ్‌కి వెళ్తున్న Ansible ట్యాగ్‌కి రెండవ ఉదాహరణ. మీరు అన్ని టాస్క్‌లను విస్మరించాలనుకుంటున్నారా లేదా Ansibleలో ప్లేబుక్ యొక్క నిర్దిష్ట పనిని విస్మరించాలనుకుంటున్నారా అనేది మీ ఇష్టం. మేము ఉదాహరణ 1 అమలును ఉపయోగిస్తున్నాము మరియు దిగువ స్టేట్‌మెంట్‌ను అన్సిబుల్ టెర్మినల్‌లో వ్రాయడం ద్వారా మేము పనిని దాటవేస్తాము.

[root@master ansible]# ansible-playbook ansible_tags.yml --skip-tags check_file

పై ఆదేశం నుండి, మేము కేవలం 'ఫైల్ ఉనికిని తనిఖీ చేయి' టాస్క్‌ను విస్మరించాము. ఇప్పుడు, గ్రీన్ ఫాంట్‌లో “ఫైల్ యాక్సెస్ చేయగల” అవుట్‌పుట్‌లో ఒకే టాస్క్ మాత్రమే ప్రదర్శించబడుతుంది.

ఉదాహరణ 03: ఎల్లప్పుడూ Ansible Playbookలో టాస్క్‌ని రన్ చేస్తూ ఉండండి

మేము Ansible ట్యాగ్ ఆధారంగా మూడవ ఉదాహరణను అమలు చేయబోతున్నాము. ఈ ఉదాహరణలో, మేము 'ఎల్లప్పుడూ' ట్యాగ్‌ని ఉపయోగిస్తాము అంటే ఒక నిర్దిష్ట ట్యాగ్ ఎల్లప్పుడూ Ansible Playbookలో అమలు చేయబడుతుంది. ప్లేబుక్‌ని ప్రారంభించడానికి, కింది ఆదేశాన్ని ఉపయోగించండి:

[root@master ansible]# నానో ansible_tags.yml

ప్లేబుక్‌లో, మేము అమలు చేయడానికి బహుళ టాస్క్‌లను సృష్టించాము కానీ చివరి టాస్క్‌లో 'ఎల్లప్పుడూ' ట్యాగ్‌ను పాస్ చేసాము, అది 'ఇన్వెంటరీ నుండి పాస్‌వర్డ్‌ను తొలగించండి'. ప్లేబుక్‌లో కింది ఆదేశం అమలు చేయబడింది:

- హోస్ట్‌లు: అన్నీ

సేకరణ_వాస్తవాలు: తప్పు


పనులు:
- పేరు: ఫైల్ ఉనికిని తనిఖీ చేయండి
గణాంకాలు: మార్గం=./host.yml
నమోదు: ఫైల్ ఉంది
ప్రతినిధి_కి: స్థానిక హోస్ట్
ట్యాగ్‌లు: check_file


- డీబగ్:
msg: '{{ 'ఫైల్ ఉనికిలో ఉంది' fileExists.stat.exists ఉంటే 'ఫైల్ కనుగొనబడలేదు' }}'
ట్యాగ్‌లు: check_file


- పేరు: host.ymlని ప్రస్తుత వినియోగదారు యాక్సెస్ చేయగలరో లేదో తనిఖీ చేయండి
షెల్: stat -c '%a' ./host.yml
నమోదు: యాక్సెస్‌పాత్
ప్రతినిధి_కి: స్థానిక హోస్ట్
ట్యాగ్‌లు: check_access


- డీబగ్:
msg: '(accessPath.stdout|int) < 660 else 'ఫైల్ యాక్సెస్ చేయబడలేదు' }} ఉంటే {{ 'ఫైల్ యాక్సెస్ చేయగలదు''
ట్యాగ్‌లు: check_access


- పేరు: ఇన్వెంటరీ నుండి పాస్‌వర్డ్‌ను తొలగించండి
లైన్ఇన్ఫైల్:
మార్గం: '{{inventory_file}}'
regexp: '\b{{item}}.*\b'
రాష్ట్రం: హాజరుకాలేదు
ప్రతినిధి_కి: స్థానిక హోస్ట్
మారింది: తప్పు
టాగ్లు: ఎల్లప్పుడూ
వస్తువులతో:
- ansible_password

ఆ తర్వాత, కంట్రోలర్ మరియు టార్గెట్ రిమోట్ హోస్ట్ మధ్య కనెక్షన్‌ని నిర్మించడానికి మేము ఇన్వెంటరీ ఫైల్‌ను సృష్టిస్తాము. క్రింద ఆదేశం ఉంది:

[root@master ansible]# నానో host.yml

Ansibleలో “Linux_host”కి సంబంధించిన సమాచారాన్ని కలిగి ఉన్న ఇన్వెంటరీ ఫైల్ ఇక్కడ ఉంది.

అన్నీ:

హోస్ట్‌లు:
Linux_Host:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: ******
ansible_connection: ssh
ansible_port: 22

కావలసిన అవుట్‌పుట్ పొందడానికి, మేము కింది ఆదేశాన్ని అన్సిబుల్ టెర్మినల్‌లో అమలు చేస్తాము:

[root@master ansible]# ansible-playbook ansible_tags.yml --tags check_file -i host.yml

ముగింపు

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