Võimalik

Manipuleerige võimalike andmetega Jinja filtrite abil

Manipuleerige võimalike andmetega Jinja filtrite abil

Mõnel juhul, kui kasutate Ansible'i erinevate ülesannete automatiseerimiseks, peate võib-olla muutma andmeid ja neid manipuleerima. Rakenduses Ansible saate andmete manipuleerimiseks, töötlemiseks ja teisendamiseks kasutada sisseehitatud filtrite komplekti või luua kohandatud filtreid. Ansible kasutab taustal jinja2 mallifiltreid, et kasutajad saaksid määratud andmete jaoks filtreid luua.

Oluline on märkida, et filtri mallimine toimub kontrolleril Ansible, mitte määratud kaughostidel. See aitab vähendada kaughosti edastatud andmete hulka pärast kohalikku töötlemist. Kui teile pole jinja mallid tuttavad, on Jinja Pythoni programmeerimiskeele jaoks lihtne, intuitiivne, kiire ja turvaline mallikeel, mis on välja töötatud pärast populaarseid Pythoni raamistiku Django malle.

Me ei uuri, kuidas jinja mallimine töötab, kuigi see võib olla täiendav eelis, et mõista, kuidas see mallidega töötab.

Jinja kohta lisateabe saamiseks vaadake allpool toodud ressurssi.

https: // linkfy.to / jinjaDocs

Kuidas toimivad filtrid

Nagu mainitud, tugineb Ansible filtreerimismootor Jinja mallimudelile. See võimaldab kasutajatel kasutada neid malle andmete sisestamiseks, nende töötlemiseks ja väljundi pakkumiseks määratletud filtrite põhjal.

Kui andmed on määratletud malli abil teisendatud ja filtreeritud, saate neid kasutada jaotises Ansible muude ülesannete täitmiseks. Filtrite kohta saate lisateavet saidilt Ansible järgmiselt veebisaidilt:

https: // linkfy.to / AnsibleFilters

Ansible'il on palju filtreid, mis on kõik väga kasulikud ja sobivad paljude erinevate stsenaariumide jaoks. Kui teil on filtri väljund, saate seda kasutada muude ülesannete täitmiseks, näiteks silumiseks.

Andmete filtreerimise üldine süntaks on järgmine:

|

Kasutatavate filtrite kasutamine

Nüüd vaatame Ansible filtrite näiteid, mida saame kasutada erinevate ülesannete täitmiseks.

MÄRGE: Nagu varem mainitud, on Ansibleil palju filtreid, nii et me ei saa kõiki neid käesolevas artiklis käsitleda. Selle õpetuse eesmärk on pakkuda teile mitmesuguste Ansible filtrite kasutamise põhitõdesid.

Näide 1: Ansible Format Data Filtrid

Andmefailid Võimatu vorming võtavad mallis väljundandmete struktuuri ja kasutavad määratud filtrit selle renderdamiseks filtris kutsutud vormingus.

Allpool on näide filtrist JSONiks ja YAML-iks teisendamiseks:

muutuja | to_json
muutuja | to_yaml

Mõelge näiteks järgmisele mänguraamatule:

- hostid: kõik ülesanded:
- kest: kass / tmp / kõik.json
register: tulemus
- silumine:
msg: "tulemus.stdout | to_nice_yaml "

Ülaltoodud mänguraamatu käivitamine loob väljundi JSON-andmetele, mis on teisendatud YAML-i. Järgmine on näite väljund:

Inimloetavas vormingus väljundi saamiseks võite määrata ka muud filtrid, näiteks to_nice_yaml.

muutuja | to_nice_json
muutuja | to_nice_yaml

Andmefailide vormindamise abil saate andmeid teisendada erinevatesse vormingutesse ja kasutada mitmesuguste ülesannete täitmiseks.

Näiteks võite edastada mitme dokumendi YAML-stringide sõelumise, nagu allpool toodud mänguraamatus:

- hostid: kõik ülesanded:
- kest: kass / tmp / kõik.json
register: tulemus
- silumine:
msg: "tulemus.stdout | to_yaml | list "

Näide 2: Anonymous Default Filter

