Kaip naudoti žymas Ansible

Kaip Naudoti Zymas Ansible



Pjesės, vaidmenys ir užduotys yra tinkama struktūra, o ši įmanoma struktūra turi svarbų atributą, vadinamą žymomis Ansible. Kai Ansible paleidžiame žaidimų knygą, galite naudoti komandas -tags ir -skip tags, kad galėtume atlikti tik tam tikrą užduočių, vaidmenų ir vaidmenų seriją. Jei turime žaidimų knygelę, kurioje yra tiek daug užduočių, bet nenorime vykdyti visų vadovo užduočių, užuot vykdyę visą knygelę, atliksime kelias užduotis naudodami žymos komandą Ansible žaidimų knygelėje.

Šioje temoje aptarsime žymas, kurios yra vienas iš svarbiausių Ansible aspektų. Pabandysime paaiškinti, kas yra žymos ir kaip jos veikia „Ansible“, nes tai gluminanti „Ansible“ platformos funkcija.







Pavyzdžiui, knygelėje gali būti trys pareigos: modulio įdiegimas, konfigūravimas ir įdiegto modulio būsenos tikrinimas, pvz., ar paslauga veikia ir ar ji pasiekiama. Kadangi mums tiesiog reikia matyti modulių būseną keliuose nuotoliniuose mašinose, šioje situacijoje naudojame žymas Ansible, o ne vykdysime visas žaidimo knygelėje nurodytas užduotis. Tai leidžia mums atlikti tik tam tikrą operaciją, o tai leidžia sutrumpinti veikimo laiką, nes visos susijusios veiklos laikomos vienoje knygelėje.



Ansible Playbook žymų naudojimo sąlygos

Norėdami pateikti praktinius pavyzdžius į galimą programinę įrangą, turime atitikti šiuos reikalavimus.



Turi būti reikalingas Ansible valdymo serveris, kad jis atliktų pakeitimus. Norėdami naudoti žymos parametrą Ansible programinėje įrangoje, mums reikia, kad vietiniai prieglobos su jais bendrautų. Šiuo atveju mes naudojame vietinį pagrindinį kompiuterį viso vykdymo metu kaip tikslinį nuotolinį serverį. Kursime žaidimų knygas, vykdysime Ansible tag komandas ir stebėsime rezultatus nuotoliniuose pagrindiniuose kompiuteriuose iš ansible-controller įrenginio.





Sieksime panaudoti skirtingus scenarijus, kad išnagrinėtume keletą Ansible žymų, kad besimokantysis galėtų lengvai suprasti žymų sąvoką Ansible žaidimo knygelėje.

01 pavyzdys: Prieiga prie vienos užduoties Ansible Playbook

Įdiegsime Ansible pateikdami kelias užduotis žaidimo knygelėje, o tada pasieksime tik vieną užduotį naudodami joje esančias žymas. Norėdami tai padaryti, pirmiausia sukursime žaidimų knygą, parašydami šią komandą:



[root@master ansible]# nano ansible_tags.yml

Sukūrę ir paleidę ansible_tags.yml grojaraštį. Dabar pradėsime rašyti komandas žaidimų knygelėje. Pirma, mes perduosime pateiktus pagrindinius kompiuterius „hosts“ parametre, kurį naudosime „localhost“. Tada parametre „gather_facts“ parašysime „false“ reikšmę, kad vykdydami žaidimų knygą negalėtume gauti papildomos informacijos apie vietinį pagrindinį kompiuterį.

Po to po parametru „užduotys“ pradėsime išvardyti veiklas, kurias norime vykdyti. Pirmajame procese nustatysime, ar dokumentas yra „localhost“ kompiuteryje. Jei jis yra, mes jį išsaugosime parametre „registras“, o tada žymai suteiksime unikalų pavadinimą, kad vykdydami žaidimų knygą mums būtų lengva prieiti prie žymos. Antroje užduotyje darysime tą patį, kaip ir pirmoje užduotyje, tačiau žyma turi būti unikali, o tada naudosime derinimo parinktį, kad parodytume užduotį kartu su susijusiu pranešimu.

- šeimininkai:

- vietinis šeimininkas
rinkti_faktus: klaidinga


