Iespējamā ignorēšanas kļūda

Iespejama Ignoresanas Kluda



Konfigurējot uzdevumu citā resursdatora ierīcē, iespējamas kļūdas ir bieži sastopama parādība. Tie atspoguļo unikālus un, iespējams, nozīmīgus sistēmas stāvokļus. Neskatoties uz to, var būt dažas kļūdas, no kurām mēs vēlamies izvairīties, lai uzdevumi tiktu izpildīti un parādītu izvadi, ja tie ir veiksmīgi izpildīti. Šajā rakstā mēs runāsim par Ansible kļūdām un to, kā tās ignorēt. Mēs īpaši demonstrējam paņēmienu, lai novērstu un ignorētu kļūdas ar Ansible.

Pretstatā kļūdu labošanai, izvairīšanās no kļūmēm nozīmē uzdevumu turpināšanu, ciktāl darbība Ansible rokasgrāmatā netiek ietekmēta. Iespējamais rīks izdod brīdinājuma ziņojumu, ja uzdevuma atkļūdošanas laikā nevar pabeigt uzdevumu vai rokasgrāmatu. Ir vairāki iemesli, taču mūsu ziņā ir tos identificēt un rast risinājumu. Diemžēl ne visas kļūdas var novērst. Varat izvēlēties sākt ignorēt kļūdas, ja nevēlaties vai nevarat atrisināt problēmu.







Lielākā daļa Ansible pārvaldītāju izmanto šo stratēģiju, vienlaikus veidojot savienojumu ar mērķa saimniekiem reālos scenārijos. Iespējams, pēc noklusējuma tiek pārtrauktas darbības mērķa ierīcē un turpinātas darbības dažos citos serveros ikreiz, kad tiek atgriezts rezultāts, kas nav nulle no priekšraksta vai kļūdas no pakotnes. Tomēr ir dažas situācijas, kurās jūs varētu vēlēties rīkoties citādi. Atgrieztais rezultāts, kas nav nulle, dažkārt norāda uz progresu. Bieži vien jūs varētu vēlēties, lai apstrāde tiktu apturēta vienā serverī, lai tā apstātos visos saimniekdatoros.



Veidi, kā ignorēt Ansible kļūdas

Programmā Ansible rokasgrāmatas uzdevumu izpildei tiek izmantoti dažādi veidi, ja tas parāda uzdevuma kļūmi. Tālāk ir norādīti dažādi veidi, kas palīdzēs izpildīt uzdevumu pat tad, ja Ansible rāda kļūdas.



1. Izmantojot Ignore_Errors=True komandu





Pat ja uzdevums joprojām neizdodas, rokasgrāmatas izpilde turpinās, ja aktivitātes apakšā norādāt komandu ignore_errors=true. Neskatoties uz rūpēm par uzdevuma izpildi vai neveiksmēm, tas joprojām veic turpmākās darbības. Ja kaut kādā veidā darbība ir neveiksmīga, tā pāriet uz nākamo. Ja darbība ir veiksmīga, tā pabeidz procesu pēc tam.

2. Pārbaudes režīma izmantošana programmā Ansible



Izmantojiet Būla īpašos mainīgos, Ansible pārbaudes režīmu, kas ir definēts kā True, kad Ansible ir pārbaudes metodē, lai apietu uzdevumu vai neņemtu vērā uzdevuma kļūmes ikreiz, kad tiek izmantota Ansible pārbaudes metodes versija.

3. Izmantošana neizdevās=Kad komanda Ansible Playbook

Programmā Ansible mēs varam izmantot arī failed_when nosacījums, lai norādītu, kāda “neveiksme” ir norādīta katrai darbībai. Līdzīgi kā visos Ansible nosacījuma priekšrakstos, daudzo neizdevās_kad kritēriju saraksti ir apvienoti ar implicītu. Tātad uzdevums neizdodas tikai tad, ja ir izpildīti visi nosacījumi.

Priekšnosacījumi, lai ignorētu Ansible kļūdas

