Ansible Split

Ansible Split



Merkkijonotietotyypit ovat yleisimpiä ja arvokkaimpia missä tahansa kehitystyössä. Ansiblen kanssa työskennellessämme saatamme kohdata tapauksia, joissa meidän on jaettava merkkijono luetteloksi tai useiksi merkkijonoiksi. Onneksi Ansiblen Jinja2-mallimoottori tarjoaa kätevän jaetun suodattimen tämän saavuttamiseksi.

Tämä opetusohjelma tutkii Ansiblen split-toimintoa ja ymmärtää sen toiminnan todellisten esimerkkien avulla.

Edellytykset:

Jos haluat seurata tätä viestiä, varmista, että sinulla on seuraavat tiedot:







  • Ansible-pelikirjojen ja tehtävien tuntemus
  • Ansible asennettu koneellesi

Mahdollinen jakotoiminto

Ansiblessa split()-funktio antaa meille mahdollisuuden jakaa tai jakaa merkkijonon luetteloksi käyttämällä määritettyä erotinta.



Funktio hyväksyy kaksi pääparametria:



  1. Merkkijono, jonka haluat jakaa
  2. Erotin, jolla haluat jakaa merkkijonon

Syntaksi on seuraava:





{{ 'jaettava_merkkijono' | split( 'erotin' ) }}

Esimerkkejä:

Katsotaanpa joitain perusesimerkkejä tämän toiminnon käytöstä tosielämän pelikirjassa.

Esimerkki 1: Perusjako



Oletetaan, että meillä on 'MySQL, PostgreSQL, SQL Server' -merkkijono ja haluamme jakaa sen tietokantaluetteloksi. Voimme ajaa pelikirjan seuraavasti:

---
- isännät: localhost
tehtävät:
- nimi: Perusesimerkki jakamisesta
debug:
msg: '{{ 'MySQL, PostgreSQL, SQL Server' | split(',') }}'

Lähtö:

ok: [localhost] => {
'viesti': [
'MySQL',
'PostgreSQL',
'SQL-palvelin'
]
}

Esimerkki 2: Dynaaminen muuttujan jakaminen

Usein saatamme joutua jakamaan muuttujan arvon kovakoodatun merkkijonon sijaan. Tässä voimme käyttää dynaamista muuttujan jakamista, kuten seuraavassa osoitetaan:

---
- isännät: localhost
jonka:
käyttäjät: 'käyttäjä1,käyttäjä2,käyttäjä3'
tehtävät:
- nimi: Muuttujan arvon jakaminen
debug:
msg: '{{ käyttäjät | split(',') }}'

Tulos:

ok: [localhost] => {
'viesti': [
'käyttäjä1',
'käyttäjä2',
'käyttäjä3'
]
}

Esimerkki 3: Tiedostopolkujen jakaminen

Toinen jakotoiminnon käyttötarkoitus on tiedostopolkujen käsittely. Esimerkkiesittelystä on seuraava:

---
- isännät: localhost
jonka:
polku: '/home/ubuntu/documents/report.txt'
tehtävät:
- nimi: Pura tiedostonimi polusta käyttämällä viimeistä suodatinta
debug:
msg: '{{ (polku | split('/')) | viimeinen }}'

Lähtö:

ok: [localhost] => {
'msg': 'raportti.txt'
}

Tämä poimii 'report.txt'-tiedoston annetusta polusta.

Esimerkki 4: Splitin käyttö silmukassa

Otetaan esimerkki, jossa haluamme luoda useita hakemistoja, jotka on nimetty eri tietokantojen mukaan:

---
- isännät: localhost
jonka:
tietokannat: 'MySQL, PostgreSQL, SQL Server'
tehtävät:
- nimi: Luo hakemistoja jokaiselle tietokannalle
tiedosto:
polku: '/tmp/{{ kohde }}'
tila: hakemisto
silmukka: '{{ tietokannat | split(',') }}'

Lähtö:

TEHTÄVÄ [Luo hakemistoja jokaiselle tietokannalle] ********************************************** **************************
muutettu: [localhost] => (item=MySQL)
muutettu: [localhost] => (item= PostgreSQL)
muutettu: [localhost] => (item= SQL Server)

Johtopäätös

Opit split-toiminnosta Ansiblessa. Tämä toiminto tarjoaa puhtaan tavan käsitellä ja käsitellä merkkijonotietoja.