užduotys:
- pavadinimas: patikrinkite failo egzistavimą x`
stat: kelias=./host.yml
registras: failas egzistuoja
žymės: check_file


- derinti:
msg: '{{ 'Failas egzistuoja', jei fileExists.stat.exists kitu 'Failas nerastas' }}'
žymės: check_file


- pavadinimas: patikrinkite, ar dabartinis vartotojas gali pasiekti host.yml
apvalkalas: stat -c '%a' ./host.yml
registracija: accessPath
žymės: check_access


- derinti:
msg: '{{ 'Failas pasiekiamas' if (accessPath.stdout|int) < 660 else 'Failas nepasiekiamas' }}'
žymės: check_access

Dabar išsaugosime žaidimų knygą ir uždarysime ją. Norime paleisti ansible_tags.yml grojaraštį, todėl Ansible terminale parašysime šią komandą, kad vartotojams parodytume išvestį.

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

Paleidę aukščiau pateiktą komandą, mainais gausime norimą išvestį. Kaip parodyta toliau, vykdoma tik viena užduotis, kuri rodoma išvestyje, kuri yra „patikrinti failo egzistavimą“.

02 pavyzdys: nepaisykite konkrečios žymos Ansible Playbook

Čia yra antrasis Ansible žymos pavyzdys, kuriame pereiname prie žymos „praleisti“. Nuo jūsų priklauso, ar norite nepaisyti visų užduočių, ar norite nepaisyti tam tikros „Ansible“ žaidimo knygos užduoties. Mes naudojame 1 pavyzdžio įgyvendinimą, tada tiesiog praleisime užduotį tiesiog parašydami toliau pateiktą teiginį Ansible terminale.

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

Iš aukščiau pateiktos komandos mes tiesiog ignoravome užduotį „patikrinti failo egzistavimą“. Dabar išvestyje rodoma tik viena užduotis, kuri yra „failas pasiekiamas“ žaliu šriftu.

03 pavyzdys: Visada vykdykite užduotį Ansible Playbook

Mes ketiname įgyvendinti trečiąjį pavyzdį pagal Ansible žymą. Šiame pavyzdyje naudosime žymą „visada“, o tai reiškia, kad tam tikra žyma visada bus vykdoma Ansible Playbook. Norėdami paleisti žaidimų knygą, naudokite šią komandą:

[root@master ansible]# nano ansible_tags.yml

Žaidimų knygelėje sukūrėme kelias vykdytinas užduotis, tačiau paskutinėje užduotyje, kuri yra „ištrinti slaptažodį iš inventoriaus“, perdavėme žymą „visada“. Toliau pateikiamos žaidimo knygelėje įdiegtos komandos:

- šeimininkai: visi

rinkti_faktus: klaidinga


užduotys:
- pavadinimas: patikrinkite failo egzistavimą
stat: kelias=./host.yml
registras: failas egzistuoja
delegate_to: localhost
žymės: check_file


- derinti:
msg: '{{ 'Failas egzistuoja', jei fileExists.stat.exists kitu 'Failas nerastas' }}'
žymės: check_file


- pavadinimas: patikrinkite, ar dabartinis vartotojas gali pasiekti host.yml
apvalkalas: stat -c '%a' ./host.yml
registracija: accessPath
delegate_to: localhost
žymės: check_access


- derinti:
msg: '{{ 'Failas pasiekiamas' if (accessPath.stdout|int) < 660 else 'Failas nepasiekiamas' }}'
žymės: check_access


- vardas: ištrinti slaptažodį iš inventoriaus
eilutės failas:
kelias: „{{inventory_file}}“
reguliarioji išraiška: '\b{{item}}.*\b'
būsena: nėra
delegate_to: localhost
tapti: klaidinga
žymės: visada
with_items:
- galimas_slaptažodis

Po to sukursime inventoriaus failą, kad sukurtume ryšį tarp valdiklio ir tikslinio nuotolinio kompiuterio. Žemiau yra komanda:

[root@master ansible]# nano host.yml

Čia yra inventoriaus failas, kuriame yra informacija, susijusi su „Linux_host“ Ansible.

Visi:

šeimininkai:
Linux_Host:
ansible_host: 192.168.3.229
ansible_user: ansible
galimas_slaptažodis: ******
ansible_connection: ssh
ansible_port: 22

Norėdami gauti norimą išvestį, Ansible terminale vykdysime šią komandą:

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

Išvada

Žymos Ansible buvo paaiškintos šiame straipsnyje. Dabar suprantame žymų funkciją ir vietas Ansible, kur jas pritaikysime. Siekdami padėti mokiniui suprasti Ansible žymų sąvoką, sukūrėme įvairių pavyzdžių.