Mahdolliset rooliriippuvuudet

Mahdolliset Rooliriippuvuudet



Ansible on yksi nykyajan vaikutusvaltaisimmista ja tunnetuimmista automaatiotyökaluista. Yksi Ansiblen merkittävistä ominaisuuksista, joka erottuu, ovat roolit.

Mahdolliset roolit viittaavat automaatiomääritelmien yhdistämiseen, jotta niitä on helppo käyttää uudelleen ja ylläpitää. On kuitenkin tapauksia, joissa tietyt roolit riippuvat muiden toimintojen asianmukaisesta toiminnasta.

Tässä opetusohjelmassa tutkimme Ansible-rooliriippuvuuksien toimivuutta, mitä ne ovat, miksi ne ovat välttämättömiä ja miten niitä määritellään ja käytetään.







Mahdolliset rooliriippuvuudet

Kuten muutkin kirjastoista tai moduuleista riippuvat työkalut ja apuohjelmat, Ansible-roolit voivat käyttää eri rooleja määritettyjen ohjeiden suorittamisessa.



Mahdolliset rooliriippuvuudet sallivat yhden roolin käyttää toisen toimintoja joko sisällyttämällä sen tehtävät tai käsittelijät.



Rooliriippuvuuksien määrittely

Ansiblessa voimme määrittää riippuvuudet roolin meta/main.yml-tiedostossa 'dependencies'-avainsanalla.





Esimerkki 1: Mahdollinen rooliriippuvuus

Osoittakaamme, kuinka voimme luoda ja käyttää Ansible-rooliriippuvuutta.

Oletetaan, että meillä on 'verkkopalvelin'-niminen rooli, joka riippuu toisesta 'palomuuriksi' kutsutusta roolista varmistaakseen, että tarvitsemamme portit ovat avoinna.



Verkkopalvelinroolin meta/main.yml näyttää samanlaiselta kuin seuraavassa:

---
riippuvuudet:
- rooli: palomuuri

Kuten arvata saattaa, tämä kertoo Ansiblelle, että verkkopalvelinrooli edellyttää palomuuriroolin toimimista oikein.

Esimerkki 2: Parametrisoitu riippuvuus

Voimme myös siirtää parametrit rooleille, joista olemme riippuvaisia. Oletetaan, että palomuuri vaatii porttiluettelon avataksesi. Voimme välittää parametrit seuraavasti:

---
riippuvuudet:
- rooli: palomuuri
jonka:
open_ports:
-80
- 443

Tässä tapauksessa määritämme palomuuriroolin parametreiksi muuttujan, joka kulkee portin 80 ja portin 443 kautta.

Kuinka käyttää mahdollisia riippuvuusrooleja

Ennen kuin toinen rooli voi olla riippuvainen toisesta, riippuvaisen on oltava olemassa. Verkkopalvelin- ja palomuurirooleissa palomuuriroolin on oltava olemassa ensin.

Voit käyttää ansible-galaxy-komentoa roolien luomiseen seuraavasti:

$ ansible-galaxy init palomuuri
$ ansible-galaxy init -verkkopalvelin

Kun olemme luoneet roolin, voimme määritellä tehtävät, jotka haluamme suorittaa pääroolissa.

Esimerkiksi tiedostossa firewall/tasks/main.yml voimme määrittää tehtävät seuraavasti:

---
- nimi: Avaa portit
palomuuri:
portti: '{{ item }}'
pysyvä: totta
tila: käytössä
with_items: '{{ open_ports }}'

Seuraava vaihe on määrittää riippuvat roolit meta/main.yml-tiedostossa edellisen esimerkin mukaisesti.

Lopuksi voit käyttää pelikirjan pääroolia seuraavasti:

---
- isännät: verkkopalvelimet
roolit:
- verkkopalvelin

Kun suoritamme edellisen pelikirjan esimerkin, Ansible suorittaa tehtävät palomuurin roolista ja siirtyy sitten verkkopalvelinroolin tehtäviin.

Ansible Galaxyn rooliriippuvuuksien käyttäminen

Ansible Galaxy on Ansible-roolien arkisto, jos et tunne sitä. Jos sinulla on käytettävissä oleva rooli Ansible Galaxyssa, jota haluat käyttää, voit määrittää sen nimiavaruuden avulla seuraavasti:

---
riippuvuudet:
- geerlingguy.palomuuri

Varmista kuitenkin, että asennat sen ansible-galaxy-komennolla:

$ ansible-galaxy asenna geerlingguy.firewall

Johtopäätös

Opimme Ansible-rooliriippuvuuksien toimivuudesta. Käsittelimme niiden luomista ja käyttöä, parametrien välittämistä ja paljon muuta. Käyttämällä täällä oppimiamme taitoja voit ottaa käyttöön vankan ja modulaarisen tavan käyttää koodia uudelleen, varmistaa johdonmukaisuus ja ylläpitää modulaarisuutta Ansible-tehtävissä.