Možné

Manipulujte s možnými údajmi pomocou filtrov Jinja

Manipulujte s možnými údajmi pomocou filtrov Jinja

V niektorých prípadoch, keď používate program Ansible na automatizáciu rôznych úloh, budete možno musieť transformovať údaje a manipulovať s nimi. V priečinku Ansible môžete na manipuláciu, spracovanie a prevod údajov použiť sadu vstavaných filtrov alebo vytvoriť vlastné filtre. Ansible používa na pozadí filtre šablón jinja2, ktoré umožňujú používateľom vytvárať filtre pre zadané údaje.

Je dôležité si uvedomiť, že šablóna filtra sa vykonáva na radiči Ansible, a nie na určených vzdialených hostiteľoch. To pomáha znižovať množstvo dát prenesených na vzdialeného hostiteľa po lokálnom spracovaní. Ak nie ste oboznámení s šablónami jinja, Jinja je jednoduchý, intuitívny, rýchly a bezpečný šablónový jazyk pre programovací jazyk Python vyvinutý po populárnych šablónach Django v rámci Pythonu.

Nebudeme sa zaoberať tým, ako funguje šablóna džinja, aj keď môže byť výhodou, ak pochopíme, ako to funguje so šablónami.

Ak sa chcete dozvedieť viac informácií o Jinji, pozrite si zdroj uvedený nižšie.

https: // linkfy.do / jinjaDocs

Ako fungujú možné filtre

Ako už bolo spomenuté, filtračný motor Ansible stavia na šablónovitom modeli Jinja. To umožňuje používateľom použiť tieto šablóny na vkladanie údajov, ich spracovanie a poskytovanie výstupu na základe definovaných filtrov.

Po transformácii a filtrovaní údajov pomocou definovanej šablóny ich môžete použiť na vykonávanie ďalších úloh v aplikácii Ansible. Viac sa o filtroch dozviete v časti Ansible na tejto webovej stránke:

https: // linkfy.do / AnsibleFilters

Ansible má veľa filtrov, ktoré sú všetky veľmi užitočné a použiteľné v mnohých rôznych scenároch. Keď máte výstup filtra, môžete ho použiť na vykonávanie ďalších úloh, napríklad ladenia.

Všeobecná syntax pre filtrovanie údajov je nasledovná:

|

Používanie možných filtrov

Teraz sa pozrieme na príklady filtrov Ansible, ktoré môžeme použiť na vykonávanie rôznych úloh.

POZNÁMKA: Ako už bolo spomenuté, Ansible má veľa filtrov, takže v tomto článku nemôžeme pokryť všetky. Namiesto toho sa tento výukový program snaží poskytnúť základné informácie o používaní rôznych filtrov Ansible.

Príklad 1: Možný formát dátových filtrov

Filtre dátového formátu Ansible vezmú výstupnú dátovú štruktúru do šablóny a pomocou zadaného filtra ju vykreslia vo formáte nazvanom vo filtri.

Nižšie je uvedený príklad filtra na prevod na JSON a YAML:

premenná | to_json
premenná | to_yaml

Zvážte napríklad nasledujúcu príručku:

- hostitelia: všetky úlohy:
- škrupina: mačka / tmp / všetko.json
register: výsledok
- ladenie:
msg: "vysledok.štandardný výstup | to_nice_yaml "

Spustenie vyššie uvedenej príručky vytvorí výstup pre údaje JSON prevedené na YAML. Nasleduje ukážkový výstup:

Môžete tiež určiť ďalšie filtre, napríklad to_nice_yaml, aby ste získali výstup vo formáte čitateľnom pre človeka.

premenná | to_nice_json
premenná | to_nice_yaml

Pomocou formátovacích dátových filtrov môžete dáta transformovať do rôznych formátov a použiť ich na rôzne úlohy.

Môžete napríklad odovzdať syntaktické reťazce YAML pre viac dokumentov, ako je uvedené v príručke nižšie:

- hostitelia: všetky úlohy:
- škrupina: mačka / tmp / všetko.json
register: výsledok
- ladenie:
msg: "vysledok.štandardný výstup | to_yaml | zoznam "

Príklad 2: Možný predvolený filter

