Ansible Academy · Oppitunti

Silmukat ja if-lohkot malleissa

Luokaa toistuvia asetusten osioita.

Oppitunti 3/413 vaihetta

Silmukat ja if-lohkot malleissa on ilmainen Ansible Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Ansible Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Ansible Academy-kurssilla on yhteensä 4 oppituntia.

Logiikka kuuluu merkintöihin {% %}

Arvojen tulostamisen lisäksi Jinja2 suorittaa ohjauslogiikkaa {% %}-merkintöjen sisällä. Näin yksi template voi tuottaa useita rivejä. 🔁

Perusmuotoinen for-silmukka

Käyttäkää for-silmukkaa toistamaan rivejä luettelon alkioiden perusteella. Jokainen alkio tuottaa uuden renderöidyn tekstilohkon.

{% for host in backends %}
server {{ host }};
{% endfor %}

Sulje lohkot aina

Jokainen avaava merkintä tarvitsee sulkevan merkinnän: endfor päättää silmukan, aivan kuten endif päättää ehdon. Sen unohtaminen rikkoo renderöinnin.

Käy sanakirja läpi

Käykää sanakirjan avain-arvoparit läpi komennolla .items() ja tallentakaa kukin avain ja arvo rakenteisen asetuksen renderöintiä varten.

{% for key, val in settings.items() %}
{{ key }} = {{ val }}
{% endfor %}

Silmukkamuuttuja

Silmukan sisällä Jinja2 tarjoaa muuttujan loop.index nykyistä järjestysnumeroa varten sekä loop.first- ja loop.last-arvot kätevinä totuusarvoina.

{% for s in servers %}
server{{ loop.index }} {{ s }};
{% endfor %}

Yksinkertainen if-lohko

if-lohko renderöi sisältönsä vain ehdon ollessa tosi, joten valinnaiset asetukset näkyvät vain silloin, kun niiden pitääkin.

{% if enable_ssl %}
ssl on;
{% endif %}

if, elif ja else

Ketjuttakaa vaihtoehdot elif-haaroilla ja viimeisellä else-haaralla. Täsmälleen yksi haara renderöidään Pythonin tapaan.

{% if env == 'prod' %}
level = warn
{% else %}
level = debug
{% endif %}

Ehdot silmukoiden sisällä

Sijoittakaa if for-silmukan sisään, jotta renderöitte vain ehdon täyttävät alkiot, esimerkiksi ohitatte käytöstä poistetut palvelimet palvelinjoukossa.

{% for h in hosts %}
{% if h.enabled %}
server {{ h.ip }};
{% endif %}
{% endfor %}

Tyhjeen hallinta

Silmukoista voi jäädä tyhjiä rivejä. Viiva, kuten {%- -%}, poistaa ympäröivän tyhjeen ja tekee tulosteesta siistin.

{%- for h in hosts -%}
{{ h }}
{%- endfor -%}

for-silmukan else-haara

for-silmukalla voi olla else-haara, joka suoritetaan vain luettelon ollessa tyhjä. Se sopii erinomaisesti järkevän vararivin tuottamiseen.

{% for h in backends %}
server {{ h }};
{% else %}
# no backends defined
{% endfor %}

Tulostus- ja logiikkamerkinnät

Pidäkä nämä erillään: {{ }} tulostaa arvon, kun taas {% %} ohjaa suorituspolkua mutta ei tulosta itse mitään.

Pikatarkistus

Haluatte toistaa asetusrivin jokaiselle luettelossa olevalle isännälle. Millä merkinnällä silmukka aloitetaan?

Kertaus

Osaatte nyt käyttää for-silmukkaa, haarautua if-ehdolla, lukea loop.index-arvon, sisällyttää rakenteita toisiinsa ja poistaa tyhjeitä. Yksi template kirjoittaa nyt dynaamiset asetukset. ✨

Aloita maksutta

Opi YAML tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Silmukat ja if-lohkot malleissa” ilmainen?

Kyllä – oppitunnin ”Silmukat ja if-lohkot malleissa” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Ansible Academy-kurssin, päivitä CoddyKit PROhon. Ansible Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Silmukat ja if-lohkot malleissa”?

Luokaa toistuvia asetusten osioita. Harjoittelet Ansible Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Ansible Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Ansible Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Silmukat ja if-lohkot malleissa”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Ansible Academy-oppitunnilla?

Kyllä. Jokainen Ansible Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. template-moduuli ja .j2-tiedostot
  2. Muuttujat ja lausekkeet Jinja2:ssa
  3. Silmukat ja if-lohkot malleissa
  4. Suodattimet: default, join ja upper
← Takaisin: Ansible Academy