Mahdolliset sisäkkäiset muuttujat

Mahdolliset Sisakkaiset Muuttujat



Ansible on yksi tehokkaimmista ilmaisista ja avoimen lähdekoodin automaatiotyökaluista, joka tukee DevOps-tehtävien automatisointia, kuten ohjelmistojen provisiointia, konfiguraatioiden hallintaa ja sovellusten käyttöönottoa.

Yksi Ansiblen voiman kulmakivistä on sen kyky käyttää muuttujia, joiden avulla voidaan tallentaa tietoa ja viitata siihen leikkikirjoissa, rooleissa ja malleissa.

Sisäkkäiset muuttujat Ansiblessa viittaavat ominaisuuteen määrittää muuttuja toisen muuttujan sisällä. Nämä voivat auttaa yksinkertaistamaan ja jäsentämään tietojasi tehden Ansible-pelikirjoista luettavampia ja hallittavampia.







Tämä opetusohjelma opettaa meille, kuinka sisäkkäisiä muuttujia käytetään Ansible YAML -määritelmissä. Tähän sisältyy sisäkkäisten muuttujien määrittäminen ja niihin pääsy.



Mitä ovat mahdolliset sisäkkäiset muuttujat?

Aloitetaan määrittelemällä, mitä Ansible-sisäkkäiset muuttujat ovat.



Voimme määrittää muuttujia, kuten merkkijonoja, kokonaislukuja, Boolen ja muita monimutkaisia ​​tietorakenteita, kuten sanakirjoja ja luetteloita Ansiblessa. Lista tai sanakirja on esimerkki sisäkkäisestä muuttujasta.





Sisäkkäisten muuttujien päärooli on järjestää data hierarkkisemmin, mikä on helpompi lukea ja ylläpitää.

Sisäkkäiset muuttujat tarjoavat myös erittäin tehokkaan tavan viitata dynaamisesti aliarvoon toisen muuttujan arvon perusteella.



Luo sisäkkäisiä muuttujia

Voimme käyttää YAML-syntaksia Ansiblen sisäkkäisten muuttujien määrittämiseen ja alustamiseen. Esimerkki on seuraava:

käyttäjät:
linuxhint:
tunnus: 1001
kuori: '/bin/bash'
admin:
tunnus: 1002
kuori: '/bin/zsh'

Annetussa esimerkissä määrittelemme sanakirjan nimeltä 'käyttäjät' ja kaksi muuta sisäkkäistä sanakirjaa Linuxhintille ja admin-käyttäjille.

Viittaa sisäkkäisiin muuttujiin

Voimme viitata sisäkkäisiin muuttujiin Ansiblessa käyttämällä piste- tai hakasulkumerkintää. Harkitse seuraavaa esimerkkiä:

- virheenkorjaus:
msg: '{{ users.linuxhint.shell }}'

Tässä tapauksessa käytämme pistemerkintää päästäksemme shell-avaimen arvoon 'linuxhint'-sanakirjasta, joka on sisäkkäinen 'käyttäjät'-sanakirjan sisällä.

Hakasulkujen merkintä on myös erittäin hyödyllinen, kun viitataan muuttujaan dynaamisesti. Esimerkki on seuraava:

- set_fact:
select_user: 'linuxhint'
- virheenkorjaus:
msg: '{{ users[selected_user].shell }}'

Tämä hakee määritellyn avaimen arvon.

Mahdollisten sisäkkäisten muuttujien asettaminen

Voimme asettaa sisäkkäiset muuttujat inventaariotiedostoon, Ansible-pelikirjaan tai mukana olevien Ansible-tiedostojen kautta.

Tarkastellaan erilaisia ​​esimerkkejä sisäkkäisten muuttujien määrittämisestä kussakin.

Sisäkkäisten muuttujien luominen mahdolliseen inventaariotiedostoon

Seuraava esimerkki näyttää, kuinka sisäkkäiset muuttujat luodaan Ansible-inventaaritiedostoon:

[verkko]
webserver1 ansible_host=192.168.1.10

[verkko: missä]
tietokannat:
db1: 'postgresql'
db2: 'mysql'

Kuten näet, sisällytämme tietokantaryhmään kaksi sisäkkäistä muuttujaa.

Sisäkkäisten muuttujien luominen Ansible Playbookissa

Voimme myös määrittää sisäkkäiset muuttujat pelikirjassa seuraavan esimerkin mukaisesti:

---
- isännät: web
jonka:
asetukset:
nginx:
portti: 80
apache:
portti: 8080
tehtävät:
- nimi: Tulosta apache-portti
debug:
msg: '{{ configs.apache.port }}'

Sisäkkäisten muuttujien kiertäminen

Ansible antaa meille myös mahdollisuuden iteroida sisäkkäisten muuttujien yli, kuten seuraavassa pelikirjan esimerkissä osoitetaan:

- isännät: localhost
jonka:
palvelut:
nginx:
portti: 80
tila: aloitettu
apache:
portti: 8080
tila: pysähtynyt
tehtävät:
- nimi: Varmista, että palvelut ovat halutussa tilassa
palvelu:
nimi: '{{ item.key }}'
tila: '{{ item.value.state }}'
with_dict: '{{ palvelut }}'

Annetun esimerkin tulee toistaa jokaista palvelua ja varmistaa, että se on halutussa tilassa.

Johtopäätös

Tutkimme Ansiblen toimintoa sisäkkäisten muuttujien määrittämisessä ja viittaamisessa tarjotaksemme tehokkaan tavan järjestää ja jäsentää dataa kokoonpanon hallintaa varten.