Predvolený filter Možné pomáha predvoleným hodnotám nedefinovaných premenných. Predvolená konfigurácia Ansible zlyhá pri nedefinovaných premenných. Ak máte napríklad nedefinovanú premennú, môžete namiesto chyby vyrozumieť Ansible o predvolenej hodnote.

Všeobecná syntax predvoleného filtra je nasledovná:

| predvolená hodnota)

Napríklad:

- hostitelia: všetci
vars:
úlohy:
set_fact:
undef_var: "0_var | predvolené (5)"

Vyššie uvedená príručka nastaví namiesto premenenia chyby hodnotu premennej „0_var“ na 5, ak nie je výslovne definovaná.

Na definovanie premennej môžete použiť povinný filter. Všetko, čo musíte urobiť, je odkazovať sa na vyššie uvedený príklad a nahradiť predvolené nastavenie povinným:

0_var | povinné

Príklad 3: Možné filtre ladenia

Pri ladení môžete na získanie informácií o type premennej použiť filter type_debug. Typ premennej bude v Pythone, pretože engine je založený na Pythone. Všeobecná syntax filtra je nasledovná:

premenná | typ_debug

Príklad 4: Matematické filtre

Matematické filtre Ansible vám umožňujú vykonávať matematické dotazy. Medzi tieto filtre patria:

  1. Logaritmický filter - premenná | log - špecifikuje základ logaritmu v zátvorkách ako premenná | denník (2)
  2. Silový filter - premenná | pow (3) - vráti premennú zvýšenú na zadaný výkon
  3. Absolútny filter - premenná | abs - vráti absolútnu hodnotu odovzdanej premennej
  4. Koreňový filter - premenná | root - vráti druhú odmocninu premennej. Ak chcete výslovne určiť koreň, zadajte hodnotu v zátvorkách; napríklad kocka root premenná | koreň (3)

Tieto matematické filtre môžu byť celkom užitočné, najmä keď sa jedná o veľké množstvo údajov a okamžité matematické operácie.

Príklad 5: Hašovacie filtre

Filtre hash Ansible vám umožňujú získať hash reťazca alebo odovzdaných údajov. Vo väčšine prípadov tieto filtre nebudete potrebovať, ale v prípade potreby sú k dispozícii na použitie. Medzi tieto filtre patria:

  1. Sha1 - var | hash („sha1“)
  2. Sha256 / sha512 - var | heslo_ hash („sha256 / 512“)
  3. Md5 - var | hash („md5“)
  4. Kontrolný súčet reťazcov - var | kontrolný súčet

Ďalšie užitočné filtre

Ako ste si mohli všimnúť, Ansible má veľa filtrov. Niektoré filtre Ansible, ktoré sa vám môžu hodiť, zahŕňajú:

  • Filter rozdelenia URL - “[Chránené e-mailom]: // linuxhint.kom: 8080 / index.html?dotaz = linux ”| urlspilt („názov hostiteľa“), - vráti „linuxhint.com “
  • Pripojte sa k zoznamu - zoznam | join - slúži na pridanie zoznamu do reťazca var
  • Cesta k adresáru - cesta | dirname
  • Rozšírte vlnovku - cesta | expanduser

Záver

Možné filtre sa hodia, keď vykonávate ladiace úlohy alebo potrebujete konkrétne informácie bez toho, aby ste museli písať príliš veľa. Pretože Ansible podporuje vlastné filtre, môžu byť tieto filtre obzvlášť užitočné v konkrétnych prípadoch použitia.

Hry Ako sťahovať a prehrávať Sid Meier's Civilization VI v systéme Linux
Ako sťahovať a prehrávať Sid Meier's Civilization VI v systéme Linux
Úvod do hry Civilization 6 predstavuje moderné poňatie klasického konceptu predstaveného v sérii hier Age of Empires. Myšlienka bola dosť jednoduchá; ...
Hry Ako inštalovať a hrať Doom na Linuxe
Ako inštalovať a hrať Doom na Linuxe
Úvod do Doom Séria Doom vznikla v 90. rokoch po vydaní pôvodného Doomu. Bol to okamžitý hit a od tej doby herná séria získala množstvo ocenení a origi...
Hry Vulkan pre používateľov systému Linux
Vulkan pre používateľov systému Linux
S každou novou generáciou grafických kariet vidíme, že vývojári hier posúvajú hranice grafickej vernosti a prichádzajú o krok bližšie k fotorealizmu. ...