అప్లికేషన్ యొక్క ఏదైనా కార్యాచరణ జీవిత చక్రాన్ని ఆటోమేట్ చేయడంలో మొదటి దశ మౌలిక సదుపాయాల కల్పనను ఆటోమేట్ చేయడం. ప్రొవిజనింగ్ అనేది కాన్ఫిగరేషన్లను సెటప్ చేయడం, మెమరీ, డిస్క్ స్పేస్ మొదలైన వాటిని కేటాయించే బాధించే ప్రక్రియ. అన్సిబుల్ ప్రొవిజనింగ్ దీన్ని ఎలా సరళంగా మరియు వేగవంతం చేస్తుందో చూద్దాం.
చాలా పెద్ద ఎత్తున విస్తరణలు మీకు బహుళ వ్యవస్థలలో ఒకేలాంటి పర్యావరణ సెటప్ కలిగి ఉండాలి.కాబట్టి, మీరు దీన్ని ఎలా చేస్తారు? ఒకే విధమైన ఆదేశాలను వంద సిస్టమ్లలో మానవీయంగా అమలు చేయండి ?? నహ్ .. అది చాలా పాత పాఠశాల. ఇది యంత్రాలు మానవులకు మంచివి. ఒకే అన్సిబుల్ ప్లేబుక్ను అమలు చేయడం ద్వారా ఈ సుదీర్ఘమైన మరియు బోరింగ్ ప్రక్రియను నేను మీకు చెబితే?ఈ బ్లాగులో మనం మాట్లాడబోయేది ఇదే - అన్సిబుల్ ప్రొవిజనింగ్.
కవర్ చేయబడిన అంశాలు:
- అన్సిబుల్ అంటే ఏమిటి
- అన్సిబుల్ ఆటోమేట్ ఏమి చేయవచ్చు?
- నీడ్ ఫర్ అన్సిబుల్ ప్రొవిజనింగ్
- డెమో: వెబ్సైట్ను అమలు చేయడానికి పర్యావరణాన్ని ఎలా కేటాయించాలి
మీరు DevOps ను నేర్చుకోవాలనుకుంటే, ' కోర్సు మీ గో-టు ఎంపికగా ఉండాలి.
అన్సిబుల్ అంటే ఏమిటి?
DevOps అనేది ఒక సంస్కృతి, ఇక్కడ ఆటోమేషన్కు నిజంగా అధిక ప్రాధాన్యత ఇవ్వబడుతుంది. విస్తరణ మరియు పరీక్షా విధానాన్ని ఆటోమేట్ చేయడానికి సాధనాలు ఉన్నప్పుడు, కాన్ఫిగరేషన్ నిర్వహణ మరియు ప్రొవిజనింగ్ కోసం సాధనాలు ఎందుకు ఉండకూడదు. తెలివిగా ఉండటానికి మిలియన్ మార్గాలు ఉన్నాయి మరియు వాటిలో అన్సిబుల్ ఉపయోగించడం ఒకటి. ఇది విస్తృతంగా ఉపయోగించే సాధనాల్లో ఒకటి.
అన్సిబుల్ YAML ఆధారిత ప్లేబుక్లను ఉపయోగిస్తుంది, అది ఒక అనుభవశూన్యుడు కూడా అర్థం చేసుకోవచ్చు. క్లయింట్ యొక్క మెషీన్లో వ్యవస్థాపించాల్సిన మూడవ పక్ష సాధనాన్ని కలిగి లేని దాని క్లయింట్లతో కమ్యూనికేట్ చేయడానికి ఇది ఏజెంట్ లేని నిర్మాణాన్ని ఉపయోగిస్తుంది మరియు బదులుగా SSH- ఆధారిత కనెక్షన్లను ఉపయోగిస్తుంది. ఆటోమేషన్ సాధనంగా ఉన్నందున, ఇది స్వయంచాలకంగా ఏమి చేయగలదో తెలుసుకుందాం.
అన్సిబుల్ ఆటోమేట్ ఏమి చేయవచ్చు?
అభివృద్ధి చక్రంలో ఒక దశకు పేరు పెట్టండి మరియు కాన్ఫిగరేషన్ మేనేజ్మెంట్, ప్రొవిజనింగ్, ఆర్కెస్ట్రేషన్, నిరంతర డెలివరీ, సెక్యూరిటీ లేదా అప్లికేషన్ డిప్లాయ్మెంట్ అయినా అన్సిబుల్ మీకు సహాయం చేస్తుంది. అభివృద్ధి చక్రం వర్క్ఫ్లోను ఒకే ఏజెంట్ తక్కువ ఆటోమేషన్ ప్లాట్ఫామ్గా అన్సిబుల్ ఏకం చేస్తుంది.
- కేటాయింపు: అప్లికేషన్ / సాఫ్ట్వేర్ జీవించడానికి అనువైన వాతావరణాన్ని సృష్టించడం అవసరం. అనువర్తనం యొక్క ఉనికి కోసం సృష్టించబడిన వాతావరణాన్ని ఆటోమేట్ చేయడానికి అన్సిబుల్ ఒక మార్గాన్ని అందిస్తుంది.
- ఆకృతీకరణ నిర్వహణ: ప్రారంభ / ఆపు సేవలు, సిస్టమ్, పరికరం లేదా అనువర్తనం యొక్క ఆకృతీకరణను మార్చడం వంటి అనేక రకాల ఆకృతీకరణ పనులను చేయండి.
- అప్లికేషన్ విస్తరణ: అన్సిబుల్తో విస్తరణ యొక్క నిర్వచనాన్ని ఆటోమేట్ చేయండి మరియు ఉపయోగించి విస్తరణను నిర్వహించండి అన్సిబుల్ టవర్ . ఇది ఉత్పత్తి నుండి విస్తరణ వరకు మొత్తం అప్లికేషన్ చక్రం సమర్థవంతంగా మరియు నిర్వహించదగినదిగా చేస్తుంది.
- నిరంతర డెలివరీ: నిరంతర సమైక్యత / నిరంతర డెలివరీ పైప్లైన్ను సృష్టించడం మరియు నిర్వహించడం గజిబిజిగా ఉంటుంది. అక్కడే అన్సిబుల్ అడుగులు వేస్తుంది మరియు డెవలపర్ జీవితాలను సులభతరం చేస్తుంది.
- భద్రత మరియు సమ్మతి: ప్రాజెక్టులతో పనిచేయడం, ఎల్లప్పుడూ సరిహద్దులను నిర్దేశిస్తుంది మరియు సంస్థ యొక్క భద్రతా విధానాలతో అనుసంధానించబడుతుంది. భద్రతా విధానాలను విస్తరణతో స్వయంచాలకంగా విలీనం చేయడం విధానాలకు అనుగుణంగా ఉండటం సులభం చేస్తుంది.
- ఆర్కెస్ట్రేషన్: మొత్తం ప్రాజెక్ట్ వేరే ఆకృతీకరణను కలిగి ఉన్న అనేక సందర్భాల సమాహారం. అన్సిబుల్ ఈ విభిన్న సందర్భాలను మొత్తంగా విలీనం చేస్తుంది మరియు నిర్వహిస్తుంది.
నీడ్ ఫర్ అన్సిబుల్ ప్రొవిజనింగ్
ముందు చెప్పినట్లుగా, మొదటి దశఅనువర్తనాల కార్యాచరణ జీవిత చక్రాన్ని ఆటోమేట్ చేస్తుందిపర్యావరణాన్ని సిద్ధం చేస్తోంది, అనగా, ప్రొవిజనింగ్. పెద్ద విస్తరణలకు ఖచ్చితమైన ఆకృతీకరణలను కలిగి ఉన్న బహుళ హోస్ట్లు అవసరం. ఒక హోస్ట్ను కేటాయించిన తర్వాత, మానవీయంగా చేస్తే తదుపరి 10 హోస్ట్లకు ఖచ్చితమైన కాన్ఫిగరేషన్లు లభించే అవకాశాలు ఏమిటి? అదే పునరావృత పనిని చేయడానికి మీరు ఎంత సమయం గడుపుతారు? ఇక్కడే అన్సిబుల్ మా సేవకు వస్తుంది. ఒకే ప్లేబుక్ను అమలు చేయడం ద్వారా మీరు వందలాది హోస్ట్లను కేటాయించవచ్చు. మేజిక్? హా! లేదు, ఆటోమేషన్లో పరిణామం.
డెమో: ఒక లాంప్ స్టాక్ను సృష్టించండి మరియు వెబ్పేజీని అమలు చేయండి
మీరు 30 సిస్టమ్లలో వెబ్సైట్ను మోహరించడానికి ప్రయత్నిస్తున్నారని అనుకుందాం, ప్రతి వెబ్సైట్ విస్తరణకు బేస్ OS, వెబ్ సర్వర్, డేటాబేస్ మరియు PHP అవసరం. మొత్తం 30 సిస్టమ్లలో ఈ ముందస్తు అవసరాలను ఒకేసారి ఇన్స్టాల్ చేయడానికి మేము అన్సిబుల్ ప్లేబుక్ను ఉపయోగిస్తాము.
ఈ అన్సిబుల్ ప్రొవిజనింగ్ డెమోలో, అన్సిబుల్ ఉపయోగించి వెబ్సైట్ హోస్టింగ్ వాతావరణాన్ని ఎలా కేటాయించాలో నేను మీకు చూపించబోతున్నాను. మేము LAMP (Linux, Apache, MySQL, మరియు PHP) స్టాక్ను ఇన్స్టాల్ చేసి, ఆపై వెబ్సైట్ను అమలు చేస్తాము.
జావా డబుల్ను పూర్ణాంకానికి మారుస్తుంది
ఈ డెమో కోసం, నేను ఉబుంటు వెర్షన్ 17.04 కలిగి ఉన్న లైనక్స్ వర్చువల్బాక్స్ ఉపయోగించాను. నేను రెండు వర్చువల్ మిషన్లను ఉపయోగించాను, ఒకటి అన్సిబుల్ ఇన్స్టాల్ చేయబడిన నా సర్వర్గా మరియు మరొక యంత్రం నా రిమోట్ హోస్ట్గా పనిచేస్తుంది. సర్వర్లో అన్సిబుల్ సెట్టింగ్తో ప్రారంభిద్దాం.
నేను ఫోల్డర్లో సేవ్ చేసిన సాధారణ స్టాటిక్ వెబ్పేజీని సృష్టించాను సూచిక దీనికి index.html మరియు style.css అనే రెండు ఫైళ్లు ఉన్నాయి.
index.html:
HTML మరియు CSS ఉపయోగించి వెబ్సైట్హోమ్ గురించి జాతులు దత్తత సంప్రదించండి ఇప్పుడే స్వీకరించండి
style.css
* { మార్జిన్: 0 పాడింగ్: 0 } శీర్షిక { నేపథ్య-చిత్రం: సరళ-ప్రవణత (rgba (0,0,0,0.5), rgba (0,0,0,0.5%), url ('puppie.jpg') ఎత్తు: 100 వి నేపథ్య పరిమాణం: కవర్ నేపథ్య స్థానం: కేంద్రం } .nav-menu { ఫ్లోట్: కుడి జాబితా-శైలి: ఏదీ లేదు మార్జిన్-టాప్: 30 పిక్స్ } .nav-menu li { ప్రదర్శన: ఇన్లైన్-బ్లాక్ } .nav-menu li a { రంగు: మణి టెక్స్ట్-డెకరేషన్: ఏదీ లేదు పాడింగ్: 5px 20px font-family: 'వెర్దానా', 'సాన్స్-సెరిఫ్' font-size: 20px } .హోమెబ్ట్న్ ఎ { అంచు: 1px ఘన బూడిద నేపథ్య-రంగు: తెలుపు } .nav-menu li a: హోవర్ { అంచు: 1px ఘన బూడిద నేపథ్య-రంగు: తెలుపు } .టాగ్లైన్ { స్థానం: సంపూర్ణ వెడల్పు: 1200px మార్జిన్-ఎడమ: 0 మార్జిన్-టాప్: 0 } h1 { రంగు: తెలుపు font-size: 50px font-family: 'వెర్దానా', 'సాన్స్-సెరిఫ్' టెక్స్ట్-అలైన్: సెంటర్ మార్జిన్-టాప్: 275 పిక్స్ } .adopt { మార్జిన్-టాప్: 30 పిక్స్ మార్జిన్-ఎడమ: 540 పిక్స్ } .bttn { అంచు: 1px ఘన తెలుపు పాడింగ్: 10px 30px రంగు: పసుపు font-family: 'వెర్దానా', 'సాన్స్-సెరిఫ్' font-size: 22px టెక్స్ట్-డెకరేషన్: ఏదీ లేదు } .adopt a: హోవర్ { నేపథ్య-రంగు: బర్లీవుడ్ }
దశ 1: రిపోజిటరీలను అప్డేట్ చేయడానికి, అవసరమైన రిపోజిటరీలను జోడించడానికి మరియు అన్సిబుల్ ఇన్స్టాలేషన్ కోసం మీ మెషీన్లో PPA ని కాన్ఫిగర్ చేయడానికి కింది ఆదేశాలను అమలు చేయండి:
$ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa: ansible / ansible
PPA చేరికను అంగీకరించడానికి ఎంటర్ నొక్కండి, ఆపై రిపోజిటరీలను అప్డేట్ చేసిన తర్వాత చివరికి అన్సిబుల్ను ఇన్స్టాల్ చేయండి.
$ sudo apt-get update $ sudo apt-get install ansible
దశ 2: మీ సర్వర్ యొక్క / etc / hosts ఫైల్కు వెళ్లి హోస్ట్ పేరు మరియు హోస్ట్ యొక్క IP చిరునామాను జోడించండి.
Fig. 1 - / etc / హోస్ట్లకు రిమోట్ హోస్ట్లను జోడించండి ఫైల్ - అన్సిబుల్ ప్రొవిజనింగ్
దశ 3: దాని హోస్ట్లతో కమ్యూనికేట్ చేయడానికి SSH ను ఉపయోగించే ఏజెంట్ లేని ఆర్కిటెక్చర్పై అన్సిబుల్ పనిచేస్తున్నందున, ssh కీలను సెటప్ చేయండి. సాధారణంగా, మాకు ఒక సర్వర్ మరియు ఒక హోస్ట్ ఉన్నాయి. మేము మా సర్వర్తో హోస్ట్ను నియంత్రిస్తాము మరియు అందువల్ల మేము సర్వర్లో పబ్లిక్ ssh- కీని సృష్టించి హోస్ట్ యొక్క మెషీన్లో కాపీ చేస్తాము. సర్వర్లో కింది ఆదేశాన్ని అమలు చేయండి:
$ ssh-keygen
ఫైల్ పేరును నమోదు చేయమని మీరు ప్రాంప్ట్ చేయబడతారునేను ఎక్కడమీరు మీ కీని సేవ్ చేయాలనుకుంటున్నారు మరియు ఉత్పత్తి చేయబడిన కీని యాక్సెస్ చేయడానికి పాస్వర్డ్ను సృష్టించమని మిమ్మల్ని అడుగుతుంది. అప్రమేయంగా, పబ్లిక్ కీ .ssh / id_rsa.pub ఫైల్లో సేవ్ అవుతుంది మరియు ప్రైవేట్ కీ .ssh / id_rsa లో సేవ్ అవుతుంది.
Fig. 2 - ssh కీని సృష్టించండి - అన్సిబుల్ ప్రొవిజనింగ్
ఇప్పుడు ఈ సృష్టించిన కీ మీ హోస్ట్లో ఉండాలి. కీని హోస్ట్లోకి కాపీ చేయడం రెండు విధాలుగా చేయవచ్చు, మానవీయంగా హోస్ట్లోకి కాపీ చేయండి లేదా ssh-copy-id ఆదేశాన్ని ఉపయోగించండి. ఈ సందర్భంలో, నేను దానిని ssh-copy-id root @ IP_of_host ఆదేశాన్ని ఉపయోగించి కాపీ చేయబోతున్నాను.
$ ssh-copy-id root@192.168.56.104
గమనిక- ఈ ఆదేశాన్ని అమలు చేయడానికి ముందు మీరు మీ హోస్ట్లోకి ప్రవేశించగలరని నిర్ధారించుకోండి.
దశ 4: అన్సిబుల్ హోస్ట్లను కాన్ఫిగర్ చేయండి. / Etc / ansible / హోస్ట్స్ ఫైల్కు వెళ్లి హోస్ట్ పేరును జోడించండి. మీ వద్ద ఉన్న హోస్ట్లు మరియు సర్వర్ల సంఖ్యను బట్టి ఇది మారుతుంది. మీరు కంటే ఎక్కువ కలిగి ఉండవచ్చుఒక సర్వర్ఇక్కడ.
Fig. 3 - ఇన్వెంటరీ ఫైల్లో రిమోట్ హోస్ట్లను జోడించండి - అన్సిబుల్ ప్రొవిజనింగ్
దశ 5: మీ హోస్ట్లు సిద్ధంగా ఉన్నాయో లేదో తనిఖీ చేయండి. ఈ ఆదేశాన్ని అమలు చేయండి మీరు ఇలాంటి అవుట్పుట్ పొందాలి.
$ అన్సిబుల్ -ఎమ్ పింగ్ అన్నీ
Fig. 4 - రిమోట్ హోస్ట్ యొక్క స్థితిని తనిఖీ చేయండి - అన్సిబుల్ ప్రొవిజనింగ్
జావాలో అధికారాలను ఎలా ఉపయోగించాలి
దశ 6: ఇప్పుడు మా అన్సిబుల్ సిద్ధంగా ఉంది, వెబ్సైట్ను అమలు చేయడానికి పర్యావరణాన్ని సిద్ధంగా ఉంచండి. అపాచీ, మైస్క్ల్ మరియు పిహెచ్పిని ఇన్స్టాల్ చేయడానికి మేము ఒకే అన్సిబుల్ ప్లేబుక్ను ఉపయోగించబోతున్నాము. దీనిని చూద్దాం.
గమనిక: మీరు ఒక అనుభవశూన్యుడు అయితే, చూడండి ఇది ప్లేబుక్ ఎలా రాయాలో వివరించే బ్లాగ్.
--- # సెటప్ LAMP స్టాక్ - హోస్ట్లు: హోస్ట్ 1 టాస్క్లు: - పేరు: ppa రిపోజిటరీని జోడించు: అవును apt_repository: repo = ppa: ondrej / php - name: దీపం స్టాక్ను ఇన్స్టాల్ చేయండి: అవును apt: pkg: - apache2 - mysql-server - php7.0 - php7.0-mysql state: present update cache: yes - name: start apache server become: yes service: name: apache2 state: begin enable: yes - name: mysql service start: yes services: name: mysql state: ప్రారంభించడం ప్రారంభించబడింది: అవును - పేరు: లక్ష్య డైరెక్టరీ ఫైల్ను సృష్టించండి: path = / var / www / html state = డైరెక్టరీ మోడ్ = 0755 - పేరు: నియోగించు index.html మారింది: అవును కాపీ: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html
ఇక్కడ మీరు చూడగలిగినట్లుగా, మాకు 6 పనులు ఉన్నాయి, ప్రతి పని ఒక నిర్దిష్ట ఫంక్షన్ను చేస్తుంది.
- మొదటి పని MySQL మరియు PHP ని వ్యవస్థాపించడానికి అవసరమైన రిపోజిటరీని జతచేస్తుంది.
- రెండవ పని apache2, MySQL-server, PHP మరియు PHP-MySQL ని ఇన్స్టాల్ చేస్తుంది.
- మూడవ మరియు నాల్గవ పని అపాచీ మరియు MySQL సేవను ప్రారంభిస్తుంది.
- ఐదవ పని హోస్ట్ యంత్రంలో లక్ష్య డైరెక్టరీని సృష్టిస్తుంది మరియు
- చివరగా, ఆరవ పని index.html ఫైల్ను అమలు చేస్తుంది, ఇది సర్వర్ మెషిన్ నుండి ఫైల్ను తీసుకొని హోస్ట్ మెషీన్లోకి కాపీ చేస్తుంది.
కింది ఆదేశంతో ఈ ప్లేబుక్ను అమలు చేయండి:
$ ansible-playbook lamp.yml -K
పంక్తులు అవ్వండి: అవును ప్లేబుక్లో ఇది రూట్గా అమలు చేయాల్సిన అవసరం ఉందని, అందువల్ల మీరు ఆదేశాన్ని అమలు చేసినప్పుడు, ఇది సుడో పాస్వర్డ్ కోసం ప్రాంప్ట్ చేస్తుంది.
అంజీర్ 5 - అన్సిబుల్ ప్లేబుక్ను అమలు చేయండి - అన్సిబుల్ ప్రొవిజనింగ్
ఇప్పుడు మీరు హోస్ట్ మెషీన్లోకి వెళ్లి వెబ్సైట్ హోస్ట్ చేయబడిందో లేదో తనిఖీ చేయవచ్చు.
Fig. 6 - లోకల్ హోస్ట్లో వెబ్సైట్ను హోస్ట్ చేయండి - అన్సిబుల్ ప్రొవిజనింగ్
ఇప్పుడు అది వెబ్పేజీ, ఇది సర్వర్తో ఇంటరాక్ట్ అయ్యే అన్ని హోస్ట్లలో అమర్చబడుతుంది (మా విషయంలో, మాకు ఒకే హోస్ట్ మాత్రమే ఉంది) కానీ 100 రిమోట్ హోస్ట్లకు కూడా ఇది సాధ్యమవుతుంది.
ఇది అన్సిబుల్ ప్రొవిజనింగ్ బ్లాగ్ చివరికి మనలను తీసుకువస్తుంది. ఈ వ్యాసం మీకు సహాయకరంగా అనిపిస్తే, చూడండి ' ఎడురేకా అందించింది. ఇది ఐటి పరిశ్రమను తెలివిగా చేసిన అన్ని సాధనాలను కవర్ చేస్తుంది.
మాకు ప్రశ్న ఉందా? దయచేసి దీన్ని పోస్ట్ చేయండి మరియు మేము మీ వద్దకు తిరిగి వస్తాము.