Hvordan fungerer Ansible -filtre?

Hvordan fungerer Ansible -filtre?
En av de primære delene av ethvert rammeverk eller styringsprogramvare er måten den håndterer og behandler data. Med tanke på retningen som informasjonsteknologiens verden går, er det rettferdig å si at data er konge. Enorme datamengder genereres daglig for å bli brukt til forskjellige formål. Dermed datahåndtering og behandling veldig viktig.

Programvare som Ansible kreves for å håndtere enorme mengder data. Ser vi på tilretteleggingene disse typene applikasjoner skal gi, må databehandlingsmulighetene være førsteklasses.

Hver gang vi trenger å behandle, formatere eller manipulere data i Ansible, bruker vi filtre. Det er to sett med filtre tilgjengelig i Ansible. Det ene settet er Jinja2-malfiltre, og det andre settet er av de spesialbygde filtrene laget av brukere.

I bakgrunnen er imidlertid alle filtrene avledet fra Jinja2 -malen, som fungerer på en måte som dataene som blir lagt inn i filtrene først blir konvertert til maluttrykk slik at filtrene kan brukes på dem.

Et annet viktig poeng å notere seg er at alle filtrene brukes lokalt, noe som betyr at ingen filtrering kan gjøres ved hjelp av eksterne verter. Så all manipulering og prosessering foregår på Ansible Control Machine.

Hvis du ønsker å lære om filtrene som er tilgjengelige i Ansible og hvordan de brukes, har du funnet den rette artikkelen, da vi vil veilede deg om hvordan disse filtrene fungerer og hvordan du kan lage Ansible Playbooks for å behandle data slik du vil ha din system til.

Hvordan fungerer filtre?

Arbeidet bak datafilter er enkelt. Du gir forhåndsutviklede filtre noen data eller informasjon som input; Filteret analyserer dataene i henhold til kommandoene gitt i spillboken og forholdene du har angitt. Etter at dataene er analysert, vil du motta den tilpassede utdataene du ønsket fra dataene du hadde.

Ulike typer filtre utfører forskjellige typer filtrering på dataene. Som tidligere nevnt fungerer alle sammen basert på Jinja2 -malen, og det er en liste over alle tilgjengelige filtre. Du kan se den listen ved å klikke på denne lenken.

Det er mange fordeler ved å bruke filtre, da de forbedrer mulighetene til Ansible. Du kan også bruke filtre til feilsøking i visse tilfeller.

Hvordan implementere filtre i Ansible?

Den grunnleggende syntaksen til ethvert skivelig filter er gitt av:

|

Et annet viktig poeng å notere seg er at datatransformasjonen i bakgrunnen gjøres ved hjelp av Python. I tilfelle en viss type mal ikke er tilgjengelig med Python, kan det hende at filteret ikke gir deg riktig utgang. Så du må være forsiktig mens du bruker noen filtre.

Til nå har du lært det grunnleggende om Ansible -filtre. For å avklare ytterligere spørsmål, la oss se på noen eksempler på filtrering og forskjellige typer filtre.

Eksempler

- Navn: Generer flere vilkårlige vertsnavn
Ansible.bygget.Debug:
msg: "['abc', 'xyz'] | produkt (['com'])) | kart ('join', '.') | bli med(',') "

Vi vil også nevne her at for å kjøre en spillbok, må følgende kommando måtte utføres ved hjelp av Linux -terminalen:

Ansible-Playbook Testbook.yml

I dette eksemplet har vi brukt "produkt" -filteret. Produktfilter brukes til implementering av kartesisk multiplikasjon. "Produkt" -filteret er noe en analog å bruke for løkker i tradisjonelle programmeringsspråk. Utgangen du vil motta ved å kjøre en slik kode vil være.

"Msg": "ABC.com, xyz.com "

Slik kan du få kombinasjoner for sett med to tall.

- Navn: Gi meg kombinasjoner for sett med to
Ansible.bygget.Debug:
MSG: "[10,20,30,40,50] | Ansible.bygget.Kombinasjoner (2) | liste "

Vi har brukt "kombinasjon" -filteret for å få kombinasjoner av to tall fra et gitt sett. De 2 som er spesifisert i parentes, instruerer om å lage kombinasjoner av 2 og "listen" -tnøkkelordet, vil gi deg utdataene i form av en liste.

- Navn: Største permutasjoner (bestillingssaker)
Ansible.bygget.Debug:
msg: "[0,2,4,6,8] | Ansible.bygget.permutasjoner | liste "
- Navn: Permutasjoner av sett på tre
Ansible.bygget.Debug:
msg: "[1,3,5,7,9] | Ansible.bygget.Permutasjoner (3) | liste "

Det er også tilbudet av et "permutasjon" -filter også. Dette filteret gir oss permutasjoner av et gitt sett med variabler eller data. I eksemplet ovenfor vil vi motta de største permutasjonene fra det jevne tallsettet og permutasjoner av sett på tre fra ODD -tallene.

"['a', 'b', 'c'] | tilfeldig"

Dette eksemplet bruker det "tilfeldige" filteret for å generere et tilfeldig tall fra et gitt datasett.

51 | tilfeldig (trinn = 10)

Dette eksemplet brukte også det "tilfeldige" filteret for å generere et tilfeldig tall mellom 0 og 50. Vi har også gitt betingelse om at trinnstørrelsen skal være 10, så utdataene du vil få vil være et tall som er et multiplum av 10.

['a', 'b', 'c', 'd', 'e'] | tilfeldig rekkefølge

"Shuffle" -filteret kan brukes til å blande datasettet for å produsere en utgang der de gitte vil bli blandet og deretter vist deg.

['val': 1, 'val': 2, 'val': 3, 'val': 4] | min (attributt = 'val')

Til slutt har vi brukt "Min" -filteret som vil sammenligne de to inngangsnumrene som vi har gitt som input og gir deg det minste antallet som utgang.

['val': 1, 'val': 2] | maks (attributt = 'val')

På samme måte bruker vi "maks" -filteret for å få maksimalt antall fra et gitt datasett.

Så dette var eksemplene på noen av filtrene som er tilgjengelige i Ansible. Det er mange andre filtre som du kan behandle og formatere data.

Konklusjon

I denne artikkelen så vi på Ansible -filtre. Vi etablerte hvorfor vi trenger filtre i dataanalyse og så på noen filtre levert av plug-in. Vi håper at vi kunne hjelpe deg med å forstå hvorfor filtre er viktige og enda viktigere, du forstår nå hvordan du kan bruke dem til din fordel. Slipp gjerne spørsmål i kommentarfeltet.