Sådan bruges tags i Ansible

Sadan Bruges Tags I Ansible



Legene, rollerne og opgaverne er den ansible struktur, og denne ansible struktur indeholder den vigtige egenskab, som kaldes tags i Ansible. Når vi starter en playbook i Ansible, kan du bruge kommandoerne -tags og -skip tags, så vi kun kan udføre en bestemt række opgaver, skuespil og roller. Hvis vi har en playbook, der indeholder så mange opgaver, men vi ikke ønsker at udføre alle opgaver i playbook, i stedet for at udføre hele playbook, vil vi bare køre et par opgaver ved at bruge tag-kommandoen i Ansible playbook.

Vi vil diskutere tags i dette emne, som fungerer som en af ​​de vigtigste facetter af Ansible. Vi vil forsøge at forklare, hvad tags er, og hvordan tags fungerer i Ansible, fordi dette er en forvirrende funktion ved Ansible-platformen.







For eksempel kan en playbook indeholde tre ansvarsområder: at installere modulet, konfigurere det og kontrollere status for det implementerede modul, såsom om tjenesten kører og er tilgængelig. Da vi blot skal se modulernes tilstand på nogle få fjernmaskiner, bruger vi Ansible-tags i denne situation i stedet for at udføre alle opgaverne i playbook. Det giver os mulighed for udelukkende at køre en bestemt operation, hvilket giver os mulighed for at reducere køretiden ved at opbevare alle relaterede aktiviteter i en enkelt spillebog.



Forudsætninger for at bruge tags i Ansible Playbook

For at indsætte de praktiske eksempler i den mulige software skal vi opfylde følgende krav.



Der skal kræves en Ansible-kontrollerende server, så den kan foretage ændringer. For at bruge tag-parameteren i Ansible-software skal vi have de lokale værter til at kommunikere med dem. I dette tilfælde bruger vi den lokale vært under udførelsen som en målfjernserver. Vi vil oprette playbooks, udføre Ansible tag-kommandoer og overvåge resultaterne på fjernværter fra ansible-controllerenheden.





Vi vil sigte efter at anvende forskellige scenarier til at undersøge nogle få af Ansible-taggene, så den lærende let kan forstå begrebet tags i en Ansible-spillebog.

Eksempel 01: Adgang til en enkelt opgave i Ansible Playbook

Vi skal implementere i Ansible ved at levere flere opgaver i afspilningsbogen, og så får vi kun adgang til en enkelt opgave ved at bruge tags i den. For at gøre det, vil vi først oprette playbook ved at skrive følgende kommando:



[root@master ansible]# nano ansible_tags.yml

Efter oprettelse og lancering af ansible_tags.yml spillebogen. Nu vil vi begynde at skrive kommandoerne i afspilningsbogen. Først videregiver vi de angivne værter i 'værtsparameteren', som vi vil bruge 'localhost'. Derefter vil vi skrive 'false' værdien i 'gather_facts' parameteren, så vi ikke kan få den ekstra information om den lokale vært, når vi udfører playbook.

Derefter begynder vi at liste de aktiviteter under parameteren 'opgaver' én efter én, som vi ønsker at udføre. Vi vil afgøre, om dokumentet er der på den lokale værtsmaskine i den første proces. Hvis det er tilgængeligt, gemmer vi det i 'register'-parameteren, og så giver vi det unikke navn til tagget, så når vi udfører playbooken, vil det være nemt for os at få adgang til tagget. I den anden opgave vil vi gøre det samme, som vi har gjort i den første opgave, men tagget skal være unikt, og så vil vi bruge fejlfindingsmuligheden til at vise opgaven sammen med den relaterede besked.

- værter:

- lokal vært
indsamle_fakta: falsk


