Hindi Mahusay na Tutorial - Alamin Upang Sumulat ng Hindi Kapani-paniwala na Mga Playbook



Sa blog na Ansible Tutorial na ito matututunan mo kung paano magsulat ng Ansible playbooks, mag-utos ng adhoc at magsagawa ng hands-on upang mai-deploy ang Nginx sa iyong host machine.

Hindi Mahusay na Tutorial

Sana dumaan ka sa dati kong blog upang malaman at ang pinaka ginagamit na mga terminolohiya ng Ansible. Kung sakaling hindi mo nagawa, mangyaring suriin ito upang makakakuha ka ng mas mahusay na pag-unawa sa Ansible Tutorial na ito.Dapat mo ring malaman na ang Ansible ay bumubuo ng isang mahalagang bahagi ng bilang isang tool para sa pamamahala ng pagsasaayos, paglawak at orkestra.

go sort c ++

Hayaan akong bigyan ka ng isang pangkalahatang ideya ng 'Ansible Tutorial' na ito:





Hindi Mahusay na Tutorial sa Playbook | Pagsasanay sa DevOps | Edureka

Hindi Mahusay na Tutorial - Pagsusulat ng Mga Nakakahimok na Mga Playbook

Ang mga Playbook sa Ansible ay nakasulat sa format na YAML. Ito ay isang wikang serialization ng data na nababasa ng tao. Karaniwan itong ginagamit para sa mga file ng pagsasaayos. Maaari din itong magamit sa maraming mga application kung saan ang data ay naiimbak.



Para sa Ansible, halos bawat YAML file ay nagsisimula sa isang listahan. Ang bawat item sa listahan ay isang listahan ng mga pares ng key / halaga, karaniwang tinatawag na 'hash' o isang 'diksyunaryo'. Kaya, kailangan nating malaman kung paano magsulat ng mga listahan at dictionaries sa YAML.

Ang lahat ng mga miyembro ng isang listahan ay mga linya na nagsisimula sa parehong antas ng indentation na nagsisimula sa isang '-' (dash at space). Posibleng mas kumplikado ang mga istraktura ng data, tulad ng mga listahan ng mga dictionaryo o halo-halong dictionaries na ang mga halaga ay listahan o isang halo ng pareho.

hal. Para sa isang listahan ng mga kagawaran sa edureka:



mga kagawaran: - marketing - benta - solusyon - pagsusulat ng nilalaman - suporta - produkto

Hayaan mo akong bigyan ka ng isang halimbawa ng isang diksyunaryo:

-USA -contient: North America -capital: Washington DC -populasyon: 319 milyon

Mga Host At Gumagamit:

Para sa bawat pag-play sa isang playbook, pipiliin mo kung aling mga machine sa iyong imprastraktura ang dapat i-target at aling remote na gumagamit ang makakumpleto ng mga gawain. Upang maisama ang mga host sa Ansible na imbentaryo, gagamitin namin ang mga IP address ng mga host machine.

Pangkalahatan ang mga host ay isang listahan ng isa o higit pang mga pangkat o mga pattern ng host, na pinaghihiwalay ng mga colon. Ang remote na gumagamit ay pangalan lamang ng account ng gumagamit.

Mga variable:

Gumagamit ang Ansible ng mga variable na tinukoy dati upang paganahin ang higit na kakayahang umangkop sa mga playbook at tungkulin. Maaari silang magamit upang mag-loop sa pamamagitan ng isang hanay ng mga naibigay na halaga, ma-access ang iba't ibang impormasyon tulad ng host na pangalan ng isang system at palitan ang ilang mga string sa mga template na may mga tukoy na halaga.

Tinutukoy na ng Ansible ang isang mayamang hanay ng mga variable, indibidwal para sa bawat system. Kailan man tatakbo ang Ansible sa isang system, lahat ng mga katotohanan at impormasyon tungkol sa system ay natipon at itinatakda bilang mga variable.

