Odgovorno

Manipulirajte odgovornim podacima pomoću Jinja filtera

Manipulirajte odgovornim podacima pomoću Jinja filtera

U nekim prilikama, kada koristite Ansible za automatizaciju različitih zadataka, možda ćete trebati transformirati podatke i njima upravljati. U programu Ansible možete koristiti skup ugrađenih filtara ili stvoriti prilagođene filtre za manipulaciju, obradu i pretvaranje podataka. Ansible koristi filtre predloška jinja2 u pozadini kako bi korisnicima omogućio stvaranje filtara za određene podatke.

Važno je napomenuti da se predlošci filtra provode na kontroloru Ansible, a ne na navedenim udaljenim hostovima. To pomaže smanjiti količinu podataka prenesenih na udaljeni host nakon lokalne obrade. Ako niste upoznati s jinja predlošcima, Jinja je jednostavan, intuitivan, brz i siguran jezik za predloške za programski jezik Python razvijen po popularnim predlošcima Python framework Django.

Nećemo ulaziti u način funkcioniranja jinja predložaka, iako to može biti dodatna prednost ako se razumije kako funkcionira s predlošcima.

Pogledajte dolje navedeni resurs da biste saznali više o Jinji.

https: // linkfy.na / jinjaDocs

Kako funkcioniraju odgovorni filtri

Kao što je spomenuto, mehanizam filtriranja Ansible nadovezuje se na model predložaka Jinja. To omogućuje korisnicima da koriste ove predloške za unos podataka, obradu i pružanje rezultata na temelju definiranih filtara.

Nakon što se podaci transformiraju i filtriraju pomoću definiranog predloška, ​​možete ga koristiti za izvršavanje drugih zadataka u programu Ansible. Više o filtrima u programu Ansible možete saznati na sljedećem web mjestu:

https: // linkfy.na / AnsibleFilters

Ansible ima mnogo filtara koji su vrlo korisni i primjenjivi na mnogo različitih scenarija. Nakon što dobijete izlaz filtra, možete ga koristiti za izvršavanje drugih zadataka, poput uklanjanja pogrešaka.

Opća sintaksa za filtriranje podataka je kako slijedi:

|

Korištenje Ansible filtara

Sada ćemo pogledati primjere Ansible filtara koje možemo koristiti za izvršavanje različitih zadataka.

BILJEŠKA: Kao što je već spomenuto, Ansible ima mnogo filtara, tako da ih u ovom članku ne možemo pokriti. Umjesto toga, ovaj vam vodič nastoji pružiti osnove korištenja različitih Ansible filtara.

Primjer 1: Filteri podataka odgovornog formata

Filteri podataka oblika Ansible uzimaju izlaznu strukturu podataka u predlošku i koriste se navedenim filterom da bi ga prikazali u formatu pozvanom u filtru.

Ispod je primjer filtra za pretvorbu u JSON i YAML:

varijabla | do_json
varijabla | do_yaml

Na primjer, uzmite u obzir sljedeću knjigu priručnika:

- domaćini: svi zadaci:
- ljuska: mačka / tmp / sve.json
registar: rezultat
- otklanjanje pogrešaka:
msg: "rezultat.stdout | to_nice_yaml "

Pokretanje gornje knjige priručnika stvorit će izlaz za JSON podatke pretvorene u YAML. Slijedi primjer rezultata:

Također možete odrediti druge filtre, poput to_nice_yaml, da biste dobili izlaz u čitljivom formatu.

varijabla | do_nice_json
varijabla | do_nice_yaml

Korištenjem filtara za oblikovanje podataka možete transformirati podatke u različite formate i koristiti ih za razne zadatke.

Na primjer, možete proslijediti raščlanjivanje YAML nizova s ​​više dokumenata, kao u donjoj priručniku:

- domaćini: svi zadaci:
- ljuska: mačka / tmp / sve.json
registar: rezultat
- otklanjanje pogrešaka:
msg: "rezultat.stdout | do_yaml | popis"

Primjer 2: Odgovorni zadani filtar

