Lehetséges

Manipuláljon egy lehetséges adattal a Jinja-szűrők segítségével

Manipuláljon egy lehetséges adattal a Jinja-szűrők segítségével

Bizonyos esetekben, amikor az Ansible programot használjuk különféle feladatok automatizálásához, szükség lehet adatok átalakítására és manipulálására. Az Ansible részben beépített szűrők készletét használhatja, vagy egyéni szűrőket hozhat létre az adatok manipulálására, feldolgozására és konvertálására. Az Ansible jinja2 sablonszűrőket használ a háttérben, hogy a felhasználók szűrőket hozzanak létre a megadott adatokhoz.

Fontos megjegyezni, hogy a szűrősablonokat az Ansible vezérlőn hajtják végre, és nem a megadott távoli gazdagépeken. Ez segít csökkenteni a távoli gazdagépre továbbított adatok mennyiségét a helyi feldolgozás után. Ha nem ismeri a jinja sablonokat, a Jinja egy egyszerű, intuitív, gyors és biztonságos sablonnyelv a Python programozási nyelv számára, amelyet a népszerű Python keretrendszer Django sablonjai után fejlesztettek ki.

Nem fogunk belemenni a jinja sablonok működésébe, bár további előnyt jelenthet, ha megértjük, hogyan működik a sablonokkal.

Nézze meg az alábbi forrást, hogy többet tudjon meg Jinjáról.

https: // linkfy.to / jinjaDocs

Hogyan működnek az lehetséges szűrők

Mint említettük, az Ansible szűrőmotor a Jinja sablonmodellre épít. Ez lehetővé teszi a felhasználók számára, hogy ezeket a sablonokat felhasználják az adatok bevitelére, feldolgozására és a megadott szűrők alapján kimenet biztosítására.

Miután az adatokat a meghatározott sablon segítségével átalakította és szűrte, felhasználhatja azokat az Ansible egyéb feladatai elvégzésére. A következő webhelyen többet tudhat meg az Ansible szűrőkről:

https: // linkfy.to / AnsibleFilters

Az Ansible számos szűrővel rendelkezik, amelyek nagyon hasznosak és sokféle forgatókönyvre alkalmazhatók. Miután megvan a szűrő kimenete, felhasználhatja más feladatok végrehajtására, például a hibakeresésre.

Az adatok szűrésének általános szintaxisa a következő:

|

Ansible szűrők használata

Most megvizsgáljuk az Ansible szűrők példáit, amelyekkel különféle feladatokat hajthatunk végre.

JEGYZET: Mint korábban említettük, az Ansible-nek sok szűrője van, ezért ebben a cikkben nem tudjuk lefedni mindet. Ehelyett ez az oktatóanyag a különböző Ansible szűrők használatának alapjait kívánja megismertetni.

1. példa: Lehetséges formátumú adatszűrők

Az Ansible formátumú adatszűrők egy kimeneti adatstruktúrát vesznek fel egy sablonba, és a megadott szűrővel renderelik azt a szűrőben meghívott formátumban.

Az alábbiakban bemutatunk egy példa szűrőt a JSON és YAML konvertálásra:

változó | to_json
változó | to_yaml

Fontolja meg például a következő játékkönyvet:

- hosztok: minden feladat:
- héj: macska / tmp / minden.json
regisztráció: eredmény
- hibakeresés:
msg: "eredmény.stdout | to_nice_yaml

A fenti játékkönyv futtatásával kimenetet kap a JSON-adatok YAML-re konvertálva. A következő példa a kimenetre:

Megadhat más szűrőket is, például to_nice_yaml, hogy a kimenetet ember által olvasható formátumban szerezze be.

változó | to_nice_json
változó | to_nice_yaml

A formázó adatszűrők segítségével az adatokat különféle formátumokká alakíthatja át, és felhasználhatja különféle feladatokhoz.

Például átadhatja a több dokumentumot tartalmazó YAML karakterláncokat, az alábbi játékkönyvben leírtak szerint:

- hosztok: minden feladat:
- héj: macska / tmp / minden.json
regisztráció: eredmény
- hibakeresés:
msg: "eredmény.stdout | to_yaml | lista"

2. példa: Ansible Default Filter

