Fahamu Vipengele vya Msingi vya Ansible - Sehemu ya 1


Mtihani wa Mtaalamu Aliyeidhinishwa na Kofia Nyekundu katika Ansible Automation mtihani (EX407) ni mpango mpya wa uidhinishaji na Red Hat ambao hujaribu ujuzi wako wa kutumia Ansible kusanidi usanidi wa mifumo na programu kiotomatiki.

Mfululizo huu utaitwa Mtaalamu Aliyeidhinishwa na Kofia Nyekundu katika mtihani wa Ansible Automation (EX407) na unashughulikia malengo yafuatayo ya mtihani kulingana na Red Hat Enterprise Linux 7.5 na Ansible 2.7, ambayo tutashughulikia katika mfululizo huu wa Ansible:

Ili kuona ada na kujiandikisha kwa ajili ya mtihani katika nchi yako, angalia ukurasa wa mtihani wa Ansible Automation.

Katika Sehemu hii ya 1 ya mfululizo wa Ansible, tutajadili muhtasari wa kimsingi wa vipengele vya msingi katika Ansible.

Ansible ni jukwaa la otomatiki la bure na huria la RedHat ambalo hukuwezesha kudhibiti na kudhibiti seva nyingi kutoka eneo moja la kati. Inafaa hasa wakati una kazi nyingi na zinazorudiwa ambazo zinahitaji kufanywa. Kwa hivyo badala ya kuingia katika kila moja ya nodi hizi za mbali na kutekeleza majukumu yako, unaweza kufanya hivyo kwa raha kutoka eneo la kati na kudhibiti seva zako kwa raha.

Hii ni ya manufaa unapotaka kudumisha uthabiti katika utumaji wa programu, kupunguza makosa ya kibinadamu na kujiendesha kiotomatiki na kujirudiarudia na kwa kiasi fulani kazi za kawaida.

Kwa kweli, kuna njia mbadala za Ansible kama vile Puppet, Chef, na Chumvi. Walakini, Ansible inapendekezwa zaidi kwa sababu ni rahisi kutumia na rahisi kujifunza.

Kwa nini ni rahisi kujifunza unaweza kuuliza? Hii ni kwa sababu Ansible hutumia YAML (Lugha Nyingine Bado) katika usanidi wake na kazi za kiotomatiki ambazo zinaweza kusomeka na binadamu na rahisi kufuata. YAML hutumia itifaki ya SSH kuwasiliana na seva za mbali, tofauti na mifumo mingine ya otomatiki ambayo inahitaji usakinishe wakala kwenye nodi za mbali ili kuwasiliana nazo.

Kabla hatujaanza na Ansible, ni muhimu kwamba ufahamu baadhi ya istilahi za kimsingi ili usipotee au kuchanganyikiwa tunaposonga mbele.

Orodha ni faili ya maandishi ambayo ina orodha ya seva au nodi ambazo unasimamia na kusanidi. Kawaida, seva zimeorodheshwa kulingana na majina yao ya mwenyeji au anwani za IP.

Faili ya hesabu inaweza kuwa na mifumo ya mbali iliyofafanuliwa na anwani zao za IP kama inavyoonyeshwa:

10.200.50.50
10.200.50.51
10.200.50.52

Vinginevyo, wanaweza kuorodheshwa kulingana na vikundi. Katika mfano hapa chini, tuna seva zilizowekwa chini ya vikundi 2 - seva za wavuti na hifadhidata. Kwa njia hii wanaweza kurejelewa kulingana na majina ya vikundi vyao na sio anwani zao za IP. Hii hurahisisha zaidi michakato ya uendeshaji.

