Saltstack formulas használata

Fórumok

Sehogy sem sikerül használni a salt formulas-t, konkrét esetben az LXD-Formula-t:
https://github.com/saltstack-formulas/lxd-formula

Ahogy írja, bemásoltam a _modules, _states és lxd mappákat a /srv/salt/ mappába, a master.conf-ba pedig be van állítva:
file_roots:
base:
- /srv/salt

Ettől a helyzettől nem sikerült előrébb lépjek.
Van 1 távoli minion (hv01), amire telepítve van az LXD, evvel kommunikál, és erre a gépre kell telepítsek konténereket, és ezt nem sikerül összehozni.

Ha jól sejtem a megfelelő helyen, megfelelő tartalommal létre kellene hozzak a pillar fájlt, és egy states file-t a /srv/salt-mappában, amivel egy adott gépre telepítek egy konténert.

A pillar rész be van állítva a master.conf-ban:
pillar_roots:
base:
- /srv/pillar

Ki tudna valaki segíteni a hiányzó két infóval:
- hova kell tenni a pillar fájlt, milyen tartalommal
- mi kell szerepeljen a pl /srv/salt/srvtelepites/init.sls fájlban, hogy a salt hv01 state.sls srvtelepitese parancs futtatásával települjön nekem egy konténer a hv01 gépre.

Hozzászólások

Up.
Ennyire gagyi vagy ennyire haladó a kérdés?
Vagy senki nem használ Salt-ot?

Sajnos a konténeres részhez (lxd-formula) nem tudok hozzászólni, mivel sose használtam/írtam salthoz kiegészítő modulokat. Viszont a leírásodból az fogalmazódik meg bennem, hogy nem is ezzel, hanem a salt használatával lehet gondod. Tehát amennyiben feltételezzük, hogy az lxd formula telepítése sikeres volt, akkor az alábbiakon kell elgondolkodnod:

Az srv/pillar mappában létre kell hoznod egy top.sls fájlt. Ebbe fogod lerakni a szenzitív adatokat (beállítandó felhasználónevek, jelszavak, stb...). Ezek általában egyediek kellenek, hogy legyenek. Mivel úgy mist most teszt környezetben vagy, ez utóbbit hagyd és rakd egybe az egészet, valahogy így:


base:
  '*':
   - sdata

Utána létrehozod a hivatkozott sdata.sls-t:


username: akarki
password: akarmi
id: valami

Ezek kulcs-érték párok. Hogy milyen kulcsokra és értékekre lesz szükséged, az java részt tőled, kis részben meg az lxd-formulától fog függeni (nem tudom előír/ajánl-e valamilyen értékeket, de mivel kérdeztél a pillar-ról, így feltételezem, hogy megteszi - Update: Közben megnéztem, egész jó pillar példát ad, amiben minden értelmesnek tűnő opció benne van). Az így létrehozott adatokra később kulcs alapján a {{ pillar['kulcsnév'] }} formában fogsz tudni hivatkozni.

Mivel egy egyszerű tesz környezetről beszélünk, én javaslom a tisztább átláthatóság érdekében egyelőre töröld az srvtelepites mappádat tartalmával együtt. Egyszerűen hozd létre a /srv/salt/srvtelepites.sls-t, és a továbbiakban azzal dolgozzál. Az általad használt változat akkor hasznos, ha több fájlra szét akarod bontani a sémát a könnyebb karbantarthatóság miatt (erre mondjuk később biztos szükséged lesz). Ebbe az sls-ben gyakorlatilag az általuk adott minimál konfigot használhatod is:


lxd:
  lxd:
    run_init: True

    init:
      trust_password: "PaSsW0rD"
      network_address: "[::]"
      network_port: "8443"

  python:
    use_pip: True

(Forrás: https://github.com/saltstack-formulas/lxd-formula/blob/master/README.rst)

A végén még létrehozhatod a /srv/salt/top.sls fájlt:


  '*':
    - srvtelepites

Így highstate hívás esetén az összes minionon lefut az srvtelepites.

Az érzékeny adatokat még érdemes lecserélni pillarra, aztán a többit már hozzá tudod hegeszteni. Egyben javaslom, hogy egy általános salt tutorialt néz át előbb, hogy tudd mit csinálsz (https://docs.saltstack.com/en/latest/topics/states/index.html)

(Megjegyzés: szóközökre figyelni. Python betegség, hogy a szóközök/tabok száma adja a logikai szintet. Viszont, mivel itt nincs autocompletter, valószínűleg hibásak a behúzások a példáimban.)

Zavard össze a világot: mosolyogj hétfőn.