అన్సిబుల్ పాత్రలు- మీ ప్లేబుక్‌లను అరికట్టడానికి అల్టిమేట్ మార్గం



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

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

కవర్ చేయబడిన అంశాలు:





మీరు DevOps ను నేర్చుకోవాలనుకుంటే, ' కోర్సు మీ గో-టు ఎంపిక.

అన్సిబుల్ పాత్రల పరిచయం

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



దీన్ని ఒక ఉదాహరణతో వివరిస్తాను. మీ ప్లేబుక్ 5 వేర్వేరు సిస్టమ్‌లలో 10 వేర్వేరు పనులను చేయాలనుకుంటున్నారని అనుకుందాం, దీని కోసం మీరు ఒకే ప్లేబుక్‌ను ఉపయోగిస్తారా? లేదు, ఒకే ప్లేబుక్‌ను ఉపయోగించడం గందరగోళంగా మరియు తప్పులకు గురి చేస్తుంది. బదులుగా, మీరు 10 వేర్వేరు పాత్రలను సృష్టించవచ్చు, ఇక్కడ ప్రతి పాత్ర ఒక పనిని చేస్తుంది. అప్పుడు, మీరు చేయాల్సిందల్లా, వాటిని పిలవడానికి ప్లేబుక్ లోపల పాత్ర పేరును పేర్కొనండి. ఈ బ్లాగులో పాత్రలను ఎలా ఉపయోగించాలో మీరు నేర్చుకుంటారు.

అన్సిబుల్ పాత్రల పునర్వినియోగం

అన్సిబుల్ పాత్రలు ఒకదానికొకటి స్వతంత్రంగా ఉంటాయి. ఒక పాత్ర యొక్క అమలు ఇతరులపై ఆధారపడి ఉండదు మరియు అందువల్ల వాటిని తిరిగి ఉపయోగించుకోవచ్చు. మీరు మీ అవసరాలకు అనుగుణంగా ఈ పాత్రలను సవరించవచ్చు మరియు వ్యక్తిగతీకరించవచ్చు. కోడ్ యొక్క మొత్తం విభాగాన్ని మనకు అవసరమైన ప్రతిసారీ తిరిగి వ్రాయడానికి ఇది మా పనిని తగ్గిస్తుంది, తద్వారా మా పనిని సులభతరం చేస్తుంది.

తరగతి మార్గాన్ని linux లో సెట్ చేయండి

మునుపటి ఉదాహరణకి తిరిగి వెళ్దాం. మీరు 10 పాత్రలను వ్రాశారు మరియు ఇప్పుడు మీరు వాటిలో 5 ని మరొక సమితి కోసం ఉపయోగించాలి. మీరు మళ్ళీ మొత్తం ప్లేబుక్ వ్రాస్తారా? లేదు, మీరు ఈ 5 పాత్రలను ఈ క్రొత్త ప్లేబుక్‌లో పిలవడం ద్వారా తిరిగి ఉపయోగించుకోండి. అవసరమైతే మీరు కూడా మార్పులు చేయవచ్చు, అయితే ఇది మీ సమయాన్ని ఆదా చేస్తుంది.



LAMP స్టాక్‌ను సెటప్ చేయడానికి మీరు ప్లేబుక్ రాయాలి అని చెప్పండి. మీరు లైనక్స్, అపాచీ, మొంగోడిబి మరియు పిహెచ్‌పిలను సృష్టించడానికి 4 పాత్రలను సృష్టించాలి. భవిష్యత్తులో, మీరు LAMP స్టాక్‌తో పాటు బ్లాగును సెటప్ చేయడానికి మరొక ప్లేబుక్ కావాలనుకుంటే, మీరు మళ్ళీ LAMP స్టాక్ మరియు WordPress కోసం కొత్త పాత్రలను సృష్టిస్తారా? లేదు! మీరు పాత పాత్రలను (LAMP స్టాక్ కోసం ఉపయోగిస్తారు) తిరిగి ఉపయోగించుకోవచ్చు మరియు అదనంగా WordPress కోసం కొత్త పాత్రను సృష్టించవచ్చు.

పాత్రల డైరెక్టరీ నిర్మాణం

