Joissakin tapauksissa, kun käytät Ansible-toimintoa eri tehtävien automatisointiin, joudut ehkä muuttamaan ja käsittelemään tietoja. Ansible-sovelluksessa voit käyttää sisäänrakennettuja suodattimia tai luoda mukautettuja suodattimia tietojen manipuloimiseksi, käsittelemiseksi ja muuntamiseksi. Ansible käyttää taustalla olevia jinja2-mallisuodattimia, jotta käyttäjät voivat luoda suodattimia määritetyille tiedoille.
On tärkeää huomata, että suodatinmallit suoritetaan Ansible-ohjaimessa, ei määritetyissä etäisänissä. Tämä auttaa vähentämään etäisäntään siirrettävän datan määrää paikallisen käsittelyn jälkeen. Jos et tunne jinja-malleja, Jinja on yksinkertainen, intuitiivinen, nopea ja turvallinen mallikieli Python-ohjelmointikielelle, joka on kehitetty suositun Python-kehyksen Django-mallien jälkeen.
Emme pääse käsittelemään jinja-mallien toimintaa, vaikka se voi olla lisäetu ymmärtää, miten se toimii mallien kanssa.
Katso alla olevasta resurssista lisätietoja Jinjasta.
https: // linkfy.to / jinjaDocs
Kuinka mahdolliset suodattimet toimivat
Kuten mainittiin, Ansible-suodatusmoottori perustuu Jinja-mallimalliin. Tämä antaa käyttäjille mahdollisuuden käyttää näitä malleja tietojen syöttämiseen, käsittelyyn ja tuottamiseen määritettyjen suodattimien perusteella.
Kun tiedot on muunnettu ja suodatettu määritetyn mallin avulla, voit käyttää niitä muiden tehtävien suorittamiseen Ansible-ohjelmassa. Saat lisätietoja Ansible-suodattimista seuraavalta verkkosivustolta:
https: // linkfy./ AnsibleFilters
Ansible-palvelussa on monia suodattimia, jotka ovat kaikki erittäin hyödyllisiä ja soveltuvia moniin erilaisiin tilanteisiin. Kun sinulla on suodattimen lähtö, voit käyttää sitä muiden tehtävien suorittamiseen, kuten virheenkorjaukseen.
Tietojen suodattamisen yleinen syntakse on seuraava:
|Käyttämättömien suodattimien käyttö
Tarkastelemme nyt esimerkkejä Ansible-suodattimista, joita voimme käyttää erilaisten tehtävien suorittamiseen.
MERKINTÄ: Kuten aiemmin mainittiin, Ansibleilla on monia suodattimia, joten emme voi käsitellä kaikkia niitä tässä artikkelissa. Sen sijaan tässä opetusohjelmassa pyritään tarjoamaan sinulle perustiedot eri Ansible-suodattimien käytöstä.
Esimerkki 1: Ansible Format Data Filters
Ansible format -datasuodattimet ottavat lähtötietorakenteen malliin ja hahmottavat sen määritetyllä suodattimella suodattimessa kutsuttuun muotoon.
Alla on esimerkki suodattimesta muunnettavaksi JSON: ksi ja YAML: ksi:
muuttuja | to_jsonmuuttuja | to_yaml
Harkitse esimerkiksi seuraavaa pelikirjaa:
- isännät: kaikki tehtävät:- kuori: kissa / tmp / kaikki.json
rekisteri: tulos
- virheenkorjaus:
msg: "tulos.vakio | to_nice_yaml "
Yllä olevan soittokirjan suorittaminen tuottaa lähdön JSON-tiedoille, jotka on muunnettu YAML: ksi. Seuraava on esimerkkilähtö:
Voit määrittää myös muita suodattimia, kuten to_nice_yaml, saadaksesi lähdön ihmisen luettavassa muodossa.
muuttuja | to_nice_jsonmuuttuja | to_nice_yaml
Muotoilutietosuodattimien avulla voit muuntaa tiedot eri muodoiksi ja käyttää niitä erilaisiin tehtäviin.
Voit esimerkiksi siirtää monidokumentin YAML-merkkijonot, kuten alla olevassa soittokirjassa:
- isännät: kaikki tehtävät:- kuori: kissa / tmp / kaikki.json
rekisteri: tulos
- virheenkorjaus:
msg: "tulos.vakio | to_yaml | lista"
Esimerkki 2: Mahdollinen oletussuodatin
Ansible default -suodatin auttaa määrittämään oletusarvot määrittelemättömille muuttujille. Oletusarvoinen Ansible-kokoonpano epäonnistuu määrittelemättömien muuttujien kanssa. Jos sinulla on esimerkiksi määrittelemätön muuttuja, voit kertoa Ansibleille oletusarvoisen arvon virheen nostamisen sijaan.
Oletussuodattimen yleinen syntaksin muoto on seuraava:
Esimerkiksi:
- isännät: kaikkivars:
tehtävät:
set_fact:
undef_var: "0_var | oletus (5)"
Yllä oleva soittokirja asettaa muuttujan '0_var' arvoksi 5, ellei sitä ole nimenomaisesti määritelty virheen heittämisen sijaan.
Voit määrittää muuttujan käyttämällä pakollista suodatinta. Sinun tarvitsee vain viitata yllä olevaan esimerkkiin ja korvata oletus pakollisella:
0_var | pakollinenEsimerkki 3: Mahdolliset virheenkorjaussuodattimet
Virheenkorjauksessa voit käyttää type_debug-suodatinta saadaksesi tietoja muuttujatyypistä. Muuttujatyyppi tulee olemaan Pythonissa, koska moottori on Python-pohjainen. Suodattimen yleinen syntaksin muoto on seuraava:
muuttuja | type_debugEsimerkki 4: Matematiikan suodattimet
Ansible Math -suodattimien avulla voit suorittaa matemaattisia kyselyitä. Nämä suodattimet sisältävät seuraavat:
- Logaritmisuodatin - muuttuja | log - määrittää sulkeissa olevan logaritmin perustan muodossa muuttuja | loki (2)
- Tehosuodatin - muuttuja | pow (3) - palauttaa korotetun muuttujan määritettyyn tehoon
- Absoluuttinen suodatin - muuttuja | abs - palauttaa välitetyn muuttujan absoluuttisen arvon
- Root-suodatin - muuttuja | root - tämä palauttaa muuttujan neliöjuuren. Määritä juuri juuri siirtämällä arvo sulkeisiin; esimerkiksi kuutiojuuri muuttuja | juuri (3)
Nämä matematiikan suodattimet voivat olla varsin hyödyllisiä, varsinkin kun käsitellään suuria määriä dataa ja välitöntä matematiikkaa.
Esimerkki 5: Hash-suodattimet
Ansible hash -suodattimien avulla voit hankkia merkkijonon tai välitetyn datan hajautuksen. Useimmissa tapauksissa et tarvitse näitä suodattimia, mutta ne ovat käytettävissä käytettäväksi tarvittaessa. Nämä suodattimet sisältävät seuraavat:
- Sha1 - var | hash ("sha1")
- Sha256 / sha512 - var | password_hash (“sha256 / 512”)
- Md5 - var | hash (“md5”)
- Merkkijono tarkistussumma - var | tarkistussumma
Muut hyödylliset suodattimet
Kuten olet ehkä huomannut, Ansibleilla on monia suodattimia. Joitakin Ansible-suodattimia, jotka saattavat olla hyödyllisiä, ovat seuraavat:
- URL-jakosuodatin - “[Sähköposti suojattu]: // linuxhint.com: 8080 / index.html?kysely = linux ”| urlspilt (“hostname”), - palauttaa “linuxhint”.com ”
- Liity luettelo - luettelo | liittyä - käytetään luettelon lisäämiseen merkkijonomuuttujaan
- Hakemistopolku - polku | dirname
- Laajenna tilde - polku | laajentaja
Johtopäätös
Mahdolliset suodattimet ovat käteviä, kun suoritat virheenkorjaustehtäviä tai tarvitset tarkkoja tietoja kirjoittamatta liikaa. Koska Ansible tukee mukautettuja suodattimia, nämä suodattimet voivat olla erityisen hyödyllisiä tietyissä käyttötapauksissa.