opgaver:
- navn: Tjek filens eksistens x`
stat: sti=./host.yml
register: filEksisterer
tags: check_file


- fejlfinde:
msg: '{{ 'File exists' if fileExists.stat.exists else 'File not found' }}'
tags: check_file


- navn: Tjek om host.yml er tilgængelig for den nuværende bruger
shell: stat -c '%a' ./host.yml
register: accessPath
tags: check_access


- fejlfinde:
msg: '{{ 'Fil tilgængelig' if (accessPath.stdout|int) < 660 else 'Filen er ikke tilgængelig' }}'
tags: check_access

Nu vil vi gemme spillebogen og derefter lukke den. Vi ønsker at køre ansible_tags.yml playbook, så vi vil skrive følgende kommando i Ansible terminalen for at vise outputtet til brugerne.

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

Efter at have kørt kommandoen ovenfor, får vi det ønskede output til gengæld. Som vist nedenfor udføres kun én opgave, og den vises i outputtet, som er 'tjek fileksistens'.

Eksempel 02: Ignorer bestemt tag i Ansible Playbook

Her er det andet eksempel på Ansible-tagget, hvor vi går til 'spring'-tagget. Det er op til dig, om du vil ignorere alle opgaverne, eller du vil ignorere en bestemt opgave i spillebogen i Ansible. Vi bruger eksempel 1-implementeringen, og så springer vi bare opgaven over ved blot at skrive nedenstående erklæring i Ansible-terminalen.

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

Fra kommandoen ovenfor har vi simpelthen ignoreret opgaven 'tjek fileksistens'. Nu vises kun en enkelt opgave i outputtet, som er 'fil tilgængelig' med grøn skrift.

Eksempel 03: Fortsæt altid med at køre opgaven i Ansible Playbook

Vi skal implementere det tredje eksempel baseret på Ansible-tagget. I dette eksempel vil vi bruge 'always'-tagget, hvilket betyder, at et bestemt tag altid vil køre i Ansible Playbook. For at starte afspilningsbogen skal du bruge følgende kommando:

[root@master ansible]# nano ansible_tags.yml

I afspilningsbogen har vi oprettet flere opgaver, der skal køres, men vi bestod 'altid'-tagget i den sidste opgave, som er 'slet adgangskoden fra inventaret'. Følgende er kommandoen implementeret i afspilningsbogen:

- værter: alle

indsamle_fakta: falsk


opgaver:
- navn: Tjek filens eksistens
stat: sti=./host.yml
register: filEksisterer
delegate_to: localhost
tags: check_file


- fejlfinde:
msg: '{{ 'File exists' if fileExists.stat.exists else 'File not found' }}'
tags: check_file


- navn: Tjek om host.yml er tilgængelig for den nuværende bruger
shell: stat -c '%a' ./host.yml
register: accessPath
delegate_to: localhost
tags: check_access


- fejlfinde:
msg: '{{ 'Fil tilgængelig' if (accessPath.stdout|int) < 660 else 'Filen er ikke tilgængelig' }}'
tags: check_access


- navn: Slet adgangskode fra inventar
lineinfil:
sti: '{{inventory_file}}'
regexp: '\b{{vare}}.*\b'
tilstand: fraværende
delegate_to: localhost
blive: falsk
tags: altid
with_items:
- ansible_password

Derefter vil vi oprette inventarfilen for at bygge forbindelsen mellem controlleren og mål-fjernværten. Nedenfor er kommandoen:

[root@master ansible]# nano host.yml

Her er inventarfilen, der indeholder information relateret til 'Linux_host' i Ansible.

Alle:

værter:
Linux_Host:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: ******
ansible_connection: ssh
ansible_port: 22

For at få det ønskede output, kører vi følgende kommando i Ansible-terminalen:

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

Konklusion

Tags i Ansible er blevet forklaret i denne artikel. Vi forstår nu funktionen af ​​tags og de steder i Ansible, hvor vi vil anvende dem. For at hjælpe eleven med at forstå begrebet Ansible-tags har vi udviklet en række eksempler.