[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71

Unaweza kuwa na vikundi vingi vilivyo na seva nyingi ikiwa uko katika mazingira makubwa ya uzalishaji.

Kitabu cha kucheza ni seti ya hati za udhibiti wa usanidi ambazo hufafanua jinsi kazi zinapaswa kutekelezwa kwenye wapangishi wa mbali au kikundi cha mashine za seva pangishi. Maandishi au maagizo yameandikwa katika umbizo la YAML.

Kwa mfano, unaweza kuwa na faili ya kitabu cha kucheza ili kusakinisha Apache webserver kwenye CentOS 7 na kuiita httpd.yml.

Ili kuunda kitabu cha kucheza endesha amri.

$ touch playbook_name.yml

Kwa mfano kuunda kitabu cha kucheza kinachoitwa httpd, endesha amri.

$ touch httpd.yml

Faili ya YAML huanza na vistari 3 kama inavyoonyeshwa. Ndani ya faili, ongeza maagizo yafuatayo.

---
- name: This installs and starts Apache webserver
  hosts: webservers

  tasks:
  - name: Install Apache Webserver 
    yum:   name=httpd  state=latest

 - name: check httpd status
    service:   name=httpd  state=started

Kitabu cha kucheza kilicho hapo juu husakinisha seva ya wavuti ya Apache kwenye mifumo ya mbali inayofafanuliwa kama seva za wavuti kwenye faili ya hesabu. Baada ya usakinishaji wa seva ya wavuti, Ansible baadaye hukagua ikiwa seva ya wavuti ya Apache imeanzishwa na inafanya kazi.

Module ni vitengo tofauti vya msimbo unaotumiwa katika vitabu vya kucheza kwa kutekeleza amri kwenye seva pangishi au seva za mbali. Kila moduli inafuatwa na hoja.

Umbizo la msingi la moduli ni muhimu: thamani.

- name: Install apache packages 
    yum:   name=httpd  state=present

Katika kijisehemu cha msimbo wa YAML hapo juu, -name na yum ni moduli.

Mchezo unaoeleweka ni hati au maagizo ambayo yanafafanua kazi inayopaswa kufanywa kwenye seva. Mkusanyiko wa michezo ya kuigiza ni kitabu cha kucheza. Kwa maneno mengine, kitabu cha kucheza ni mkusanyiko wa michezo mingi, ambayo kila moja inabainisha wazi kazi ya kutekelezwa kwenye seva. Michezo ipo katika umbizo la YAML.

Ikiwa una historia katika programu, basi uwezekano mkubwa umetumia vigezo. Kimsingi, kigezo kinawakilisha thamani. Kigezo kinaweza kujumuisha herufi, nambari, na mistari lakini LAZIMA kianze na herufi kila wakati.

Vigezo hutumiwa wakati maagizo yanatofautiana kutoka kwa mfumo mmoja hadi mwingine. Hii ni kweli hasa wakati wa usanidi au huduma na vipengele mbalimbali.

Kuna aina 3 kuu za vigezo:

  • Vigeu vya kitabu cha kucheza
  • Vigezo vya hesabu
  • Vigezo maalum

Katika Ansible, vigezo hufafanuliwa kwanza kwa kutumia vars k, kisha kufuatiwa na jina la kutofautiana na thamani.

Syntax ni kama inavyoonyeshwa:

vars:
Var name1: ‘My first variable’
	Var name2:  ‘My second variable’

Zingatia nambari iliyo hapa chini.

- hosts: webservers
  vars: 
    - web_directory:/var/www/html/

Katika mfano hapo juu, kutofautisha hapa ni web_directory na inaamuru iweze kuunda saraka kwenye /var/www/html/ path.

Ukweli ni sifa za mfumo zilizokusanywa na Ansible inapotekeleza kitabu cha kucheza kwenye mfumo wa mwenyeji. Sifa hizo ni pamoja na jina la mpangishaji, familia ya OS, aina ya CPU na viini vya CPU kutaja chache.

Ili kuwa na muhtasari wa idadi ya ukweli unaopatikana kwa matumizi toa amri.

$ ansible localhost -m setup

Kama unaweza kuona, idadi kubwa ya ukweli imeonyeshwa kwa chaguo-msingi. Unaweza kupunguza zaidi matokeo kwa kutumia kigezo cha kichungi kama inavyoonyeshwa.

$ ansible localhost -m setup -a "filter=*ipv4"

Katika Ansible, faili ya usanidi ni faili ambayo ina mipangilio tofauti ya parameta ambayo huamua jinsi Ansible inavyofanya kazi. Faili ya usanidi chaguo-msingi ni faili ya ansible.cfg iliyoko kwenye saraka /etc/ansible/.

Unaweza kutazama faili ya usanidi kwa kuendesha:

$ cat /etc/ansible/ansible.cfg

Kama unavyoona, vigezo kadhaa vimejumuishwa kama vile njia za hesabu na faili za maktaba, mtumiaji wa sudo, vichujio vya programu-jalizi, moduli, n.k. Vigezo hivi vinaweza kurekebishwa kwa kuvitolea maoni na kurekebisha thamani zilizomo.

Zaidi ya hayo, unaweza kuwa na faili nyingi za usanidi zinazofanya kazi na Ansible kando na faili yako ya usanidi chaguo-msingi.

Baada ya kuangalia vipengele vya msingi katika Ansible, tunatumai uko katika nafasi ya kuviweka kiganjani mwako na kuvichagua tunaposonga mbele. Jiunge nasi kwenye mada yako inayofuata.