Staatiliste ja dünaamiliste varude kasutamine anonüümsetes - 4. osa


Selles jaotises Ansible Series selgitame, kuidas staatilise ja dünaamilise inventari abil saate hostis rühmad määratleda.

Ansible'is on määratletud hallatavad hostid või serverid, mida kontrollib Ansible juhtimissõlm, hostinventari failis, nagu on selgitatud jaotises. Hostinventari fail on tekstifail, mis koosneb hallatavate hostide või kaugserverite hostinimedest või IP-aadressidest.

Haldatud hoste saab kas üksikute kirjetena loetleda või kategoriseerida rühma nime alla, nagu me hiljem näeme. Rakenduses Ansible on kahte tüüpi varundusfaile: staatiline ja dünaamiline.

Vaatame neid kõiki ja vaatame, kuidas neid hallata. Nüüdseks eeldame, et olete oma juhtimissõlmesse Ansible juba installinud ja oma hallatavate hostidega konfigureerinud paroolivaba SSH-ühenduse.

Rakenduses Ansible on staatiline loendifail lihttekstifail, mis sisaldab loendit haldusrühma alla deklareeritud hallatud hostidest, kasutades selleks hostinimesid või IP-aadresse.

Hosti rühma nimi on lisatud nurksulgudesse, st [group name] . Hallatud hosti kirjed on hiljem rühma nime all loetletud igaüks oma rida. Nagu varem arutletud, on hostid loetletud kas hostinimede või IP-aadresside abil.

[group name]

Host A ip_address 
Host B ip_address
Host c ip_address

Illustreerimiseks loome staatilise inventuuri faili.

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

[database_servers]
173.82.220.239

[datacenter:children]
webservers
database_servers

Salvestage fail ja väljuge.

Nagu näete ülaltoodud varude failis, oleme loonud 2 hostirühma: veebiserverid ja andmebaasi_serverid. Samuti oleme loonud täiendava rühma nimega andmekeskus, mis sisaldab rühma hosti rühmi, mida tähistatakse järjega : children , nagu ülal näha.

Ansible võimaldab hostide rühmad paigutada ka grupi nime alla. Ülalolevas inventeerimisfailis on veebiserverid ja andmebaasi_serverite rühmad paigutatud andmekeskuse alla.

MÄRKUS. Hallatud hostide paigutamine hostigruppi ei ole kohustuslik. Saate need lihtsalt loetleda, kasutades näiteks nende hostinimesid või IP-aadresse.

173.82.202.239
172.82.115.165
load_balancer.pnl.com

Kasutame nüüd hosti varude faili viitamiseks mõnda käsku Ansible. Varude haldamise põhisüntaks on näidatud.

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

Näiteks,

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

Teise võimalusena võite argumenti ‘kõik’ asendada asendusmärgiga * .

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

Grupis olevate hostide loetlemiseks määrake host-mustri asemel hostgrupp.

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

Konfiguratsioonis - eriti pilveseadistuses, näiteks AWS, kus varude fail muutub pidevalt, kui lisate või lõpetate servereid, muutub varundusfailis määratletud hostide vahelehtede hoidmine tõeliseks väljakutseks. Hostifaili naasmine ja hostide loendi värskendamine nende IP-aadressidega muutub ebamugavaks.

Ja siin tuleb mängu dünaamiline inventuur. Mis on dünaamiline inventuur? Dünaamiline inventuur on Pythonis, PHP-s või muus programmeerimiskeeles kirjutatud skript. See on mugav pilvekeskkondades, näiteks AWS, kus IP-aadressid muutuvad, kui virtuaalserver on peatatud ja uuesti käivitatud.

Ansible on juba välja töötanud avalike pilveplatvormide, nagu Google Compute Engine, Amazon EC2 instance, OpenStack, RackSpace, cobbler, inventuuri skriptid.

  • Dünaamilised varud vähendavad suurepäraselt inimlikke eksimusi, kuna skriptide abil kogutakse teavet.
  • Varude haldamisel on vaja teha minimaalseid jõupingutusi.

Dünaamilise loendi saate kohandada enda valitud programmeerimiskeeles. Kui sobivad valikud on edastatud, peaks inventuur tagastama vormingu JSON-is.

Dünaamilise inventari loomiseks kasutatav skript tuleb muuta käivitatavaks, et Ansible seda kasutada saaks.

Dünaamilise inventuuriskripti hosti kohta teabe hankimiseks lihtsalt käivitage.

# ./script --list 

Nagu varem mainitud, peaks väljund olema JSON-is allpool esitatud vormingus.

  • Haldatavate hostide loend rühma kohta
  • Muutujate sõnastik

  • Saatejuhid ja hostvarad

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

Selles artiklis oleme näidanud, kuidas luua nii staatilisi kui ka dünaamilisi varusid. Kokkuvõtteks võib öelda, et staatiline varufail on lihttekstifail, mis sisaldab loendit hallatud hostidest või kaugsõlmedest, mille numbrid ja IP-aadressid jäävad üsna konstantseks.

Teiselt poolt muutub dünaamiline hostifail pidevalt uute hostide lisamisel või vanade kasutusest kõrvaldamisel. Ka hostide IP-aadressid on dünaamilised, kui peatute ja käivitate uued hostisüsteemid. Loodame, et leidsite selle õpetuse informatiivseks.