Sanakirjojen käsittely silmukassa
Luokaa käyttäjiä avain–arvoaineiston perusteella.
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/zshNoutakaa 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. 🎉
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
- loop-avainsana luettelon käsittelyssä
- Sanakirjojen käsittely silmukassa
- Sisäkkäiset silmukat subelements-komennolla
- loop_control: label, index ja pause