అన్సిబుల్ పాత్రలను ఉపయోగించి, ఫైల్స్ ఒక నిర్దిష్ట ఫైల్ నిర్మాణంలో ఉండాలని ఆశిస్తారు. పాత్రలను ఉపయోగించడంలో చాలా గందరగోళంగా ఉన్నది ఫైల్ సోపానక్రమం అర్థం చేసుకోవడం. అన్సిబుల్ మీరు పాత్రలతో ఆడటానికి సహాయపడే అన్సిబుల్ గెలాక్సీ అనే లక్షణాన్ని అందిస్తుంది. ఉబుంటులో (/ etc / ansible) మా అన్సిబుల్ ఎక్కడ ఉందో మాకు ఇప్పటికే తెలుసు. మీరు ఎప్పుడైనా / etc / ansible కింద పాత్రలు అనే డైరెక్టరీని చూశారా? ఈ డైరెక్టరీ సరిగ్గా ఈ కారణంగా ఉంది. మీరు ఈ డైరెక్టరీ లోపల విభిన్న పాత్రలను సృష్టిస్తారు.

డైరెక్టరీ ఇలా ఉంటుంది:

చెట్టు - అన్సిబుల్ పాత్రలు - ఎడురేకా

మీరు ఉపయోగించి పాత్రను సృష్టించవచ్చు అన్సిబుల్-గెలాక్సీ init ఆదేశం లోపల / etc / ansible / పాత్రలు.

$sudoansible-galaxy init

ఇతర రోల్ డైరెక్టరీలు కూడా సృష్టించబడతాయని మీరు చూస్తారు.

ఈ డైరెక్టరీలు టాస్క్‌లు, హ్యాండ్లర్లు, డిఫాల్ట్‌లు, వర్స్, ఫైల్‌లు, టెంప్లేట్లు మరియు మెటా మరియు README.mdఫైల్.

పనులు - పాత్ర ద్వారా అమలు చేయవలసిన పనుల యొక్క ప్రధాన జాబితాను కలిగి ఉంటుంది. ఇదికలిగి ఉందినిర్దిష్ట పాత్ర కోసం main.yml ఫైల్.

హ్యాండ్లర్లు - ఈ పాత్ర ద్వారా లేదా ఈ పాత్ర వెలుపల ఎక్కడైనా ఉపయోగించబడే హ్యాండ్లర్లను కలిగి ఉంటుంది.

డిఫాల్ట్‌లు - ఈ పాత్ర ఉపయోగించబోయే డిఫాల్ట్ వేరియబుల్స్ ఉన్నాయి.

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

ఫైళ్లు - ఈ పాత్ర ద్వారా అమలు చేయగల ఫైల్‌లను కలిగి ఉంటుంది. పాత్రను కాన్ఫిగర్ చేసేటప్పుడు హోస్ట్‌లకు పంపాల్సిన ఫైల్‌లు ఇందులో ఉన్నాయి.

మెటా - ఈ పాత్ర కోసం మెటాడేటాను నిర్వచిస్తుంది. సాధారణంగా, ఇది రోల్ డిపెండెన్సీలను స్థాపించే ఫైళ్ళను కలిగి ఉంటుంది.

ప్రతి పని డైరెక్టరీ తప్పనిసరిగా a ని కలిగి ఉండాలి main.yml నిర్దిష్ట పాత్ర కోసం అసలు కోడ్ వ్రాయబడిన ఫైల్.

MEAN స్టాక్‌ను ఇన్‌స్టాల్ చేసే డెమోతో పని లేదా పాత్రలను ఇప్పుడు అర్థం చేసుకుందాం.

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

ఒకే ప్లేబుక్‌ను అమలు చేయడం ద్వారా అన్సిబుల్ రోల్స్ ఉపయోగించి మీన్ స్టాక్‌ను ఎలా ఇన్‌స్టాల్ చేయాలో నేను ప్రదర్శిస్తాను. మాకు మూడు పాత్రలు ఉండబోతున్నాయి: 1) అవసరాలను వ్యవస్థాపించడం, 2) మొంగోడిబిని వ్యవస్థాపించడం మరియు 3) నోడ్జెఎస్ వ్యవస్థాపించడం. మీరు ఇప్పటికే ఉన్నారని నేను uming హిస్తున్నాను అన్సబుల్ ఇన్‌స్టాల్ చేయబడింది మరియు ఉబుంటులో సర్వర్-క్లయింట్ కనెక్షన్‌ను చేసింది . అన్సిబుల్ పాత్రలతో ఆడటం ప్రారంభిద్దాం.

దశ 1 - / etc / ansible / పాత్రల డైరెక్టరీకి నావిగేట్ చేయండి మరియు ముందస్తు అవసరాలు, మొంగోడిబి మరియు నోడ్జెఎస్ కోసం పాత్రలను సృష్టించండి.

$ cd / etc / ansible / పాత్రలు $ sudo ansible-galaxy init ప్రీరిక్యూసైట్స్ $ sudo ansible-galaxy init mongodb $ sudo ansible-galaxy init nodejs