Ansible default filter aitab vaikeväärtusi määramata muutujate jaoks. Vaikimisi Ansible konfiguratsioon nurjub määratlemata muutujatega. Näiteks kui teil on määratlemata muutuja, võite Ansible'ile öelda vea tõrke asemel vaikeväärtuse.

Vaikefiltri üldine süntaks on järgmine:

| vaikeväärtus (väärtus)

Näiteks:

- võõrustajad: kõik
vars:
ülesanded:
set_fact:
undef_var: "0_var | vaikimisi (5)"

Ülaltoodud käsiraamat määrab muutuja '0_var' väärtuseks 5, kui see pole sõnaselgelt määratletud, selle asemel, et viga visata.

Muutuja määratlemiseks võite kasutada kohustuslikku filtrit. Kõik, mida peate tegema, on viidata ülaltoodud näitele ja asendada vaikimisi kohustuslikuga:

0_var | kohustuslik

Näide 3: Ansible silumisfiltrid

Silumisel saate muutuja tüübi kohta teabe saamiseks kasutada filtrit type_debug. Muutuja tüüp on Pythonis, kuna mootor on Pythoni-põhine. Filtri üldine süntaks on järgmine:

muutuja | type_debug

Näide 4: matemaatikafiltrid

Matemaatika filtrid Ansible võimaldavad teil teha matemaatikaga seotud päringuid. Need filtrid hõlmavad järgmist:

  1. Logaritmi filter - muutuja | log - määrab sulgudes oleva logaritmi aluse muutuja | logi (2)
  2. Toitefilter - muutuja | pow (3) - tagastab tõstetud muutuja määratud võimsuseni
  3. Absoluutfilter - muutuja | abs - tagastab edastatud muutuja absoluutväärtuse
  4. Juurfilter - muutuja | root - see tagastab muutuja ruutjuure. Juure selgesõnaliseks määramiseks edastage väärtus sulgudes; näiteks kuupjuur muutuja | juur (3)

Need matemaatikafiltrid võivad olla üsna kasulikud, eriti suurte andmemahtude ja koheste matemaatikaoperatsioonide korral.

Näide 5: Räsifiltrid

Ansible räsifiltrid võimaldavad teil saada stringi või edastatud andmete räsi. Enamasti pole teil neid filtreid vaja, kuid vajaduse korral on neid võimalik kasutada. Need filtrid hõlmavad järgmist:

  1. Sha1 - var | räsi ("sha1")
  2. Sha256 / sha512 - var | parooli_hash ("sha256 / 512")
  3. Md5 - var | räsi ("md5")
  4. Stringi kontrollsumma - var | kontrollsumma

Muud kasulikud filtrid

Nagu olete märganud, on Ansibleil palju filtreid. Mõned Ansible filtrid, mis võivad teile kasulikud olla, on järgmised:

  • URL-i jagatud filter - “[Meiliga kaitstud]: // linuxhint.com: 8080 / register.HTML?päring = linux ”| urlspilt (“hostinimi”), - tagastab “linuxhint.com ”
  • Liitumisloend - loend | liitu - kasutatakse loendi lisamiseks stringi var
  • Kataloogi tee - tee | dirname
  • Laiendage tildet - tee | laiendaja

Järeldus

Lubatavad filtrid tulevad kasuks siis, kui teete silumisülesandeid või vajate konkreetset teavet ilma liigse tippimiseta. Kuna Ansible toetab kohandatud filtreid, võivad need filtrid olla eriti kasulikud konkreetsetel juhtudel.

Kuidas kasutada AutoKeyt Linuxi mängude automatiseerimiseks
AutoKey on Linuxi ja X11 töölaua automatiseerimise utiliit, mis on programmeeritud Python 3, GTK ja Qt. Selle skriptimise ja MACRO funktsionaalsuse ab...
Kuidas näidata FPS-loendurit Linuxi mängudes
Linuxi mängimine sai suure tõuke, kui Valve teatas Steam-kliendi ja nende mängude Linuxi toest 2012. aastal. Sellest ajast peale on paljud AAA- ja ind...
Sid Meieri Civilization VI allalaadimine ja mängimine Linuxis
Sissejuhatus mängu Civilization 6 on kaasaegne kontseptsioon, mis tutvustati Age of Empires mängude sarjas. Idee oli üsna lihtne; alustaksite kõige põ...