Jinsi ya Kutumia Mali Isiyobadilika na Inayobadilika katika Ansible - Sehemu ya 4


Katika Sehemu hii ya 4 ya Mfululizo Unaostahiki, tutaeleza jinsi ya kutumia orodha tuli na inayobadilika ili kufafanua vikundi vya wapangishi katika Ansible.

Katika seva pangishi Zinazodhibitiwa, zinazodhibitiwa ambazo zinadhibitiwa na nodi ya udhibiti Inayofaa hufafanuliwa katika faili ya orodha ya seva pangishi kama ilivyofafanuliwa. Faili ya orodha ya seva pangishi ni faili ya maandishi ambayo inajumuisha majina ya seva pangishi au anwani za IP za seva pangishi zinazodhibitiwa au seva za mbali.

Wapangishi wanaosimamiwa wanaweza kuorodheshwa kama maingizo binafsi au kuainishwa chini ya jina la kikundi kama tutakavyoona baadaye. Katika Ansible, kuna aina mbili za faili za hesabu: Static na Dynamic.

Hebu tuangalie kila moja ya haya na tuone jinsi tunavyoweza kuyadhibiti. Kufikia sasa, tunadhania kuwa tayari umesakinisha Ansible kwenye nodi yako ya Kudhibiti, na kusanidi muunganisho wa SSH Isiyo na Nenosiri kwa seva pangishi zinazodhibitiwa.

Katika Ansible, faili tuli ya orodha ni faili ya maandishi wazi ambayo ina orodha ya wapangishi wanaodhibitiwa iliyotangazwa chini ya kundi la wapangishaji kwa kutumia majina ya wapangishaji au anwani za IP.

Jina la kikundi cha mwenyeji limefungwa katika mabano ya mraba yaani [jina la kikundi]. Maingizo ya seva pangishi inayodhibitiwa yameorodheshwa baadaye chini ya jina la kikundi, kila moja kwa mstari wake. Kama ilivyojadiliwa hapo awali, wapangishi wameorodheshwa kwa kutumia majina ya mwenyeji au anwani za IP.

[group name]

Host A ip_address 
Host B ip_address
Host c ip_address

Kwa madhumuni ya kielelezo, tutaunda faili tuli ya hesabu.

# mkdir test_lab && cd test_lab
# vim hosts
[webservers]
173.82.115.165

[database_servers]
173.82.220.239

[datacenter:children]
webservers
database_servers

Hifadhi faili na uondoke.

Kama unavyoona katika faili ya hesabu hapo juu, tumeunda vikundi 2 vya waandaji: seva za wavuti na seva_data. Pia, tumeunda kikundi cha ziada kinachoitwa datacenter ambacho kinajumuisha kikundi cha vikundi vya seva pangishi kinachobainishwa na kiambishi tamati : watoto kama inavyoonekana hapo juu.

Ansible pia inaruhusu vikundi vya wapangishi kuwekwa chini ya jina la kikundi. Katika faili ya hesabu hapo juu, seva za wavuti na vikundi vya seva_data vimewekwa chini ya kituo cha data.

KUMBUKA: Si lazima kuweka wapangishi wanaosimamiwa katika kikundi cha waandaji. Unaweza kuorodhesha kwa urahisi kwa kutumia majina yao ya mwenyeji au anwani za IP kwa mfano.

173.82.202.239
172.82.115.165
load_balancer.pnl.com

Wacha sasa tutumie amri chache Zinazofaa kwa kurejelea faili ya hesabu ya mwenyeji. Sintaksia ya msingi ya usimamizi wa hesabu ni kama inavyoonyeshwa.

$ ansible {host-pattern} -i /path/of/inventory/file --list-hosts

Kwa mfano,

$ ansible all -i /root/test_labs/hosts --list-hosts

Vinginevyo, unaweza kutumia herufi ya wildcard * kubadilisha ‘all’ hoja.

$ ansible * -i /root/test_labs/hosts --list-hosts

Ili kuorodhesha wapangishi katika kikundi, bainisha kundi la seva pangishi badala ya muundo-mwenyeji.

$ ansible webservers -i /root/test_labs/hosts --list-hosts

Katika usanidi - haswa usanidi wa wingu kama vile AWS ambapo faili ya hesabu hubadilika kila wakati unapoongeza au kuondoa seva, kuweka vichupo kwenye seva pangishi zilizofafanuliwa kwenye faili ya hesabu inakuwa changamoto kubwa. Inakuwa tabu kurudi kwenye faili ya seva pangishi na kusasisha orodha ya wapangishaji na anwani zao za IP.

Na hapa ndipo hesabu yenye nguvu inakuja kucheza. Kwa hivyo hesabu inayobadilika ni nini? Hesabu inayobadilika ni hati iliyoandikwa kwa Python, PHP au lugha nyingine yoyote ya programu. Inakuja kwa manufaa katika mazingira ya wingu kama vile AWS ambapo anwani za IP hubadilika mara tu seva pepe inaposimamishwa na kuanza tena.

Ansible tayari imetengeneza hati za hesabu za majukwaa ya wingu ya umma kama vile Google Compute Engine, mfano wa Amazon EC2, OpenStack, RackSpace, cobbler, miongoni mwa zingine.

  • Hifadhi zinazobadilika hufanya kazi nzuri ya kupunguza makosa ya kibinadamu kadri maelezo yanavyokusanywa kwa kutumia hati.
  • Juhudi ndogo inahitajika katika kudhibiti orodha.

Unaweza kuandika hesabu yako mwenyewe inayobadilika kukufaa katika lugha ya programu unayopenda. Orodha inapaswa kurudisha umbizo katika JSON chaguo zinazofaa zinapopitishwa.

Hati inayotumika kuunda orodha inayobadilika lazima itekelezwe ili Ansible iweze kuitumia.

Ili kuepua taarifa kuhusu wapangishi ndani ya hati ya hesabu inayobadilika endesha tu.

# ./script --list 

Kama ilivyoonyeshwa hapo awali, matokeo yanapaswa kuwa katika JSON katika umbizo hapa chini.

  • Orodha ya wapangishi wanaosimamiwa kwa kila kikundi
  • Kamusi ya vigezo

  • Wapangishi na wapangishaji

{
  "webservers": {
    "hosts": [
      "webserver1.example.com",
      "webserver2.example.com"
    ],
    "vars": {}
  },
  "database_servers": {
    "hosts": [
      "mysql_db1",
      "mysql_db2"
    ],
    "vars": {}
  },
  "_meta": {
    "hostvars": {
      "mysql_db2": {},
      "webserver2.example.com": {},
      "webserver1.example.com": {}, 
      "mysql_db1": {}
    }
  }
}

Katika makala hii, tumeonyesha jinsi ya kuunda orodha zote mbili tuli na zenye nguvu. Kwa muhtasari, faili tuli ya hesabu ni faili ya maandishi wazi iliyo na orodha ya wapangishi wanaosimamiwa au nodi za mbali ambazo nambari na anwani za IP hazibadiliki.

Kwa upande mwingine, faili ya seva pangishi inayobadilika inaendelea kubadilika unapoongeza wapangishi wapya au uondoaji wa zamani. Anwani za IP za wapangishi pia hubadilika unaposimama na kuanzisha mifumo mipya ya seva pangishi. Tunatumai kuwa umepata mafunzo haya kuwa ya kuelimisha.