Kuidas kasutada Ansible'is silte

Kuidas Kasutada Ansible Is Silte



Mängud, rollid ja ülesanded on võimalik struktuur ja see ansible struktuur sisaldab olulist atribuuti, mida Ansibles nimetatakse siltideks. Kui käivitame Ansibles mänguraamatu, saate kasutada käske -tags ja -skip tags, et saaksime täita ainult teatud ülesandeid, mänge ja rolle. Kui meil on käsiraamat, mis sisaldab nii palju ülesandeid, kuid me ei soovi kõiki juhendi ülesandeid täita, siis selle asemel, et täita tervet juhendit, käivitame lihtsalt mõned toimingud, kasutades Ansible mänguraamatus käsku tag.

Arutleme selles teemas siltide üle, mis on Ansible'i üks olulisemaid tahke. Püüame selgitada, mis on märgendid ja kuidas need Ansible'is töötavad, kuna see on Ansible'i platvormi hämmastav funktsioon.







Näiteks võib mänguraamat sisaldada kolme kohustust: mooduli installimine, konfigureerimine ja juurutatud mooduli oleku kontrollimine, näiteks kas teenus töötab ja on juurdepääsetav. Kuna peame lihtsalt nägema mõne kaugmasina moodulite olekut, kasutame selles olukorras Ansible silte, mitte ei täida kõiki mänguraamatus olevaid ülesandeid. See võimaldab meil käivitada ainult teatud toimingut, mis võimaldab meil vähendada tööaega, hoides kõiki seotud tegevusi ühes mänguraamatus.



Ansible Playbooki siltide kasutamise eeltingimused

Praktiliste näidete paigutamiseks võimalikku tarkvara peame täitma järgmised nõuded.



Muudatuste tegemiseks peab olema Ansible juhtserver. Märgendi parameetri kasutamiseks Ansible tarkvaras peame nendega suhtlema kohalikud hostid. Sel juhul kasutame kohalikku hosti kogu täitmise ajal sihtkaugserverina. Loome mänguraamatuid, täidame Ansible sildi käske ja jälgime tulemusi ansible-kontrolleri seadmest kaughostides.





Püüame kasutada erinevaid stsenaariume, et uurida mõningaid Ansible'i silte, et õppija saaks hõlpsasti aru Ansible'i mänguraamatu siltide mõistest.

Näide 01: Juurdepääs ühele ülesandele Ansible Playbookis

Rakendame Ansible'is, pakkudes mänguraamatus mitu ülesannet ja seejärel pääseme juurde ainult ühele ülesandele, kasutades selles olevaid silte. Selleks loome esmalt mänguraamatu, kirjutades järgmise käsu:



[root@master ansible]# nano ansible_tags.yml

Pärast esitusraamatu ansible_tags.yml loomist ja käivitamist. Nüüd hakkame käske mänguraamatusse kirjutama. Esiteks edastame pakutud hostid parameetris 'hosts', mida kasutame 'localhost'. Seejärel kirjutame parameetrisse 'gather_facts' väärtuse 'false', et me ei saaks mänguraamatu täitmisel kohaliku hosti kohta lisateavet.

Pärast seda hakkame ükshaaval parameetri “ülesannete” alla loetlema tegevusi, mida soovime täita. Esimese protsessi käigus teeme kindlaks, kas dokument on kohalikus hosti masinas olemas. Kui see on saadaval, salvestame selle parameetrisse 'register' ja seejärel anname märgendile kordumatu nime, et juhendi täitmisel oleks meil hõlbus sildi juurde pääseda. Teises ülesandes teeme sama, mida tegime esimeses ülesandes, kuid märgend peab olema kordumatu ja seejärel kasutame silumisvalikut, et näidata ülesannet koos seotud sõnumiga.

- võõrustajad:

- kohalik host
koguda_facts: vale