మీరు ఇప్పుడు మీ ‘పాత్రలు’ డైరెక్టరీలో మూడు పాత్రలను చూడాలి.

దశ 2 - Git ని ఇన్‌స్టాల్ చేసే ముందస్తు అవసరాల కోసం main.yml వ్రాయండి.

$ cd ముందస్తు అవసరాలు / పనులు / main.yml --- - పేరు: git apt: name: git state: present update_cache: yes ఇన్‌స్టాల్ చేయండి

దశ 3 - మొంగోడిబి పాత్ర కోసం main.yml వ్రాయండి

$ cd /mongodb/tasks/main.yml --- - పేరు: మొంగోడిబి - పబ్లిక్ కీని దిగుమతి చేయండి apt_key: keyerver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - పేరు: మొంగోడిబి - రిపోజిటరీని జోడించు apt_repository: ఫైల్ పేరు: '/etc/apt/sources.list.d/mongodb-org-3.2.list' repo: 'deb http://repo.mongodb.org/apt/ubuntu నమ్మదగిన / మొంగోడ్బ్-ఆర్గ్ / 3.2 మల్టీవర్స్' స్థితి: ప్రస్తుత నవీకరణ_కాష్ : అవును - పేరు: మొంగోడిబి - మొంగోడిబిని ఇన్‌స్టాల్ చేయండి: పేరు: మొంగోడ్బ్-ఆర్గ్ స్టేట్: ప్రస్తుత అప్‌డేట్_కాష్: అవును - పేరు: మంగోడ్ షెల్ ప్రారంభించండి: 'మంగోడ్ &'

దశ 4 - కోసం main.yml వ్రాయండిnodejsపాత్ర

$ cd nodejs / task / main.yml --- - name: Node.js - స్క్రిప్ట్ పొందండి get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- పేరు: Node.js - స్క్రిప్ట్ ఫైల్‌కు అమలు అనుమతి సెట్ చేయండి: మార్గం:' {{var_node} node / nodejs.sh 'మోడ్:' u + x '- పేరు: Node.js - ఇన్‌స్టాలేషన్ స్క్రిప్ట్ షెల్‌ను అమలు చేయండి:' {{var_node}} / nodejs.sh '- పేరు: Node.js - ఇన్‌స్టాలేషన్ స్క్రిప్ట్ ఫైల్‌ను తొలగించండి: మార్గం:' {{var_node}} / nodejs.sh 'స్థితి: హాజరుకాని - పేరు: Node.js - Node.js ఇన్‌స్టాల్ చేయండి : name = {{item}} state = present update_cache = yes with_items: - బిల్డ్-ఎసెన్షియల్ - నోడ్జ్స్ - పేరు: Node.js - ప్రపంచవ్యాప్తంగా బోవర్ మరియు గల్ప్‌ని ఇన్‌స్టాల్ చేయండి npm: name = {{item}} state = present global = yes with_items : - బోవర్ - గల్ప్

దశ 5 - మీ ప్రధాన ప్లేబుక్ రాయండి

$ cd /etc/ansible/mean.yml --- - హోస్ట్‌లు: నోడ్స్ రిమోట్_యూజర్: జవాబుదారీగా మారండి: అవును అవుతుంది_మెథడ్: సుడో వర్స్: # నోడ్ ఇన్‌స్టాలేషన్ సమయంలో అవసరమయ్యే var_node: / tmp పాత్రలు: - అవసరాలు - మొంగోడ్బ్ - నోడ్జ్

ఇప్పుడు మేము అవసరాలను వ్యవస్థాపించడానికి పాత్రలను నిర్వచించాము, M.ongoDB మరియు NodeJ లు, వాటిని అమలు చేద్దాం. కింది ఆదేశాన్ని ఉపయోగించి ప్లేబుక్‌ను అమలు చేయండి.

$sudoansible-playbook /etc/ansible/mean.yml -K

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

ఇది అన్సిబుల్ రోల్స్ బ్లాగ్ చివరికి మనలను తీసుకువస్తుంది. ఈ వ్యాసం మీకు సహాయకరంగా అనిపిస్తే, చూడండి ' ఎడురేకా అందించింది. ఐటి పరిశ్రమను మెరుగుపర్చిన అన్ని సాధనాలను ఇది వర్తిస్తుంది.

మాకు ప్రశ్న ఉందా? దయచేసి దీన్ని పోస్ట్ చేయండి మరియు మేము మీ వద్దకు తిరిగి వస్తాము.