Ansible konfigurācijas rīkam ir jāatbilst nepieciešamajiem kritērijiem, lai iekļautu konkrētu piemēru:

  • Ansible galvenais serveris vai mēs varam teikt, ka vadības serveris ir nepieciešams, lai mēs varētu konfigurēt komandas mērķa ierīcē.
  • Mums ir jābūt vietējiem saimniekiem, lai mēs varētu sazināties ar katru no tiem un izmantot dažādus veidus, kā ignorēt Ansible programmatūras kļūdas. Šajā gadījumā mēs izmantojam vietējo resursdatoru kā mērķa attālo serveri darbības laikā.
  • Mēs rakstām rokasgrāmatas, palaižam Ansible ignore error komandas un izmantojam ansible-controller ierīci, lai izsekotu rezultātus attālos saimniekdatoros.

Lai palīdzētu skolēnam izprast ignorēšanas kļūdas izmantošanas principu Ansible rokasgrāmatā, ieviesīsim šādu piemēru:

Piemērs: tiek izmantota komanda Ignore_Errors=True

Šis ir vienkāršākais piemērs, kas izmanto Ansible ieviešanai, kurā mēs iekļaujam vairākus uzdevumus rokasgrāmatā un izpildām uzdevumus, izmantojot komandu ignorēt kļūdu. Lai to izdarītu, vispirms Ansible terminālā ierakstām šādu kodu:

[ sakne @ meistars iespējams ] # nano ignore_errors.yml

Pēc rokasgrāmatas ignore_errors.yml izveides un palaišanas mēs sākam ievadīt komandas rokasgrāmatā. Pirmkārt, mēs izmantojam opciju “hosts”, nododot piegādātos saimniekdatorus kā “localhost”. Mēs ievadām “false” vērtību argumentā “vāc faktus”, lai mēs nevarētu iegūt papildu informāciju par vietējo saimniekdatoru, kad palaižam rokasgrāmatu.

Pēc tam mēs sākam uzskaitīt katru uzdevumu, ko vēlamies izpildīt, sadaļā “uzdevumi”. Pirmajā uzdevumā mēs parādām dokumentu, kas neeksistē direktorijā Ansible. Pirmkārt, mēs nododam uzdevuma nosaukumu, kuru vēlamies īstenot. Pēc tam mēs izmantojam komandas opciju un saglabājam neesošu teksta dokumentu un izmantojam “ls”, lai mēs varētu izpildīt komandu pirmajā uzdevumā. Pēc pirmā uzdevuma mēs izmantojam komandu ignore_errors=true, lai, ja uzdevumam virs ignore paziņojuma ir kļūme, tas ignorē uzdevumu un pāriet uz nākamo uzdevumu un izpilda to.

Mēs uzskaitām vēl vienu izmantoto uzdevumu. Ja pirmais uzdevums neizdodas, rīkam Ansible ir jāizpilda nākamais uzdevums. Pēc tam mēs izmantojam atkļūdošanas parametru, lai palaistu uzdevumu rokasgrāmatā.

- saimnieki: localhost
collection_facts: viltus
uzdevumi:
- nosaukums: norādiet neesošu failu
komanda: ls neeksistējoša.txt
ignore_errors: taisnība

- vārds: Turpināt uzdevums pēc neveiksmes
atkļūdošana:
ziņa: 'Turpināt uzdevumu pēc neveiksmes'

Tagad mēs uzskaitām pietiekami daudz izpildāmo uzdevumu un pārbaudām ignorēšanas kļūdas komandu. Tagad mēs pārtraucam rokasgrāmatu un dodamies atpakaļ uz galveno termināli. Pēc tam mēs izpildām rokasgrāmatu. Šim nolūkam mēs izmantojam šādu paziņojumu:

[ sakne @ meistars iespējams ] # ansible-playbook ignore_errors.yml

Pēc iepriekšminētās komandas izpildes mēs iegūstam šādu izvadi. Kā redzat, pirmais uzdevums, kurā ir norādīts neesošs fails, parāda kļūmi. Bet otrais uzdevums tiek izpildīts veiksmīgi, jo mēs ignorējām pirmo uzdevumu, rokasgrāmatā izmantojot ignore_error=true.

Secinājums

Mēs uzzinājām, ko nozīmē ignorēšanas kļūda programmā Ansible. Mēs apspriedām, kā tas darbojas Ansible rokasgrāmatā. Mēs arī apspriedām dažādus veidus, kā uzdevumu izpildes laikā ignorēt kļūdu programmā Ansible. Mēs ieviesām piemēru, lai katrs jēdziens būtu skaidrs lietotājam.