Junior — Middle
Kā modernizēt uzdevumu izpildi Ansible, lai tie tiktu izpildīti vienlaicīgi vairākās hostos, nevis secīgi?
sobes.tech AI
Atbilde no AI
Ansible pēc noklusējuma uzdevumi tiek izpildīti paralēli vairākos hostos, bet vienā hostā — secīgi. Ja vēlaties vienlaikus palaist vairākus uzdevumus vienā hostā, varat izmantot async moduli un parametru poll.
Piemērs, kā sākt ilgstošu uzdevumu asinhroni:
- name: Sākt ilgstošu uzdevumu asinhroni
command: /path/to/long_task.sh
async: 3600 # maksimālais izpildes laiks sekundēs
poll: 0 # negaidīt uzdevuma pabeigšanu
Tas ļaus uzsākt uzdevumu un nekavējoties pāriet uz nākamo, negaidot pabeigšanu.
Ja runa ir par uzdevumu paralēlu izpildi dažādos hostos, tas ir Ansible standarta uzvedība, ko var konfigurēt, palielinot forks parametru konfigurācijā, palielinot vienlaicīgo savienojumu skaitu.
Paralēlo savienojumu skaita iestatīšanas piemērs:
[defaults]
forks = 20
Tādējādi, lai vienlaikus sāktu uzdevumus vairākos hostos, palieliniet forks, un vienā hostā — izmantojiet async un poll.