Kā lietot tagus programmā Ansible

Ka Lietot Tagus Programma Ansible



Lugas, lomas un uzdevumi ir iespējamā struktūra, un šī ansible struktūra satur svarīgu atribūtu, ko Ansible sauc par tagiem. Ikreiz, kad Ansible palaižam rokasgrāmatu, varat izmantot komandas -tags un -skip tags, lai mēs varētu izpildīt tikai noteiktu uzdevumu, lugu un lomu sēriju. Ja mums ir rokasgrāmata, kurā ir tik daudz uzdevumu, bet mēs nevēlamies izpildīt visus rokasgrāmatas uzdevumus, tā vietā, lai izpildītu visu rokasgrāmatu, mēs izpildīsim tikai dažus uzdevumus, izmantojot tagu komandu Ansible rokasgrāmatā.

Mēs apspriedīsim šīs tēmas tagus, kas kalpo kā viens no svarīgākajiem Ansible aspektiem. Mēs mēģināsim izskaidrot, kas ir tagi un kā tagi darbojas Ansible, jo šī ir mulsinoša Ansible platformas funkcija.







Piemēram, rokasgrāmatā var būt ietverti trīs pienākumi: moduļa instalēšana, konfigurēšana un izvietotā moduļa statusa pārbaude, piemēram, vai pakalpojums darbojas un ir pieejams. Tā kā mums vienkārši ir jāredz moduļu stāvoklis dažās attālās iekārtās, šajā situācijā mēs izmantojam Ansible tagus, nevis izpildām visus rokasgrāmatā norādītos uzdevumus. Tas ļauj mums veikt tikai noteiktu darbību, ļaujot mums samazināt darbības laiku, saglabājot visas saistītās darbības vienā rokasgrāmatā.



Priekšnosacījumi tagu izmantošanai Ansible Playbook

Lai ievietotu praktiskos piemērus iespējamajā programmatūrā, mums ir jāizpilda šādas prasības.



Lai tas veiktu izmaiņas, ir nepieciešams Ansible vadības serveris. Lai izmantotu taga parametru Ansible programmatūrā, vietējiem saimniekiem ir jāsazinās ar tiem. Šajā gadījumā mēs izmantojam vietējo resursdatoru visā izpildes laikā kā mērķa attālo serveri. Mēs izveidosim rokasgrāmatas, izpildīsim Ansible tag komandas un uzraudzīsim rezultātus attālajos saimniekdatoros no ansible-controller ierīces.





Mēs centīsimies izmantot dažādus scenārijus, lai izpētītu dažus Ansible tagus, lai skolēns varētu viegli saprast tagu jēdzienu Ansible rokasgrāmatā.

Piemērs 01: Piekļuve vienam uzdevumam Ansible Playbook

Mēs ieviesīsim Ansible, rokasgrāmatā norādot vairākus uzdevumus, un pēc tam mēs piekļūsim tikai vienam uzdevumam, izmantojot tajā esošās atzīmes. Lai to izdarītu, mēs vispirms izveidosim rokasgrāmatu, ierakstot šādu komandu:



[root@master ansible]# nano ansible_tags.yml

Pēc rokasgrāmatas ansible_tags.yml izveides un palaišanas. Tagad mēs sāksim rakstīt komandas rokasgrāmatā. Pirmkārt, mēs nodosim norādītos saimniekdatorus parametrā “hosts”, ko izmantosim “localhost”. Pēc tam parametrā “gather_facts” ierakstīsim “false” vērtību, lai, izpildot rokasgrāmatu, mēs nevarētu iegūt papildu informāciju par vietējo saimniekdatoru.

Pēc tam zem parametra “uzdevumi” pa vienam sāksim uzskaitīt darbības, kuras vēlamies izpildīt. Pirmajā procesā mēs noteiksim, vai dokuments atrodas vietējā resursdatorā. Ja tas ir pieejams, mēs to saglabāsim parametrā “reģistrs” un pēc tam tagam piešķirsim unikālo nosaukumu, lai, izpildot rokasgrāmatu, mums būtu viegli piekļūt tagam. Otrajā uzdevumā mēs darīsim to pašu, ko darījām pirmajā uzdevumā, taču tagam ir jābūt unikālam, un tad mēs izmantosim atkļūdošanas opciju, lai parādītu uzdevumu kopā ar saistīto ziņojumu.

- saimnieki:

- vietējais saimnieks
apkopot_facts: nepatiess


