Ansible Academy · Oppitunti

Sanakirjojen käsittely silmukassa

Luokaa käyttäjiä avain–arvoaineiston perusteella.

Oppitunti 2/413 vaihetta

Sanakirjojen käsittely silmukassa on ilmainen Ansible Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/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.

Luettelot eivät riitä

Käyttäjien luomiseen tarvitaan nimen lisäksi ryhmä, komentotulkki ja tila. Litteä luettelo ei pysty sisältämään näitä tietoja. Tarvitsette sanakirjojen luettelon. 🗂️

Sanakirjojen luettelo

Jokaisesta luettelon alkiosta tulee pieni avain–arvo-pareista koostuva sanakirja. Yhdellä silmukan iteraatiolla on tällöin käytettävissään useita nimettyjä kenttiä.

loop:
  - { name: alice, group: admin }
  - { name: bob, group: dev }

Avainten käsittely item.key-muodolla

Kun item on sanakirja, lukekaa jokainen kenttä muodossa item.fieldname. Näin item.name ja item.group hakevat arvot nykyisestä alkiosta.

- name: Add users
  ansible.builtin.user:
    name: "{{ item.name }}"
    group: "{{ item.group }}"
  loop:
    - { name: alice, group: admin }
    - { name: bob, group: dev }

Selkeämpi monirivinen muoto

Sulut tekevät rivinsisäisestä muodosta ahtaan. Kirjoittakaa jokainen sanakirja usealle riville, jotta luettavuus säilyy, kun alkioissa on paljon avaimia.

loop:
  - name: alice
    group: admin
    shell: /bin/bash
  - name: bob
    group: dev
    shell: /bin/zsh

Noutakaa luettelo muuttujista

Määritelkää sanakirjojen luettelo muuttujaksi ja silmukoikaa sitten sen yli. Tiedot ovat yhdessä paikassa, ja tehtävä pysyy lyhyenä ja uudelleenkäytettävänä.

vars:
  users:
    - { name: alice, group: admin }
tasks:
  - ansible.builtin.user:
      name: "{{ item.name }}"
    loop: "{{ users }}"

Silmukointi oikean sanakirjan yli

Kun käsittelette varsinaista avain–arvo-pareista koostuvaa sanakirjaa, välittäkää se dict2items-suodattimen läpi, jotta jokaisesta parista tulee silmukassa käsiteltävä alkio.

loop: "{{ ports | dict2items }}"

item.key ja item.value

dict2items-käsittelyn jälkeen kukin item sisältää kentät item.key ja item.value, jotka vastaavat alkuperäisen määrityksen nimeä ja tietoja.

- ansible.builtin.debug:
    msg: "{{ item.key }} = {{ item.value }}"
  loop: "{{ settings | dict2items }}"

Valinnaiset avaimet eri alkioissa

Kaikissa alkioissa ei tarvitse olla kaikkia avaimia. Yhdistäkää silmukkaan default-suodatin, jotta puuttuville kentille käytetään järkevää oletusarvoa.

shell: "{{ item.shell | default('/bin/sh') }}"

Sanakirjat pitävät tiedot järjestyksessä

Kun toisiinsa liittyvät kentät kootaan alkioittain yhteen, tiedot ja logiikka pysyvät erillään. Käyttäjän muokkaaminen tarkoittaa tietojen muokkaamista, ei itse tehtävän muuttamista.

Täysin idempotentti edelleen

Jokainen sanakirjan iteraatio on oma moduulikutsunsa, joten Ansible ilmoittaa jokaiselle käyttäjälle erikseen tilaksi changed tai ok, aivan kuten yksinkertaisilla luetteloilla.

Erinomainen joukkokokoonpanoihin

Käyttäjät, virtuaalipalvelimet ja palomuurisäännöt: kaikki useita määritteitä alkiota kohden sisältävät kokonaisuudet sopivat täydellisesti sanakirjojen luetteloon.

Pikatarkistus

Silmukoitte sanakirjojen luettelon yli. Miten luette kentän?

Kertaus: sanakirjojen silmukointi

Silmukoitte sanakirjojen luetteloiden yli, luitte item.name-kenttiä ja käytitte dict2items-suodatinta oikeille määrityksille. Seuraavaksi käsittelemme sisäkkäisiä silmukoita. 🎉

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 ”Sanakirjojen käsittely silmukassa” ilmainen?

Kyllä – oppitunnin ”Sanakirjojen käsittely silmukassa” 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 ”Sanakirjojen käsittely silmukassa”?

Luokaa käyttäjiä avain–arvoaineiston perusteella. 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 2/4.

Kuinka kauan ”Sanakirjojen käsittely silmukassa”-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