Kif tuża l-inventarji statiċi u dinamiċi f'Ansible - Parti 4


F'din il-Parti 4 tas-Serje Ansible, se nispjegaw kif tuża inventarju statiku u dinamiku biex tiddefinixxi gruppi ta 'hosts f'Ansible.

F'Ansible, hosts ġestiti jew servers li huma kkontrollati min-node ta' kontroll Ansible huma definiti f'fajl tal-inventarju tal-host kif spjegat fi. Fajl tal-inventarju tal-host huwa fajl ta' test li jikkonsisti f'ismijiet tal-hosts jew indirizzi IP ta' hosts ġestiti jew servers remoti.

Hosts immaniġġjati jistgħu jew jiġu elenkati bħala entrati individwali jew kategorizzati taħt isem ta 'grupp kif se naraw aktar tard. F'Ansible, hemm żewġ tipi ta 'fajls ta' inventarju: Statiċi u Dinatiċi.

Ejja nagħtu ħarsa lejn kull waħda minn dawn u naraw kif nistgħu namministrawhom. Sa issa, nassumu li diġà installajt Ansible fuq in-node tal-Kontroll tiegħek, u kkonfigurajt il-konnessjoni SSH mingħajr Password għall-hosts ġestiti tiegħek.

F'Ansible, fajl ta 'inventarju statiku huwa fajl ta' test sempliċi li fih lista ta 'hosts ġestiti ddikjarati taħt grupp ospitanti li juża jew ismijiet ta' host jew indirizzi IP.

Isem tal-grupp ospitanti huwa magħluq fil-parentesi kwadri jiġifieri [isem tal-grupp]. L-entrati tal-host amministrati huma aktar tard elenkati taħt l-isem tal-grupp, kull wieħed fuq il-linja tiegħu. Kif diskuss qabel, l-ospiti huma elenkati bl-użu jew l-ismijiet tal-host jew l-indirizzi IP.

[group name]

Host A ip_address 
Host B ip_address
Host c ip_address

Għal skopijiet ta' illustrazzjoni, aħna se noħolqu fajl ta' inventarju statiku.

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

[database_servers]
173.82.220.239

[datacenter:children]
webservers
database_servers

Issejvja l-fajl u oħroġ.

Kif tistgħu taraw fil-fajl tal-inventarju hawn fuq, ħloqna 2 gruppi ospitanti: webservers u database_servers. Ukoll, ħloqna grupp addizzjonali msejjaħ datacenter li jinkludi grupp ta' gruppi ospitanti indikati b': children suffiss kif jidher hawn fuq.

Ansible jippermetti wkoll li gruppi ta 'hosts jitqiegħdu taħt isem ta' grupp. Fil-fajl tal-inventarju t'hawn fuq, il-gruppi tal-webservers u database_servers tqiegħdu taħt id-datacenter.

NOTA: Mhuwiex obbligatorju li jitqiegħdu hosts amministrati fi grupp ospitanti. Tista 'sempliċement telenkahom billi tuża l-hostnames jew l-indirizzi IP tagħhom pereżempju.

173.82.202.239
172.82.115.165
load_balancer.pnl.com

Ejja issa nużaw ftit kmandijiet Ansible biex nirreferenzjaw il-fajl tal-inventarju ospitanti. Is-sintassi bażika għall-ġestjoni tal-inventarju hija kif murija.

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

Pereżempju,

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

Alternattivament, tista’ tuża l-karattru wildcard * biex tissostitwixxi l-argument ‘koll’.

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

Biex telenka l-ospiti fi grupp, speċifika l-grupp ospitanti fil-post tal-mudell tal-ospitanti.

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

F'konfigurazzjoni - speċjalment setup ta 'sħab bħal AWS fejn il-fajl tal-inventarju jibqa' jinbidel kontinwament hekk kif iżżid jew tiddekummissjona servers, iż-żamma ta' tabs fuq l-ospiti definiti fil-fajl tal-inventarju ssir sfida reali. Isir inkonvenjenti li tmur lura għall-fajl ospitanti u taġġorna l-lista ta 'hosts bl-indirizzi IP tagħhom.

U dan huwa fejn jidħol inventarju dinamiku. Allura x'inhu inventarju dinamiku? Inventarju dinamiku huwa skript miktub f'Python, PHP jew kwalunkwe lingwa ta 'programmar oħra. Jiġi utli f'ambjenti sħab bħal AWS fejn l-indirizzi IP jinbidlu ladarba server virtwali jitwaqqaf u jerġa' jinbeda.

Ansible diġà żviluppa skripts ta 'inventarju għal pjattaformi ta' sħab pubbliku bħal Google Compute Engine, Amazon EC2 instance, OpenStack, RackSpace, cobbler, fost oħrajn.

  • L-inventarji dinamiċi jagħmlu xogħol perfett biex inaqqsu l-iżball uman hekk kif l-informazzjoni tinġabar permezz ta' skripts.
  • Sforz minimu huwa meħtieġ fil-ġestjoni tal-inventarji.

Tista 'tikteb l-inventarju dinamiku customize tiegħek f'lingwa ta' programmar tal-għażla tiegħek. L-inventarju għandu jirritorna format f'JSON meta jgħaddu għażliet xierqa.

Skript li jintuża biex jinħoloq inventarju dinamiku għandu jsir eżekutibbli sabiex Ansible ikun jista' jużah.

Biex tkun irkuprata informazzjoni dwar l-ospiti ġewwa skript ta 'inventarju dinamiku sempliċiment run.

# ./script --list 

Kif indikat qabel, l-output għandu jkun f'JSON fil-format hawn taħt.

  • Lista ta' hosts ġestiti għal kull grupp
  • Dizzjunarju ta' varjabbli

  • Hosts u hostvars

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

F'dan l-artikolu, wrejna kif noħolqu inventarji kemm statiċi kif ukoll dinamiċi. Fil-qosor, fajl ta 'inventarju statiku huwa fajl ta' test sempliċi li fih lista ta 'hosts ġestiti jew nodi remoti li n-numri u l-indirizzi IP tagħhom jibqgħu pjuttost kostanti.

Min-naħa l-oħra, fajl ospitanti dinamiku jibqa' jinbidel hekk kif iżżid hosts ġodda jew iddekummissjona dawk qodma. L-indirizzi IP tal-ospiti huma wkoll dinamiċi hekk kif tieqaf u tibda sistemi ospitanti ġodda. Nittamaw li sibt dan it-tutorja informattiv.