“Ansible” -de statiki we dinamiki inwentarlary nädip ulanmaly - 4-nji bölüm


“Ansible” seriýasynyň 4-nji bölüminde, “Ansible” -de ýer eýeleriniň toparlaryny kesgitlemek üçin statiki we dinamiki inwentarlary nädip ulanmalydygyny düşündireris.

“Ansible” dolandyrylýan düwünler tarapyndan dolandyrylýan “Ansible”, dolandyrylýan hostlar ýa-da serwerlerde düşündirilişi ýaly host inwentar faýlynda kesgitlenilýär. Baş sahypa inwentar faýly, dolandyrylýan hostlaryň ýa-da uzak serwerleriň atlaryndan ýa-da IP adreslerinden ybarat tekst faýlydyr.

Dolandyrylýan öý eýeleri ýa-da aýratyn ýazgylar hökmünde görkezilip bilner ýa-da soň görşümiz ýaly topar ady boýunça toparlara bölünip bilner. “Ansible” -de inwentar faýllaryň iki görnüşi bar: Statik we dinamiki.

Geliň, bularyň hersine göz aýlalyň we olary nädip dolandyryp biljekdigimizi göreliň. Häzirlikçe, Dolandyryş düwüniňizde Ansible-i gurnadyňyz we dolandyrylýan öý eýeleriňize parolsyz SSH birikmesini sazladyňyz öýdýäris.

“Ansible” -de statiki inwentar faýly, host atlary ýa-da IP adresleri ulanyp, kabul ediji topar tarapyndan yglan edilen dolandyrylýan hostlaryň sanawyny öz içine alýan ýönekeý tekst faýlydyr.

Hoster eýesi toparynyň ady kwadrat ýaýyň içinde ýerleşýär, ýagny [toparyň ady] . Dolandyrylýan host ýazgylary soňra toparyň adynyň aşagynda, hersiniň öz setirinde görkezilýär. Öň ara alnyp maslahatlaşylyşy ýaly, öý eýeleriniň atlary ýa-da IP adresleri ulanylýar.

[group name]

Host A ip_address 
Host B ip_address
Host c ip_address

Mysal üçin, statiki inwentar faýly dörederis.

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

[database_servers]
173.82.220.239

[datacenter:children]
webservers
database_servers

Faýly ýazdyryň we çykyň.

Aboveokardaky inwentar faýldan görşüňiz ýaly 2 sany esasy topar döretdik: web serwerleri we database_servers. Mundan başga-da, ýokarda görkezilişi ýaly : çagalar goşulmasy bilen görkezilen kabul ediji toparlaryň toparyny öz içine alýan datacenter atly goşmaça topar döretdik.

Ansible, şeýle hem ýer eýeleriniň toparlarynyň adyna ýerleşdirilmegine mümkinçilik berýär. Aboveokardaky inwentar faýlynda web serwerleri we database_servers toparlary maglumat merkeziniň aşagyna ýerleşdirildi.

BELLIK: Dolandyrylan öý eýelerini kabul ediji topara ýerleşdirmek hökmany däl. Mysal üçin, olaryň atlaryny ýa-da IP adreslerini ulanyp sanap bilersiňiz.

173.82.202.239
172.82.115.165
load_balancer.pnl.com

Indi öý eýesiniň inwentar faýlyna salgylanmak üçin birnäçe Ansible buýruklaryny ulanalyň. Inwentar dolandyryşy üçin esasy sintaksis görkezilişi ýaly.

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

Mysal üçin,

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

Ativea-da bolmasa, 'all' argumentini çalyşmak üçin, wikard kartoçkasyny * ulanyp bilersiňiz.

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

Öý eýelerini bir toparda görkezmek üçin, öý eýesiniň toparyny host-nagyş ýerine görkeziň.

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

Konfigurasiýada - esasanam AWS ýaly bulut sazlamasy, serwer goşanyňyzda ýa-da çykarylanda inwentar faýly yzygiderli üýtgeýär, inwentar faýlynda kesgitlenen ýer eýelerinde bellikleri saklamak hakyky kynçylyga öwrülýär. Baş sahypa faýlyna gaýdyp, IP salgylary bilen ýer eýeleriniň sanawyny täzelemek amatsyz bolýar.

Ine, dinamiki inwentar oýnalýar. Onda dinamiki inwentar näme? Dinamiki inwentar Python, PHP ýa-da başga bir programma dilinde ýazylan skriptdir. Wirtual serwer togtadylandan we täzeden işe başlansoň, IP adresleri üýtgeýän AWS ýaly bulut şertlerinde amatly bolýar.

Ansible, Google Compute Motor, Amazon EC2 mysal, OpenStack, RackSpace, kobbler ýaly köpçülikleýin bulut platformalary üçin inwentar skriptleri taýýarlady.

  • Dinamiki inwentarlar, skriptler arkaly maglumat ýygnalýandygy sebäpli adam ýalňyşlygyny azaltmak üçin ajaýyp iş edýär.
  • Inwentarlary dolandyrmak üçin iň az tagalla gerek.

Özbaşdak düzülen dinamiki inwentarlary islän programma diliňizde ýazyp bilersiňiz. Inwentar, degişli wariantlar kabul edilende JSON-da bir formaty yzyna gaýtarmaly.

Dinamiki inwentar döretmek üçin ulanylýan skript, Ansible ulanyp biler ýaly ýerine ýetirilmeli.

Dinamiki inwentar skriptiň içinde ýer eýeleri barada maglumat almak üçin işlediň.

# ./script --list 

Öň bellenip geçilişi ýaly, çykyş aşakdaky formatda JSON-da bolmaly.

  • Her topara dolandyrylýan ýer eýeleriniň sanawy
  • Üýtgeýjileriň sözlügi

  • Host we hostwars

{
  "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": {}
    }
  }
}

Bu makalada statiki we dinamiki inwentarlary nädip döretmelidigini görkezdik. Gysgaça aýtsak, statiki inwentar faýly dolandyrylýan ýer eýeleriniň sanawyny ýa-da sanlary we IP adresleri diýseň hemişelik bolýan ýönekeý tekst faýlydyr.

Başga bir tarapdan, täze hostlary goşanyňyzda ýa-da köne faýllary aýyranyňyzda dinamiki host faýly üýtgeýär. Täze host ulgamlaryny duruzyp başlanyňyzda öý eýeleriniň IP adresleri hem dinamiki. Bu gollanmany maglumatly tapdyňyz diýip umyt edýäris.