Tunnisteiden käyttäminen Ansiblessa

Tunnisteiden Kayttaminen Ansiblessa

Näytelmät, roolit ja tehtävät ovat ansible-rakenne, ja tämä ansible-rakenne sisältää tärkeän attribuutin, jota kutsutaan tunnisteiksi Ansiblessa. Aina kun julkaisemme pelikirjan Ansiblessa, voit käyttää -tags- ja -skip tags -komentoja, jotta voimme suorittaa vain tietyn sarjan tehtäviä, näytelmiä ja rooleja. Jos meillä on pelikirja, joka sisältää niin monia tehtäviä, mutta emme halua suorittaa kaikkia pelikirjan tehtäviä, sen sijaan että suoritamme koko pelikirjan, suoritamme vain muutaman tehtävän käyttämällä Ansible-pelikirjan tag-komentoa.

Aiomme keskustella tämän aiheen tunnisteista, jotka ovat yksi Ansiblen tärkeimmistä puolista. Yritämme selittää, mitä tagit ovat ja miten tagit toimivat Ansiblessa, koska tämä on Ansible-alustan hämmentävä ominaisuus.







Esimerkiksi pelikirja voi sisältää kolme tehtävää: moduulin asentaminen, konfigurointi ja käyttöönotetun moduulin tilan tarkistaminen, kuten onko palvelu käynnissä ja käytettävissä. Koska meidän on vain nähtävä moduulien tila muutamalla etäkoneella, käytämme tässä tilanteessa Ansible-tageja sen sijaan, että suoritamme kaikki pelikirjan tehtävät. Sen avulla voimme suorittaa tietyn toiminnon yksinomaan, jolloin voimme lyhentää käyttöaikaa pitämällä kaikki liittyvät toiminnot yhdessä pelikirjassa.



Ansible Playbookin tunnisteiden käytön edellytykset

Käytännön esimerkkien sijoittamiseksi mahdolliseen ohjelmistoon meidän on täytettävä seuraavat vaatimukset.



Ansible-ohjauspalvelin on vaadittava, jotta se voi tehdä muutoksia. Jotta voimme käyttää tunnisteparametria Ansible-ohjelmistossa, tarvitsemme paikallisten isäntien kommunikoivan heidän kanssaan. Tässä tapauksessa käytämme paikallista isäntää koko suorituksen ajan kohdeetäpalvelimena. Luomme pelikirjoja, suoritamme Ansible tag -komentoja ja seuraamme tuloksia etäisännillä ansible-ohjainlaitteesta.





Pyrimme käyttämään erilaisia ​​skenaarioita tutkiaksemme muutamia Ansible-tunnisteita, jotta oppija voi helposti ymmärtää tunnisteiden käsitteen Ansible-pelikirjassa.

Esimerkki 01: Yksittäisen tehtävän käyttäminen Ansible Playbookissa

Aiomme toteuttaa Ansiblessa tarjoamalla useita tehtäviä pelikirjaan ja sitten pääsemme vain yhteen tehtävään käyttämällä siinä olevia tunnisteita. Tätä varten luomme ensin pelikirjan kirjoittamalla seuraavan komennon:



[root@master ansible]# nano ansible_tags.yml

Kun olet luonut ja käynnistänyt ansible_tags.yml-ohjekirjan. Nyt alamme kirjoittaa komentoja pelikirjaan. Ensin välitämme toimitetut isännät 'hosts'-parametrissa, jota käytämme 'localhost'. Sitten kirjoitamme 'false' arvon 'gather_facts'-parametriin, jotta emme voi saada ylimääräistä tietoa localhostista, kun suoritamme pelikirjan.

Sen jälkeen alamme listata 'tehtävät'-parametrin alle yksitellen ne toiminnot, jotka haluamme suorittaa. Määritämme ensimmäisessä prosessissa, onko asiakirja siellä paikallisessa isäntäkoneessa. Jos se on saatavilla, tallennamme sen 'register'-parametriin ja annamme tunnisteelle yksilöllisen nimen, jotta pelikirjan suorittamisen jälkeen meidän on helppo käyttää tagia. Toisessa tehtävässä teemme samoin kuin ensimmäisessä tehtävässä, mutta tunnisteen on oltava yksilöllinen, ja sitten käytämme debug-vaihtoehtoa esitelläksemme tehtävän yhdessä siihen liittyvän viestin kanssa.

-isännät:

- paikallinen isäntä
kerätä_facts: false


