Staattisten ja dynaamisten inventaarioiden käyttäminen mahdollisuuksissa - osa 4


Tässä Ansible-sarjan tässä osassa 4 kerrotaan, kuinka staattisen ja dynaamisen mainosjakauman avulla määritetään isäntäryhmät Ansible-palvelussa.

Ansible-sovelluksessa hallitut isännät tai palvelimet, joita Ansible-ohjaussolmu ohjaa, määritellään isäntätunnistetiedostossa, kuten on selitetty.

Hallitut isännät voidaan joko listata yksittäisinä merkintöinä tai luokitella ryhmän nimen alle, kuten myöhemmin näemme. Ansible-ohjelmassa on kahdenlaisia inventaariotiedostoja: Staattinen ja Dynaaminen.

Katsotaanpa jokainen näistä ja miten voimme hallita niitä. Tähän mennessä oletamme, että olet jo asentanut Ansible-ohjaussolmuun ja määrittänyt salasanattoman SSH-yhteyden hallittuihin isäntiin.

Ansible-sovelluksessa staattinen varastotiedosto on pelkkää tekstiä sisältävä tiedosto, joka sisältää luettelon hallinnoiduista isännistä, jotka on ilmoitettu isäntäryhmään joko isäntänimien tai IP-osoitteiden avulla.

Isäntäryhmän nimi on suljettu hakasulkeissa, ts. [ryhmän nimi] . Hallitut isäntämerkinnät luetellaan myöhemmin ryhmän nimen alla, kukin omalla rivillään. Kuten aiemmin keskusteltiin, isännät luetellaan joko isäntänimillä tai IP-osoitteilla.

[group name]

Host A ip_address 
Host B ip_address
Host c ip_address

Havainnollistamista varten luomme staattisen inventaariotiedoston.

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

[database_servers]
173.82.220.239

[datacenter:children]
webservers
database_servers

Tallenna tiedosto ja poistu.

Kuten yllä olevasta varastotiedostosta näet, olemme luoneet 2 isäntäryhmää: verkkopalvelimet ja tietokantapalvelimet. Olemme myös luoneet ylimääräisen ryhmän nimeltä datakeskus, joka sisältää ryhmän isäntäryhmiä, jotka on merkitty : children -liitteellä, kuten yllä on esitetty.

Ansible mahdollistaa myös isäntäryhmien sijoittamisen ryhmän nimen alle. Yllä olevassa luettelotiedostossa verkkopalvelimet ja tietokantapalvelinten ryhmät on sijoitettu datakeskuksen alle.

HUOMAUTUS: Hallittujen isäntien sijoittaminen isäntäryhmään ei ole pakollista. Voit yksinkertaisesti luetteloida ne käyttämällä esimerkiksi isäntänimiä tai IP-osoitteitaan.

173.82.202.239
172.82.115.165
load_balancer.pnl.com

Käytetään nyt muutamia Ansible-komentoja viittaamaan isäntälistatiedostoon. Varastonhallinnan perussyntaksi on esitetty.

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

Esimerkiksi,

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

Vaihtoehtoisesti voit käyttää jokerimerkkiä * korvaamaan ‘all’ -argumentin.

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

Jos haluat luetella isäntiä ryhmässä, määritä isäntäryhmä isäntäkuvion paikalle.

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

Kokoonpanossa - etenkin pilviasennuksissa, kuten AWS: ssä, jossa varastotiedosto muuttuu jatkuvasti, kun lisäät tai poistat palvelimia, välilehtien pitämisestä varastotiedostossa määritetyissä isännissä tulee todellinen haaste. Palaa isäntätiedostoon ja päivittää luettelo isännöistä IP-osoitteineen tulee hankalaksi.

Ja tässä tulee olemaan dynaaminen inventaario. Joten mikä on dynaaminen inventaario? Dynaaminen luettelo on komentosarja, joka on kirjoitettu Pythonilla, PHP: llä tai muulla ohjelmointikielellä. Se on kätevä pilviympäristöissä, kuten AWS: ssä, jossa IP-osoitteet muuttuvat, kun virtuaalipalvelin pysäytetään ja käynnistetään uudelleen.

Ansible on jo kehittänyt varaston komentosarjat julkisille pilvialustoille, kuten Google Compute Engine, Amazon EC2 -esiintymä, OpenStack, RackSpace, cobbler.

  • Dynaamiset varastot vähentävät täydellisesti ihmisen virheitä, kun tietoa kerätään komentosarjojen avulla
  • Varastojen hallinnassa vaaditaan vain vähän vaivaa.

Voit kirjoittaa oman räätälöidyn dynaamisen mainosjakauman valitsemallasi ohjelmointikielellä. Luettelon tulisi palauttaa muoto JSON-muodossa, kun sopivat vaihtoehdot on annettu.

Dynaamisen mainosjakauman luomiseen käytettävä komentosarja on tehtävä suoritettavaksi, jotta Ansible voi käyttää sitä.

Jos haluat hakea tietoja isäntäkoneista dynaamisen varastosarjan sisällä, suorita vain.

# ./script --list 

Kuten aiemmin todettiin, tuloksen tulisi olla JSON-muodossa alla olevassa muodossa.

  • luettelo hallinnoiduista isännistä ryhmää kohti
  • Muuttujien sanakirja

  • Isännät ja isännät

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

Tässä artikkelissa olemme osoittaneet, kuinka luoda sekä staattisia että dynaamisia varastoja. Yhteenvetona voidaan todeta, että staattinen varastotiedosto on pelkkää tekstiä sisältävä tiedosto, joka sisältää luettelon hallinnoiduista isännistä tai etäisolmuista, joiden numerot ja IP-osoitteet pysyvät melko vakioina.

Toisaalta dynaaminen isäntätiedosto muuttuu jatkuvasti, kun lisäät uusia isäntiä tai poistat vanhoja. Isäntien IP-osoitteet ovat myös dynaamisia, kun pysäytät ja käynnistät uudet isäntäjärjestelmät. Toivomme, että löysit tämän opetusohjelman informatiiviseksi.