Slik bruker du tagger i Ansible

Slik Bruker Du Tagger I Ansible



Lekene, rollene og oppgavene er den mulige strukturen, og denne strukturen inneholder den viktige egenskapen som kalles tagger i Ansible. Hver gang vi lanserer en playbook i Ansible, kan du bruke kommandoene -tags og -skip tags slik at vi bare kan utføre en bestemt serie med oppgaver, skuespill og roller. Hvis vi har en spillebok som inneholder så mange oppgaver, men vi ikke ønsker å utføre alle oppgavene i spilleboken, i stedet for å kjøre hele spilleboken, kjører vi bare noen få oppgaver ved å bruke tag-kommandoen i Ansible-spilleboken.

Vi skal diskutere tagger i dette emnet, som fungerer som en av de viktigste fasettene til Ansible. Vi skal prøve å forklare hva tagger er og hvordan tagger fungerer i Ansible fordi dette er en forvirrende funksjon ved Ansible-plattformen.







For eksempel kan en spillebok inneholde tre ansvarsområder: å installere modulen, konfigurere den og sjekke statusen til den distribuerte modulen, for eksempel om tjenesten kjører og er tilgjengelig. Siden vi bare trenger å se tilstanden til modulene på noen få eksterne maskiner, bruker vi Ansible-tagger i denne situasjonen i stedet for å utføre alle oppgavene i spilleboken. Det gjør det mulig for oss å kjøre en bestemt operasjon eksklusivt, og lar oss redusere kjøretiden ved å holde alle relaterte aktiviteter i en enkelt spillebok.



Forutsetninger for å bruke kodene i Ansible Playbook

For å sette de praktiske eksemplene i den aktuelle programvaren, må vi oppfylle følgende krav.



En Ansible-kontrollerende server må kreves slik at den kan gjøre endringer. For å bruke tag-parameteren i Ansible-programvaren, trenger vi at de lokale vertene kommuniserer med dem. I dette tilfellet bruker vi den lokale verten gjennom hele utførelsen som en ekstern målserver. Vi vil lage spillebøker, utføre Ansible-tag-kommandoer og overvåke resultatene på eksterne verter fra ansible-kontrollerenheten.





Vi vil ta sikte på å bruke forskjellige scenarier for å undersøke noen av Ansible-taggene slik at eleven enkelt kan forstå konseptet med tagger i en Ansible-spillebok.

Eksempel 01: Få tilgang til en enkelt oppgave i Ansible Playbook

Vi skal implementere i Ansible ved å gi flere oppgaver i spilleboken, og så vil vi bare få tilgang til en enkelt oppgave ved å bruke kodene i den. For å gjøre det, vil vi først lage spilleboken ved å skrive følgende kommando:



[root@master ansible]# nano ansible_tags.yml

Etter å ha opprettet og lansert ansible_tags.yml-spilleboken. Nå skal vi begynne å skrive kommandoene i spilleboken. Først vil vi sende de oppgitte vertene i 'hosts'-parameteren som vi bruker 'localhost'. Deretter vil vi skrive 'false'-verdien i 'gather_facts'-parameteren slik at vi ikke kan få ekstra informasjon om den lokale verten når vi kjører spilleboken.

Etter det vil vi begynne å liste opp aktivitetene under parameteren 'oppgaver' en etter en som vi ønsker å utføre. Vi vil avgjøre om dokumentet er der på den lokale vertsmaskinen i den første prosessen. Hvis den er tilgjengelig, vil vi lagre den i 'register'-parameteren og deretter gi det unike navnet til taggen slik at når vi kjører spilleboken, vil det være enkelt for oss å få tilgang til taggen. I den andre oppgaven vil vi gjøre det samme som vi har gjort i den første oppgaven, men taggen må være unik, og da vil vi bruke feilsøkingsalternativet til å vise frem oppgaven sammen med den relaterte meldingen.

- verter:

- lokal vert
samle_fakta: usant


oppgaver:
- navn: Sjekk filens eksistens x`
stat: bane=./vert.yml
register: fileksisterer
tags: check_file


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


- navn: Sjekk om host.yml er tilgjengelig for gjeldende bruker
skall: stat -c '%a' ./host.yml
register: accessPath
tags: check_access


- feilsøke:
msg: '{{ 'File accessible' if (accessPath.stdout|int) < 660 else 'File is not accessible' }}'
tags: check_access

Nå vil vi lagre spilleboken og lukke den. Vi ønsker å kjøre ansible_tags.yml-spilleboken, så vi vil skrive følgende kommando i Ansible-terminalen for å vise utdataene til brukerne.

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

Etter å ha kjørt kommandoen ovenfor, vil vi få ønsket utgang i retur. Som vist nedenfor, utføres bare én oppgave, og den vises i utdataene som er 'sjekk filens eksistens'.

Eksempel 02: Ignorer spesiell tag i Ansible Playbook

Her er det andre eksemplet på Ansible-taggen der vi går til 'hopp'-taggen. Det er opp til deg om du vil ignorere alle oppgavene eller du vil ignorere en bestemt oppgave i spilleboken i Ansible. Vi bruker eksempel 1-implementeringen, og så hopper vi bare over oppgaven ved å skrive setningen nedenfor i Ansible-terminalen.

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

Fra kommandoen ovenfor har vi ganske enkelt ignorert oppgaven 'sjekk fileksistens'. Nå vises bare en enkelt oppgave i utdataene som er 'filtilgjengelig' i grønn skrift.

Eksempel 03: Fortsett alltid å kjøre oppgaven i Ansible Playbook

Vi skal implementere det tredje eksemplet basert på Ansible-taggen. I dette eksemplet vil vi bruke 'alltid'-taggen som betyr at en bestemt tag alltid vil kjøres i Ansible Playbook. For å starte spilleboken, bruk følgende kommando:

[root@master ansible]# nano ansible_tags.yml

I playbook har vi laget flere oppgaver som skal kjøres, men vi passerte 'alltid'-taggen i den siste oppgaven som er 'slett passordet fra inventaret'. Følgende er kommandoen implementert i spilleboken:

- verter: alle

samle_fakta: usant


oppgaver:
- navn: Sjekk filens eksistens
stat: bane=./vert.yml
register: fileksisterer
delegate_to: localhost
tags: check_file


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


- navn: Sjekk om host.yml er tilgjengelig for gjeldende bruker
skall: stat -c '%a' ./host.yml
register: accessPath
delegate_to: localhost
tags: check_access


- feilsøke:
msg: '{{ 'File accessible' if (accessPath.stdout|int) < 660 else 'File is not accessible' }}'
tags: check_access


- navn: Slett passord fra inventaret
lineinfile:
bane: '{{inventory_file}}'
regexp: '\b{{vare}}.*\b'
tilstand: fraværende
delegate_to: localhost
bli: falsk
tags: alltid
with_items:
- ansible_password

Etter det vil vi lage inventarfilen for å bygge forbindelsen mellom kontrolleren og den eksterne målverten. Nedenfor er kommandoen:

[root@master ansible]# nano host.yml

Her er inventarfilen som inneholder informasjonen relatert til 'Linux_host' i Ansible.

Alle:

verter:
Linux_Vert:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: ******
ansible_connection: ssh
ansible_port: 22

For å få ønsket utgang, kjører vi følgende kommando i Ansible-terminalen:

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

Konklusjon

Tagger i Ansible er forklart i denne artikkelen. Vi forstår nå funksjonen til tagger og stedene i Ansible hvor vi skal bruke dem. For å hjelpe eleven til å forstå konseptet med Ansible-tagger, har vi utviklet en rekke eksempler.