uzdevumi:
- nosaukums: pārbaudiet faila esamību x`
stat: ceļš=./host.yml
reģistrs: fails eksistē
tagi: check_file


- atkļūdošana:
msg: '{{ 'Fails pastāv', ja fileExists.stat.exists else 'Fails nav atrasts' }}'
tagi: check_file


- nosaukums: pārbaudiet, vai pašreizējam lietotājam var piekļūt host.yml
apvalks: stat -c '%a' ./host.yml
reģistrēties: accessPath
tagi: check_access


- atkļūdošana:
msg: '{{ 'Fails pieejams' if (accessPath.stdout|int) < 660 else 'Fails nav pieejams' }}'
tagi: check_access

Tagad mēs saglabāsim rokasgrāmatu un pēc tam aizvērsim to. Mēs vēlamies palaist rokasgrāmatu ansible_tags.yml, tāpēc terminālī Ansible ierakstīsim šādu komandu, lai lietotājiem parādītu izvadi.

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

Pēc iepriekš minētās komandas palaišanas mēs pretī saņemsim vēlamo izvadi. Kā parādīts zemāk, tiek izpildīts tikai viens uzdevums, un tas tiek parādīts izvadē, kas ir “pārbaudīt faila esamību”.

02. piemērs: Ignorēt konkrētu tagu Ansible Playbook

Šeit ir otrais Ansible taga piemērs, kurā mēs pārejam uz tagu “izlaist”. Tas ir atkarīgs no jums, vai vēlaties ignorēt visus uzdevumus vai arī kādu konkrētu Ansible rokasgrāmatas uzdevumu. Mēs izmantojam 1. piemēra ieviešanu, un pēc tam mēs vienkārši izlaidīsim uzdevumu, vienkārši ierakstot tālāk sniegto paziņojumu Ansible terminālā.

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

No iepriekš minētās komandas mēs vienkārši esam ignorējuši uzdevumu “pārbaudīt faila esamību”. Tagad izvadē tiek parādīts tikai viens uzdevums, kas ir “pieejams failam” zaļā fontā.

03. piemērs. Vienmēr turpiniet izpildīt uzdevumu Ansible Playbook

Mēs ieviesīsim trešo piemēru, pamatojoties uz Ansible tagu. Šajā piemērā mēs izmantosim tagu “always”, kas nozīmē, ka konkrēts tags vienmēr tiks izpildīts Ansible Playbook. Lai palaistu rokasgrāmatu, izmantojiet šo komandu:

[root@master ansible]# nano ansible_tags.yml

Rokasgrāmatā mēs esam izveidojuši vairākus izpildāmus uzdevumus, taču pēdējā uzdevumā, kas ir “izdzēst paroli no krājuma”, mēs nodevām atzīmi “vienmēr”. Šīs ir rokasgrāmatā ieviestās komandas:

- saimnieki: visi

apkopot_facts: nepatiess


uzdevumi:
- nosaukums: pārbaudiet faila esamību
stat: ceļš=./host.yml
reģistrs: fails eksistē
delegate_to: localhost
tagi: check_file


- atkļūdošana:
msg: '{{ 'Fails pastāv', ja fileExists.stat.exists else 'Fails nav atrasts' }}'
tagi: check_file


- nosaukums: pārbaudiet, vai pašreizējam lietotājam var piekļūt host.yml
apvalks: stat -c '%a' ./host.yml
reģistrēties: accessPath
delegate_to: localhost
tagi: check_access


- atkļūdošana:
msg: '{{ 'Fails pieejams' if (accessPath.stdout|int) < 660 else 'Fails nav pieejams' }}'
tagi: check_access


- nosaukums: dzēst paroli no inventāra
rindas fails:
ceļš: '{{inventory_file}}'
regexp: '\b{{item}}.*\b'
stāvoklis: nav
delegate_to: localhost
kļūt: viltus
tagi: vienmēr
with_items:
- ansible_password

Pēc tam mēs izveidosim inventāra failu, lai izveidotu savienojumu starp kontrolieri un mērķa attālo resursdatoru. Zemāk ir komanda:

[root@master ansible]# nano host.yml

Šeit ir inventāra fails, kurā ir informācija, kas saistīta ar “Linux_host” pakalpojumā Ansible.

Visi:

saimnieki:
Linux_Host:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: ******
ansible_connection: ssh
ansible_port: 22

Lai iegūtu vēlamo izvadi, Ansible terminālā izpildīsim šādu komandu:

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

Secinājums

Atzīmes Ansible ir izskaidrotas šajā rakstā. Tagad mēs saprotam tagu funkcijas un vietas Ansible, kur tās izmantosim. Lai palīdzētu skolēnam saprast Ansible tagu jēdzienu, esam izstrādājuši dažādus piemērus.