Silmukat ja if-lohkot malleissa
Luokaa toistuvia asetusten osioita.
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. ✨
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
- template-moduuli ja .j2-tiedostot
- Muuttujat ja lausekkeet Jinja2:ssa
- Silmukat ja if-lohkot malleissa
- Suodattimet: default, join ja upper