ülesanded:
- nimi: kontrollige faili olemasolu x`
stat: path=./host.yml
register: fileExists
sildid: check_file


- silumine:
msg: '{{ 'Fail on olemas' kui fileExists.stat.exists else 'Faili ei leitud' }}'
sildid: check_file


- nimi: kontrollige, kas host.yml on praegusele kasutajale juurdepääsetav
kest: stat -c '%a' ./host.yml
registreerige: accessPath
sildid: check_access


- silumine:
msg: '{{ 'Fail on juurdepääsetav' if (accessPath.stdout|int) < 660 else 'Fail ei ole juurdepääsetav' }}'
sildid: check_access

Nüüd salvestame mänguraamatu ja sulgeme selle. Tahame käivitada esitusraamatu ansible_tags.yml, nii et kirjutame Ansible terminali järgmise käsu, et näidata kasutajatele väljundit.

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

Pärast ülaltoodud käsu käivitamist saame vastutasuks soovitud väljundi. Nagu allpool näidatud, täidetakse ainult üks ülesanne ja see kuvatakse väljundis, mis on 'kontrollige faili olemasolu'.

Näide 02: Ignoreeri konkreetset silti Ansible Playbookis

Siin on Ansible sildi teine ​​näide, kus me läheme vahelejätmise sildi juurde. Teie otsustada, kas soovite ignoreerida kõiki ülesandeid või eirata mõnda konkreetset Ansible'i mänguraamatu ülesannet. Kasutame näite 1 teostust ja siis jätame ülesande lihtsalt vahele, kirjutades Ansible terminali lihtsalt alloleva avalduse.

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

Ülaltoodud käsust oleme lihtsalt ignoreerinud ülesannet 'kontrollida faili olemasolu'. Nüüd kuvatakse väljundis ainult üks ülesanne, mis on rohelises kirjas 'juurdepääsetav'.

Näide 03: Jätkake ülesande käivitamist Ansible Playbookis

Rakendame kolmanda näite Ansible sildi põhjal. Selles näites kasutame märgendit 'alati', mis tähendab, et konkreetne silt käivitatakse alati Ansible Playbookis. Mänguraamatu käivitamiseks kasutage järgmist käsku:

[root@master ansible]# nano ansible_tags.yml

Mänguraamatus oleme loonud käivitamiseks mitu ülesannet, kuid viimases ülesandes edastasime märgendi 'alati', milleks on 'kustuta parool laost'. Järgmised on mänguraamatus rakendatud käsud:

- võõrustajad: kõik

koguda_facts: vale


ülesanded:
- nimi: kontrollige faili olemasolu
stat: path=./host.yml
register: fileExists
delegate_to: localhost
sildid: check_file


- silumine:
msg: '{{ 'Fail on olemas' kui fileExists.stat.exists else 'Faili ei leitud' }}'
sildid: check_file


- nimi: kontrollige, kas host.yml on praegusele kasutajale juurdepääsetav
kest: stat -c '%a' ./host.yml
registreerige: accessPath
delegate_to: localhost
sildid: check_access


- silumine:
msg: '{{ 'Fail on juurdepääsetav' if (accessPath.stdout|int) < 660 else 'Fail ei ole juurdepääsetav' }}'
sildid: check_access


- nimi: kustutage laost parool
reafail:
tee: '{{inventory_file}}'
regexp: '\b{{item}}.*\b'
olek: puudub
delegate_to: localhost
muutuma: valeks
sildid: alati
with_items:
- ansible_password

Pärast seda loome loendifaili, et luua ühendus kontrolleri ja sihtkaughosti vahel. Allpool on käsk:

[root@master ansible]# nano host.yml

Siin on laofail, mis sisaldab Ansible'i Linuxi_hostiga seotud teavet.

Kõik:

võõrustajad:
Linux_Host:
ansible_host: 192.168.3.229
ansible_user: ansible
võimalik_parool: ******
ansible_connection: ssh
ansible_port: 22

Soovitud väljundi saamiseks käivitame Ansible terminalis järgmise käsu:

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

Järeldus

Ansible'i silte on selles artiklis selgitatud. Nüüd mõistame siltide funktsiooni ja Ansible'i kohti, kus me neid rakendame. Oleme välja töötanud mitmeid näiteid, et aidata õppijal Ansible-märgendite kontseptsioonist aru saada.