Ansible Academy · Oppitunti

loop-avainsana luettelon käsittelyssä

Asentakaa useita paketteja yhdessä tehtävässä.

Oppitunti 1/413 vaihetta

loop-avainsana luettelon käsittelyssä on ilmainen Ansible Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/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.

Lopettakaa tehtävien kopiointi

Tarvitsetteko kolme pakettia asennettavaksi? Kolmen lähes samanlaisen tehtävän kirjoittaminen on työlästä ja altista virheille. loop-avainsanalla yksi tehtävä voidaan toistaa luettelon yli. 🔁

Mitä loop tekee

Lisätkää tehtävään loop ja antakaa sille luettelo. Ansible suorittaa tehtävän kerran jokaista alkiota kohden ja sijoittaa kunkin arvon moduulin argumentteihin.

Tutustukaa item-muuttujaan

Silmukoivassa tehtävässä luettelon nykyinen arvo on käytettävissä muodossa item. Viittaatte siihen merkinnällä {{ item }} kaikkialla, missä arvoa tarvitaan.

- name: Show each fruit
  ansible.builtin.debug:
    msg: "{{ item }}"
  loop:
    - apple
    - banana
    - cherry

Useiden pakettien asentaminen

Tyypillinen käyttötapaus on asentaa kokonainen pakettien luettelo yhdellä tehtävällä. Jokainen nimi välitetään pakettimoduulille item-muuttujan kautta.

- name: Install tools
  ansible.builtin.package:
    name: "{{ item }}"
    state: present
  loop:
    - git
    - curl
    - vim

Silmukointi muuttujassa olevan luettelon yli

Luettelon ei tarvitse olla kirjoitettuna suoraan tehtävään. Osoittakaa loop muuttujaan, jolloin sama tehtävä mukautuu muualla määrittelemiinne arvoihin.

vars:
  packages:
    - git
    - curl
tasks:
  - name: Install
    ansible.builtin.package:
      name: "{{ item }}"
    loop: "{{ packages }}"

loop ja with_items

Voitte nähdä vanhemmissa playbookeissa käytettävän with_items-rakennetta. Se toimii edelleen, mutta loop on nykyaikainen ja suositeltu muoto yksinkertaisille luetteloille.

Yksi tehtävä, monta tulosta

Silmukka suorittaa tehtävän kerran jokaista alkiota kohden, joten tulosteessa näkyy yksi tulorivi jokaista iteraatiota kohden. Näette tarkalleen, mitkä arvot muuttuivat.

Silmukat säilyvät idempotentteina

Silmukointi ei riko idempotenttiutta. Jos paketti on jo asennettu, kyseinen iteraatio ilmoittaa tilaksi ok; vain uudet paketit ilmoittavat tilaksi changed.

Monet paketinhallintaohjelmat käsittelevät eräajoja

Jotkin moduulit hyväksyvät luettelon suoraan, mikä on vielä nopeampaa. loop on kuitenkin yleiskäyttöinen toimintamalli, joka toimii lähes kaikkien moduulien kanssa.

Silmukointi myös numeroiden yli

Luettelot eivät sisällä vain merkkijonoja. Voitte silmukoida numeroiden tai minkä tahansa tietotyypin yli, ja item sisältää luettelon kulloinkin sisältämän arvon.

- name: Print ports
  ansible.builtin.debug:
    msg: "Port {{ item }}"
  loop:
    - 80
    - 443
    - 8080

Tyhjät luettelot ovat turvallisia

Jos luettelo on tyhjä, tehtävä suoritetaan yksinkertaisesti nolla kertaa. Virheitä tai haittoja ei synny. Mahdollisesti tyhjän muuttujan yli silmukointi on täysin turvallista.

Pikatarkistus

Miten silmukoivassa tehtävässä viitataan luettelon nykyiseen arvoon?

Kertaus: voitte silmukoida

Korvasitte toistuvat tehtävät yhdellä loop-rakenteella, käsittelitte jokaisen arvon item-muuttujan kautta ja säilytitte kaiken idempotenttina. Seuraavaksi käsittelemme sanakirjojen yli silmukointia. 🎉

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 ”loop-avainsana luettelon käsittelyssä” ilmainen?

Kyllä – oppitunnin ”loop-avainsana luettelon käsittelyssä” 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 ”loop-avainsana luettelon käsittelyssä”?

Asentakaa useita paketteja yhdessä tehtävässä. 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 1/4.

Kuinka kauan ”loop-avainsana luettelon käsittelyssä”-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. loop-avainsana luettelon käsittelyssä
  2. Sanakirjojen käsittely silmukassa
  3. Sisäkkäiset silmukat subelements-komennolla
  4. loop_control: label, index ja pause
← Takaisin: Ansible Academy