tehtävät:
- nimi: Tarkista tiedoston olemassaolo x`
stat: polku=./host.yml
rekisteri: fileExists
tunnisteet: check_file


- virheenkorjaus:
msg: '{{ 'Tiedosto on olemassa' jos fileExists.stat.exists else 'Tiedostoa ei löydy' }}'
tunnisteet: check_file


- nimi: Tarkista, onko host.yml nykyisen käyttäjän käytettävissä
kuori: stat -c '%a' ./host.yml
rekisteröidy: accessPath
tunnisteet: check_access


- virheenkorjaus:
msg: '{{ 'Tiedosto käytettävissä' if (accessPath.stdout|int) < 660 else 'Tiedosto ei ole käytettävissä' }}'
tunnisteet: check_access

Nyt tallennamme pelikirjan ja suljemme sen. Haluamme ajaa ansible_tags.yml-pelikirjan, joten kirjoitamme seuraavan komennon Ansible-päätteeseen esitelläksemme tuloksia käyttäjille.

[root@master ansible]# ansible-playbook ansible_tags.yml –tags check_file

Yllä olevan komennon suorittamisen jälkeen saamme vastineeksi halutun lähdön. Kuten alla näytetään, vain yksi tehtävä suoritetaan, ja se näkyy ulostulossa, joka on 'tarkista tiedoston olemassaolo'.

Esimerkki 02: Ohita tietty tunniste Ansible Playbookissa

Tässä on toinen esimerkki Ansible-tunnisteesta, jossa siirrymme 'ohita'-tunnisteeseen. On sinun päätettävissäsi, haluatko jättää huomioimatta kaikki tehtävät vai haluatko jättää huomiotta tietyn Ansiblen pelikirjan tehtävän. Käytämme esimerkin 1 toteutusta ja sitten ohitamme tehtävän kirjoittamalla alla olevan lausunnon Ansible-päätteeseen.

[root@master ansible]# ansible-playbook ansible_tags.yml --skip-tags check_file

Yllä olevasta komennosta olemme yksinkertaisesti jättäneet huomiotta 'tarkista tiedoston olemassaolo' -tehtävän. Nyt tulosteessa näkyy vain yksi tehtävä, joka on 'tiedosto käytettävissä' vihreällä fontilla.

Esimerkki 03: Jatka aina tehtävän suorittamista Ansible Playbookissa

Aiomme toteuttaa kolmannen esimerkin Ansible-tunnisteen perusteella. Tässä esimerkissä käytämme 'aina'-tunnistetta, mikä tarkoittaa, että tietty tunniste suoritetaan aina Ansible Playbookissa. Käynnistä pelikirja käyttämällä seuraavaa komentoa:

[root@master ansible]# nano ansible_tags.yml

Pelikirjassa olemme luoneet useita suoritettavia tehtäviä, mutta ohitimme 'aina' -tunnisteen viimeisessä tehtävässä, joka on 'poista salasana luettelosta'. Seuraavat ovat pelikirjassa toteutetut komennot:

- isännät: kaikki

kerätä_facts: false


tehtävät:
- nimi: Tarkista tiedoston olemassaolo
stat: polku=./host.yml
rekisteri: fileExists
delegate_to: localhost
tunnisteet: check_file


- virheenkorjaus:
msg: '{{ 'Tiedosto on olemassa' jos fileExists.stat.exists else 'Tiedostoa ei löydy' }}'
tunnisteet: check_file


- nimi: Tarkista, onko host.yml nykyisen käyttäjän käytettävissä
kuori: stat -c '%a' ./host.yml
rekisteröidy: accessPath
delegate_to: localhost
tunnisteet: check_access


- virheenkorjaus:
msg: '{{ 'Tiedosto käytettävissä' if (accessPath.stdout|int) < 660 else 'Tiedosto ei ole käytettävissä' }}'
tunnisteet: check_access


- nimi: Poista salasana varastosta
rivitiedosto:
polku: '{{inventory_file}}'
regexp: '\b{{item}}.*\b'
tila: poissa
delegate_to: localhost
muuttua: vääräksi
Tunnisteet: aina
with_items:
- ansible_password

Tämän jälkeen luomme inventaariotiedoston yhteyden muodostamiseksi ohjaimen ja kohteena olevan etäisännän välille. Alla on komento:

[root@master ansible]# nano host.yml

Tässä on luettelotiedosto, joka sisältää tiedot, jotka liittyvät Ansiblen 'Linux_host' -sovellukseen.

Kaikki:

isännät:
Linux_Host:
ansible_host: 192.168.3.229
ansible_user: ansible
mahdollinen_salasana: ******
ansible_connection: ssh
ansible_port: 22

Halutun lähdön saamiseksi suoritamme seuraavan komennon Ansible-päätteessä:

[root@master ansible]# ansible-playbook ansible_tags.yml --tags check_file -i host.yml

Johtopäätös

Ansiblen tunnisteet on selitetty tässä artikkelissa. Ymmärrämme nyt tunnisteiden toiminnan ja Ansiblen paikat, joissa niitä käytetään. Olemme kehittäneet useita esimerkkejä auttaaksemme oppijaa ymmärtämään Ansible-tagien käsitteen.