Az Ansible default szűrő segít meghatározatlan változók alapértelmezett értékeinek beállításában. Az alapértelmezett Ansible konfiguráció nem definiált változókat hajt végre. Például, ha van egy nem definiált változója, akkor azt mondhatja az Ansible-nak, hogy hiba helyett alapértelmezett értéket állítson be.

Az alapértelmezett szűrő általános szintaxisa a következő:

| alapértelmezett érték)

Például:

- házigazdák: mind
változatok:
feladatok:
set_fact:
undef_var: "0_var | alapértelmezett (5)"

A fenti játékkönyv hiba helyett 5-re állítja a „0_var” változó értékét, ha nincs kifejezetten meghatározva.

Változó definiálásához használhatja a kötelező szűrőt. Csak annyit kell tennie, hogy hivatkozik a fenti példára, és kicseréli az alapértelmezettet a kötelezővel:

0_var | kötelező

3. példa: Ansible hibakeresési szűrők

Hibakereséskor a type_debug szűrővel információkat kaphat a változó típusáról. A változó típusa Pythonban lesz, mivel a motor Python-alapú. A szűrő általános szintaxisa a következő:

változó | type_debug

4. példa: Matematikai szűrők

Az Ansible matematikai szűrők lehetővé teszik matematikával kapcsolatos lekérdezések végrehajtását. Ezek a szűrők a következőket tartalmazzák:

  1. Logaritmusszűrő - változó | log - zárójelben adja meg a logaritmus alapját változó | napló (2)
  2. Teljesítményszűrő - változó | pow (3) - az emelt változót adja vissza a megadott teljesítményre
  3. Abszolút szűrő - változó | abs - az átadott változó abszolút értékét adja vissza
  4. Gyökérszűrő - változó | root - ez adja vissza a változó négyzetgyökét. A gyökér kifejezett megadásához adja meg az értéket zárójelben; például kocka gyökér változó | gyökér (3)

Ezek a matematikai szűrők nagyon hasznosak lehetnek, különösen nagy mennyiségű adat és azonnali matematikai műveletek esetén.

5. példa: Hash szűrők

Az Ansible hash szűrők lehetővé teszik egy karakterlánc vagy átadott adatok kivonatának megszerzését. A legtöbb esetben nincs szüksége ezekre a szűrőkre, de szükség esetén rendelkezésre állnak. Ezek a szűrők a következőket tartalmazzák:

  1. Sha1 - var | hash („sha1”)
  2. Sha256 / sha512 - var | password_hash (“sha256 / 512”)
  3. Md5 - var | hash ("md5")
  4. Karakterlánc ellenőrző összeg - var | ellenőrző összeg

Egyéb hasznos szűrők

Mint észrevehette, az Ansible sok szűrővel rendelkezik. Néhány hasznosnak tűnő Ansible szűrő a következőket tartalmazza:

  • URL megosztott szűrő - “[E-mail védett]: // linuxhint.com: 8080 / index.html?lekérdezés = linux ”| urlspilt („hostname”), - a „linuxhint” értéket adja vissza.com ”
  • Csatlakozási lista - lista | csatlakozás - lista hozzáadása egy sztringváltozathoz
  • Könyvtár elérési útja - útvonal | dirname
  • Bontsa ki a tildét - útvonal | expanduser

Következtetés

Az érzékeny szűrők jól jönnek, amikor hibakeresési feladatokat hajt végre, vagy ha túl sok gépelés nélkül specifikus információkra van szüksége. Mivel az Ansible támogatja az egyéni szűrőket, ezek a szűrők különösen hasznosak lehetnek speciális felhasználási esetekben.

Shadow of the Tomb Raider for Linux Tutorial
A Shadow of the Tomb Raider a Tomb Raider sorozat tizenkettedik kiegészítője - az Eidos Montreal által létrehozott akció-kaland játék franchise. A ját...
Az FPS növelése Linux alatt?
Az FPS jelentése Képkocka másodpercenként. Az FPS feladata a videolejátszások vagy játékteljesítmények képkockasebességének mérése. Egyszerű szavakkal...
A legnépszerűbb Oculus App Lab játékok
Ha Oculus fülhallgató-tulajdonos, akkor tisztában kell lennie az oldalsó töltéssel. Az oldaltöltés a nem áruházi tartalom fejhallgatóra történő telepí...