Ngunit may isang panuntunan para sa pagbibigay ng pangalan ng mga variable. Ang mga variable na pangalan ay dapat na mga titik, numero, at underscore. Ang mga variable ay dapat palaging magsimula sa isang liham. Hal. wamp_21, ang port5 ay wastong mga pangalan ng variable, samantalang ang 01_port, _server ay hindi wasto.

Mga Gawain:

Pinapayagan ka ng mga gawain na paghiwalayin ang mga piraso ng patakaran sa pagsasaayos sa mas maliit na mga file. Kasama sa gawain ang pull mula sa iba pang mga file. Ang mga gawain sa Ansible ay napupunta sa halos English ang kahulugan nito.

Hal: Mag-install, mag-update atbp.

Mga Handler:

Ang mga handler ay tulad ng mga regular na gawain sa isang Ansible playbook, ngunit tatakbo lamang kung ang Gawain ay naglalaman ng isang abiso na direktiba at ipinapahiwatig din na binago nito ang isang bagay. Halimbawa, kung ang isang config file ay binago, kung gayon ang gawain na tumutukoy sa config file ay maaaring ipaalam sa isang handler ng restart ng serbisyo.

Hayaan akong bigyan ka ng isang halimbawa ng isang playbook na magsisimula sa programa ng server ng Apache httpd:

----host: mga web server kanino: http_port: 80 max_clients: 200 remote_user: ugat gawain: - pangalan: matiyak na ang apache ay nasa pinakabagong bersyon yum: pangalan = httpd estado = pinakabago - pangalan: isulat ang apache config file template: src = / srv / httpd.j2 dest = / etc / httpd.conf abisuhan: - muling simulan ang apache - pangalan: tiyaking tumatakbo ang apache (at paganahin ito sa boot) serbisyo: pangalan = httpd estado = sinimulan pinagana = oo mga humahawak: - pangalan: muling simulan ang apache serbisyo: pangalan = httpd estado = restart

Inaasahan kong maiugnay ka ng halimbawa sa lahat ng paglalarawan ng mga bahagi ng playbook na nabanggit ko sa itaas. Kung hindi pa rin malinaw sa iyo, huwag magalala ang lahat ng iyong pag-aalinlangan ay magiging malinaw sa susunod na bahagi ng blog na ito.

Ito ay tungkol sa mga playbook. Ang mga playbook na isusulat mo. Ngunit binibigyan ka ng Ansible ng isang malawak na hanay ng mga module din, na maaari mong gamitin.

Mahusay na Tutorial - Mga Modyul

Ang mga module sa Ansible ay walang kakayahan. Mula sa isang RESTful pananaw sa serbisyo, para sa isang operasyon (o tawag sa serbisyo) upang maging walang kakayahan, ang mga kliyente ay maaaring gumawa ng parehong tawag na paulit-ulit habang gumagawa ng parehong resulta. Sa madaling salita, ang paggawa ng maraming magkatulad na mga kahilingan ay may parehong epekto sa paggawa ng isang solong kahilingan.

Mayroong iba't ibang mga uri ng mga module sa Ansible

  • Mga pangunahing module
  • mga karagdagang module

Mga Core na Modyul

Ito ang mga modyul na pinapanatili ng pangunahing pangkat ng Ansible at palaging ipapadala sa mismong Ansible. Makakatanggap din sila ng bahagyang mas mataas na priyoridad para sa lahat ng mga kahilingan kaysa sa mga nasa 'mga extra' na repos.

Ang mapagkukunan ng mga modyul na ito ay na-host ng Ansible sa GitHub sa Ansible-modules-core.

Mga Modyul na Ekstra

Ang mga modyul na ito ay kasalukuyang ipinadala sa Ansible, ngunit maaaring maipadala nang magkahiwalay sa hinaharap. Pinapanatili din ang mga ito ng pamayanan ng Ansible. Ang mga module na hindi pang-pangunahing ay ganap na magagamit, ngunit maaaring makatanggap ng bahagyang mas mababang mga rate ng pagtugon para sa mga isyu at humiling ng mga kahilingan.

