Hvordan bruke tagger i Ansible

Hvordan bruke tagger i Ansible

Spillene, rollene og oppgavene er den vanskelige strukturen, og denne ansible strukturen inneholder det viktige attributtet som kalles tagger i Ansible. Hver gang vi lanserer en spillbok i Ansible, kan du bruke -tags og -skip tags -kommandoene slik at vi bare kan utføre en bestemt serie med oppgaver, spill og roller. Hvis vi har en spillbok som inneholder så mange oppgaver, men vi ikke ønsker å utføre alle oppgavene i spillboken, i stedet for å utføre hele spillboken, vil vi bare kjøre noen få oppgaver ved å bruke tag -kommandoen i Ansible Playbook.

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

For eksempel kan en spillbok inneholde tre ansvarsområder: å installere modulen, konfigurere den og sjekke statusen til den distribuerte modulen, for eksempel om tjenesten kjører og tilgjengelig. Siden vi ganske enkelt 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 lekeboken. Det gjør oss i stand til å kjøre en viss operasjon utelukkende, slik at vi kan redusere kjøretiden ved å oppbevare alle relaterte aktiviteter i en enkelt lekebok.

Forutsetninger for å bruke taggene i Ansible Playbook

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

Det må kreves en ansible kontrollerende server. For å bruke tag -parameteren i Ansible -programvaren, trenger vi de lokale vertene for å kommunisere med dem. I dette tilfellet bruker vi den lokale verten gjennom hele utførelsen som en Target Remote Server. Vi vil lage spillbøker, utføre Ansible tag-kommandoer og overvåke resultatene på eksterne verter fra Ansible-Controller-enheten.

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

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

Vi kommer til å implementere i Ansible ved å tilby flere oppgaver i spillboken, og så får vi tilgang til bare en enkelt oppgave ved å bruke taggene i den. For å gjøre det, vil vi først opprette spillboken ved å skrive følgende kommando:

[root@master ansible]# nano ansible_tags.yml

Etter å ha opprettet og lansert Ansible_tags.YML Playbook. Nå begynner vi å skrive kommandoene i spillboken. Først vil vi passere de medfølgende vertene i "Hosts" -parameteren som vi vil bruke "Localhost". Deretter vil vi skrive den "falske" verdien i parameteren "Samle_facts" slik at vi ikke kan få den ekstra informasjonen om Localhost når vi utfører spillboken.

Etter det vil vi begynne å liste opp aktivitetene under "oppgavene" -parameteren en etter en som vi ønsker å utføre. Vi vil avgjøre om dokumentet er der på LocalHost -maskinen i den første prosessen. Hvis det er tilgjengelig, lagrer vi den i "Register" -parameteren, og så vil vi gi det unike navnet til taggen slik at når vi utfører spillboken, 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 for å vise frem oppgaven sammen med den relaterte meldingen.

- verter:
- lokal vert
Samle_facts: FALSE
oppgaver:
- Navn: Sjekk filens eksistens x '
stat: bane =./vert.yml
Register: Fileexists
Tagger: check_file
- Debug:
msg: "'fil eksisterer' hvis fileexists.stat.eksisterer ellers 'fil ikke funnet' "
Tagger: check_file
- Navn: Sjekk om verten.YML er tilgjengelig av nåværende bruker
Shell: Stat -C "%A" ./vert.yml
Register: AccessPath
Tagger: check_access
- Debug:
MSG: "'Fil tilgjengelig' if (AccessPath.stdout | int) < 660 else 'File is not accessible' "
Tagger: check_access

Nå vil vi lagre spillboken og deretter lukke den. Vi ønsker å kjøre Ansible_tags.YML Playbook slik at vi skriver følgende kommando i Ansible Terminal for å vise frem utdataene for brukerne.

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

Etter å ha kjørt kommandoen over, vil vi få ønsket utgang i retur. Som vist nedenfor er bare en oppgave utført, og som vises i utdataene som er "sjekk filens eksistens".

Eksempel 02: Ignorer en bestemt tag i Ansible Playbook

Her er det andre eksemplet på Ansible -taggen der vi skal til "hopp" -merket. Det er opp til deg om du vil ignorere alle oppgavene, eller du vil ignorere en bestemt oppgave fra spillboken i Ansible. Vi bruker eksemplet 1 -implementeringen, og da vil vi bare hoppe over oppgaven ved å skrive uttalelsen nedenfor i Ansible Terminal.

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

Fra kommandoen over har vi ganske enkelt ignorert oppgaven "sjekkfilen". Nå vises bare en enkelt oppgave i utdataene som er "fil tilgjengelig" 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" -merket som betyr at en bestemt tag alltid vil utføre i Ansible Playbook. For å starte spillboken, bruk følgende kommando:

[root@master ansible]# nano ansible_tags.yml

I spillboken har vi opprettet flere oppgaver for å kjøre, men vi passerte "alltid" -merket i den siste oppgaven som er "Slett passordet fra Inventory". Følgende er kommandoen implementert i spillboken:

- Verter: Alle
Samle_facts: FALSE
oppgaver:
- Navn: Sjekk eksistensen
stat: bane =./vert.yml
Register: Fileexists
delegat_to: localhost
Tagger: check_file
- Debug:
msg: "'fil eksisterer' hvis fileexists.stat.eksisterer ellers 'fil ikke funnet' "
Tagger: check_file
- Navn: Sjekk om verten.YML er tilgjengelig av nåværende bruker
Shell: Stat -C "%A" ./vert.yml
Register: AccessPath
delegat_to: localhost
Tagger: check_access
- Debug:
MSG: "'Fil tilgjengelig' if (AccessPath.stdout | int) < 660 else 'File is not accessible' "
Tagger: check_access
- Navn: Slett passord fra varelageret
lineInfile:
Sti: "Inventory_File"
regexp: '\ b item.*\ b '
Stat: fraværende
delegat_to: localhost
bli: falsk
Tagger: Alltid
med_items:
- Ansible_Password

Etter det vil vi opprette varelagerfilen for å bygge forbindelsen mellom kontrolleren og målet for målsemonne. Nedenfor er kommandoen:

[root@master ansible]# nano host.yml

Her er varelagerfilen som inneholder informasjonen relatert til “Linux_host” i Ansible.

Alle:
verter:
Linux_host:
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 vert.yml

Konklusjon

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