Zadani filtar Ansible pomaže zadati vrijednosti nedefiniranim varijablama. Zadana konfiguracija Ansible ne uspijeva definirati varijable. Na primjer, ako imate nedefiniranu varijablu, možete reći Ansible da se zadana vrijednost, umjesto da izazivate pogrešku.

Opća sintaksa za zadani filtar je sljedeća:

| zadano (vrijednost)

Na primjer:

- domaćini: svi
varira:
zadaci:
set_fact:
undef_var: "0_var | zadani (5)"

Gornja knjiga priručnika postavit će vrijednost varijable '0_var' na 5 ako nije izričito definirana, umjesto da izbaci pogrešku.

Da biste definirali varijablu, možete upotrijebiti obvezni filtar. Sve što trebate jest uputiti se na gornji primjer i zamijeniti zadani obveznim:

0_var | obavezno

Primjer 3: Ansible filtri za otklanjanje pogrešaka

Pri otklanjanju pogrešaka možete upotrijebiti filter type_debug da biste dobili informacije o vrsti varijable. Tip varijable bit će u Pythonu, jer je motor zasnovan na Pythonu. Općenita sintaksa filtra je sljedeća:

varijabla | vrsta pogreške

Primjer 4: Matematički filtri

Matematički filtri Ansible omogućuju vam izvođenje matematičkih upita. Ovi filtri uključuju sljedeće:

  1. Logaritamski filtar - varijabla | log - navodi bazu logaritma u zagradama kao varijabla | zapisnik (2)
  2. Filtar snage - varijabla | pow (3) - vraća podignutu varijablu na navedenu snagu
  3. Apsolutni filtar - varijabla | abs - vraća apsolutnu vrijednost za proslijeđenu varijablu
  4. Korijenski filtar - varijabla | root - vraća kvadratni korijen varijable. Da biste eksplicitno odredili korijen, dodajte vrijednost u zagrade; na primjer, korijen kocke varijabla | korijen (3)

Ovi matematički filtri mogu biti vrlo korisni, posebno kada se radi s velikim količinama podataka i trenutnim matematičkim operacijama.

Primjer 5: Hash filtri

Ansible hash filtri omogućuju vam dobivanje hasha niza ili proslijeđenih podataka. U većini slučajeva ti filtri neće trebati, ali oni su dostupni za upotrebu ako se ukaže potreba. Ovi filtri uključuju sljedeće:

  1. Sha1 - var | hash (“sha1”)
  2. Sha256 / sha512 - var | password_hash (“sha256 / 512”)
  3. Md5 - var | hash (“md5”)
  4. Niz kontrolne sume - var | kontrolna suma

Ostali korisni filtri

Kao što ste možda primijetili, Ansible ima mnogo filtara. Neki filtri Ansible koji bi vam se mogli učiniti korisnim uključuju sljedeće:

  • URL podijeljeni filtar - “[E-pošta zaštićena]: // linuxhint.com: 8080 / indeks.html?upit = linux ”| urlspilt (“ime hosta”), - vraća “linuxhint.com "
  • Pridružite se popisu - popis | pridružiti - koristi se za dodavanje popisa u niz var
  • Staza direktorija - put | dirname
  • Proširite tildu - put | proširiti korisnika

Zaključak

Ansible filtri dobro dođu kada izvodite zadatke za uklanjanje pogrešaka ili ako trebate određene informacije bez previše tipkanja. Budući da Ansible podržava prilagođene filtre, ti filtri mogu biti posebno korisni u određenim slučajevima korištenja.

Najbolji emulatori igraće konzole za Linux
Ovaj će članak navesti popularni softver za emulaciju igraće konzole dostupan za Linux. Emulacija je sloj kompatibilnosti softvera koji oponaša hardve...
Najbolji Linux Distros za igre na sreću 2021. godine
Linux operativni sustav daleko je prevalio svoj izvorni, jednostavni izgled zasnovan na poslužitelju. Ovaj se OS posljednjih godina izuzetno poboljšao...
Kako snimiti i struji svoju igraću sesiju na Linuxu
U prošlosti se igranje igara smatralo samo hobijem, ali s vremenom je igračka industrija zabilježila ogroman rast u pogledu tehnologije i broja igrača...