Ang mga tanyag na 'extra' na module ay maaaring maitaguyod sa mga pangunahing module sa paglipas ng panahon.

Ang mapagkukunan para sa mga modyul na ito ay na-host ng Ansible sa GitHub sa mga Ansible-modules-extra.

Hal: Ang isa sa mga karagdagang module sa Remote Management Modules ay ipmi_power module, na isang power manger para sa mga remote machine. Nangangailangan ito ng python 2.6 o mas bago at tumakbo ang pyghmi.

Maaari mong gamitin ang modyul na ito sa pamamagitan ng pagsulat ng isang utos ng adhoc tulad ng isinulat ko sa ibaba:

ipmi_power: name = 'test.domain.com' user = 'localhost' password = 'xyz' state = 'on'

Mahusay na Tutorial - Mga Halaga sa Pagbabalik

Ang mga madaling makita na modyul ay karaniwang nagbabalik ng isang istraktura ng data na maaaring nakarehistro sa isang variable, o direktang makikita kapag output ng Ansible program. Ang bawat module ay maaaring opsyonal na idokumento ang sarili nitong natatanging mga halaga ng pagbabalik.

Ang ilang mga halimbawa ng mga halagang bumalik ay:

  • nagbago: nagbabalik ng isang halaga ng boolean tuwing ang gawain ay gumagawa ng anumang pagbabago.
  • bigo: nagbabalik ng isang boolean na halaga, kung ang gawain ay nabigo
  • msg: nagbabalik ito ng isang string na may isang pangkalahatang mensahe na naipaabot sa gumagamit.

Mahusay na Tutorial - Mga Utos ng AdHoc

Ang mga utos ng Adhoc ay isang simpleng utos ng linya upang magsagawa ng ilang pagkilos. Ang mga tumatakbo na module na may Ansible command ay mga adhoc command.

Hal:

hindi nakaka-host na host -m netscaler -a 'nsc_host = nsc.example.com user = apiuser password = apipass' 

Ang utos ng adhoc sa itaas ay gumagamit ng module ng netscaler upang huwag paganahin ang server. Mayroong daan-daang mga module na magagamit sa Ansible mula sa kung saan maaari kang mag-refer at magsulat ng mga utos ng adhoc.

Sa gayon, sapat na sa lahat ng mga paliwanag na panteorya, hayaan mong ipaliwanag ko sa iyo Ansible na may ilang mga kamay.

Mahusay na Tutorial - Mga Kamay Sa

Magsusulat ako ng isang playbook upang mai-install ang Nginx sa aking node / host machine.

Magsimula na tayo :)

Hakbang 1: Kumonekta sa iyong mga host gamit ang SSH. Para doon, kailangan mong bumuo ng isang pampublikong susi ng SSH.

Gamitin ang utos sa ibaba:

ssh-keygen

Bumuo ng Ssh Key - Ansible Tutorial - Edureka

Tulad ng nakikita mo sa snapshot sa itaas, ang utos ssh-keygen nakabuo ng isang pampublikong susi ng SSH.

Hakbang 2: Ang iyong susunod na gawain ay ang kopyahin ang pampublikong key SSH sa iyong mga host. Upang magawa iyon, gamitin ang utos sa ibaba:

ssh-copy-id -i root @

Ipinapakita ng snapshot sa itaas ang susi ng SSH na kinopya sa mga host.

Hakbang 3: Ilista ang mga IP address ng iyong mga host / node sa iyong imbentaryo.

Gamitin ang sumusunod na utos:

vi / etc / ansible / host

Bubuksan nito ang isang vi editor kung saan maaari mong mailista ang mga IP address ng iyong mga host. Ito na ang iyong imbentaryo.

Hakbang 4: Sabihin sa ping upang matiyak na ang isang koneksyon ay naitaguyod.

