Kaip naudoti statines ir dinamines atsargas - 4 dalis


Šioje „Ansible“ serijos 4 dalyje paaiškinsime, kaip naudoti statinį ir dinaminį inventorių apibrėžiant „Ansible“ pagrindinio kompiuterio grupes.

„Ansible“ valdomi pagrindiniai kompiuteriai arba serveriai, kuriuos valdo „Ansible“ valdymo mazgas, yra apibrėžti pagrindinio kompiuterio inventoriaus faile, kaip paaiškinta. Pagrindinio kompiuterio inventoriaus failas yra tekstinis failas, kurį sudaro valdomų kompiuterių ar nuotolinių serverių pagrindinių kompiuterių pavadinimai arba IP adresai.

Tvarkomi pagrindiniai kompiuteriai gali būti išvardyti kaip atskiri įrašai arba suskirstyti pagal grupės pavadinimą, kaip vėliau pamatysime. Skiltyje „Ansible“ yra dviejų tipų atsargų failai: statiniai ir dinaminiai.

Pažvelkime į kiekvieną iš jų ir pažiūrėkime, kaip mes galime juos valdyti. Dabar manome, kad jau esate įdiegę „Ansible“ savo valdymo mazge ir sukonfigūravote SSH ryšį be slaptažodžių su savo valdomaisiais kompiuteriais.

Programoje „Ansible“ statinis aprašo failas yra paprasto teksto failas, kuriame yra valdomų kompiuterių, paskelbtų pagal pagrindinių kompiuterių grupę, sąrašas, naudojant pagrindinio kompiuterio vardus arba IP adresus.

Pagrindinės grupės pavadinimas pateikiamas laužtiniuose skliaustuose, t. Y. [group name] . Tvarkomi pagrindinio kompiuterio įrašai vėliau pateikiami po grupės pavadinimu, kiekvienas savo eilutėje. Kaip jau buvo aptarta anksčiau, pagrindiniai kompiuteriai išvardyti naudojant pagrindinius kompiuterių pavadinimus arba IP adresus.

[group name]

Host A ip_address 
Host B ip_address
Host c ip_address

Norėdami iliustruoti, sukursime statinį inventoriaus failą.

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

[database_servers]
173.82.220.239

[datacenter:children]
webservers
database_servers

Išsaugokite failą ir išeikite.

Kaip matote aukščiau esančiame inventoriaus faile, mes sukūrėme 2 pagrindines grupes: žiniatinklio serverius ir duomenų bazių serverius. Be to, mes sukūrėme papildomą grupę, vadinamą duomenų centru, į kurią įeina pagrindinių grupių grupė, pažymėta : children priesaga, kaip matyti aukščiau.

Be to, „Ansible“ leidžia šeimininkų grupėms priskirti grupės pavadinimą. Aukščiau esančiame inventoriaus faile žiniatinklio serveriai ir duomenų bazių serverių grupės buvo patalpintos po duomenų centru.

PASTABA: Privaloma dėti valdomus pagrindinius kompiuterius į priimančiųjų grupę. Galite tiesiog juos išvardyti, naudodami, pavyzdžiui, jų prieglobos pavadinimus arba IP adresus.

173.82.202.239
172.82.115.165
load_balancer.pnl.com

Dabar naudokime keletą „Ansible“ komandų nurodydami pagrindinio kompiuterio inventoriaus failą. Pagrindinė atsargų valdymo sintaksė yra tokia, kaip parodyta.

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

Pavyzdžiui,

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

Arba galite naudoti pakaitos simbolį * , kad pakeistumėte argumentą ‘all’ .

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

Norėdami įtraukti pagrindinius kompiuterius į grupę, pagrindinio kompiuterio šablone nurodykite pagrindinę grupę.

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

Konfigūracijoje - ypač debesų sąrankoje, tokioje kaip AWS, kur atsargų failas nuolat keičiasi, kai pridedate arba nutraukiate serverius, atsarginių failų apibrėžtų kompiuterių skirtukų laikymas tampa tikru iššūkiu. Grįžti prie pagrindinio failo ir atnaujinti kompiuterių sąrašą su jų IP adresais tampa nepatogu.

Čia reikia žaisti dinamišką inventorių. Taigi, kas yra dinaminė inventorizacija? Dinaminis aprašas yra scenarijus, parašytas Python, PHP ar bet kuria kita programavimo kalba. Tai praverčia debesų aplinkose, tokiose kaip AWS, kai IP adresai keičiasi, kai virtualus serveris yra sustabdytas ir paleistas iš naujo.

„Ansible“ jau yra sukūręs viešųjų debesų platformų, tokių kaip „Google Compute Engine“, „Amazon EC2“, „OpenStack“, „RackSpace“, „cobbler“, inventoriaus scenarijus.

  • Dinaminės atsargos puikiai padeda sumažinti žmogaus klaidas, nes informacija renkama naudojant scenarijus.
  • Tvarkant atsargas reikalingos minimalios pastangos.

Galite parašyti savo pritaikytą dinaminį aprašą pasirinkta programavimo kalba. Kai tinkamos parinktys bus pateiktos, aprašas turėtų pateikti formatą JSON.

Scenarijus, naudojamas kuriant dinaminę aprašą, turi būti vykdomas, kad „Ansible“ galėtų jį naudoti.

Paprasčiausiai paleiskite, jei norite gauti informacijos apie dinaminio inventoriaus scenarijaus pagrindinius kompiuterius.

# ./script --list 

Kaip minėta anksčiau, išvestis turėtų būti JSON formatu žemiau.

  • Valdomų pagrindinių kompiuterių sąrašas kiekvienoje grupėje
  • Kintamųjų žodynas

  • Šeimininkai ir šeimininkai

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

Šiame straipsnyje mes parodėme, kaip sukurti tiek statines, tiek dinamines atsargas. Apibendrinant galima pasakyti, kad statinis inventoriaus failas yra paprasto teksto failas, kuriame yra valdomų kompiuterių ar nuotolinių mazgų, kurių numeriai ir IP adresai išlieka gana pastovūs, sąrašas.

Kita vertus, dinaminis pagrindinio failo failas nuolat keičiasi, kai pridedate naujus pagrindinius kompiuterius arba nutraukiate senus. Pagrindiniai kompiuterių IP adresai taip pat yra dinamiški, kai sustabdote ir paleidžiate naujas pagrindines sistemas. Tikimės, kad šią pamoką radote informatyviai.