Kinukumpirma ng snapshot sa itaas na ang koneksyon ay nagawa sa pagitan ng iyong control machine at host.

Hakbang 5: Sumulat tayo ngayon ng isang playbook upang mai-install ang Nginx sa host machine. Maaari mong isulat ang iyong playbook sa editor ng vi. Para doon, lumikha lamang ng iyong playbook, gamit ang utos:

vi

Ipinapakita ng snapshot sa ibaba ang aking playbook upang mai-install ang Nginx na nakasulat sa format na YAML.

Ang mga gawain ng isang playbook ay tinukoy sa YAML bilang isang listahan ng mga diksyunaryo at naisakatuparan mula sa itaas hanggang sa ibaba. Kung mayroon kaming maraming mga host, kung gayon ang bawat gawain ay sinubukan para sa bawat host bago lumipat sa susunod. Ang bawat gawain ay tinukoy bilang isang diksyunaryo na maaaring magkaroon ng maraming mga susi, tulad ng 'pangalan' o 'sudo' na nangangahulugan ng pangalan ng gawain at kung nangangailangan ito ng mga pribilehiyong sudo.

Isang variable server_port ay nakatakda na nakikinig sa TCP port 8080 para sa papasok na mga kahilingan.

Dito, ang unang gawain ay upang makuha ang kinakailangang pakete para sa pag-install ng Nginx at pagkatapos ay i-install ito.Sa panloob, susuriin ng Ansible kung mayroon ang direktoryo at lilikha ito kung wala, kung hindi man ay wala itong gagawin.

Ang susunod na gawain ay upang i-configure ang Nginx.Sa Nginx, naglalaman ang mga konteksto ng mga detalye ng pagsasaayos.

Dito, ang template ay isang file na maaari mong i-deploy sa mga host. Gayunpaman, nagsasama rin ang mga file ng template ng ilang mga variable ng sanggunian na hinugot mula sa mga variable na tinukoy bilang bahagi ng isang Ansible playbook o mga katotohanan na natipon mula sa mga host. Ang mga katotohanan na naglalaman ng mga detalye ng pagsasaayos ay hinuhugot mula sa isang direktoryo ng pinagmulan at kinopya sa isang direktoryo ng patutunguhan.

Tinutukoy ng mga handler dito ang pagkilos na gagawin lamang sa pag-abiso ng mga gawain o pagbabago sa estado. Sa playbook na ito, tinukoy namin, abisuhan: i-restart ang Nginx handler na i-restart ang Nginx sa sandaling ang mga file at template ay makopya sa mga host.

Ngayon, i-save ang file at lumabas.

Hakbang 6: Patakbuhin natin ngayon ang playbook na ito, gamit ang utos sa ibaba:

ansible-playbook .yml

Maaari naming makita sa screenshot sa itaas na ang aming gawain ay naisasagawa ang Nginx na naka-install.

Hakbang 7: Suriin natin kung naka-install ang Nginx sa aking host machine. Gamitin ang utos sa ibaba:

ps waux | grep nginx

Maaari mong makita sa screenshot sa itaas, na ang iba't ibang mga proseso ng id 3555 at 103316 ay tumatakbo na tinitiyak na tumatakbo ang Nginx sa iyong mga host machine.

Binabati kita! Matagumpay mong na-deploy ang Nginx sa iyong host gamit ang Ansible playbooks. Inaasahan kong nasiyahan ka sa pagbabasa ng Ansible Tutorial blog na ito. Mangyaring ipaalam sa akin kung mayroon kang anumang mga query sa seksyon ng komento sa ibaba.

Kung nahanap mo ito Hindi Mahusay na Tutorial 'Nauugnay, tingnan ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo. Ang kurso sa Edureka DevOps Certification Training ay tumutulong sa mga nag-aaral na makakuha ng kadalubhasaan sa iba't ibang mga proseso at tool ng DevOps tulad ng Puppet, Jenkins, Ansible, Nagios at Git para sa pag-automate ng maraming mga hakbang sa SDLC.