Sobes.tech
Junior — Middle

Ako modernizovať vykonávanie úloh v Ansible, aby sa spúšťali súčasne na viacerých hostiteľoch namiesto sekvenčného vykonávania?

sobes.tech AI

Odpoveď od AI

V Ansible sú úlohy predvolene vykonávané paralelne na viacerých hostiteľoch, ale vo vnútri jedného hostiteľa — sekvenčne. Ak chcete spúšťať viac úloh súčasne na jednom hostiteľovi, môžete použiť modul async a parameter poll.

Príklad asynchrónneho spustenia úlohy:

- name: Spustiť dlhú úlohu asynchrónne
  command: /path/to/long_task.sh
  async: 3600       # maximálny čas vykonávania v sekundách
  poll: 0           # nečakať na dokončenie úlohy

Toto umožní spustiť úlohu a okamžite prejsť na ďalšiu, bez čakania na jej dokončenie.

Ak ide o paralelné vykonávanie úloh na rôznych hostiteľoch, je to štandardné správanie Ansible, ktoré je možné nakonfigurovať pomocou parametra forks v konfigurácii, zvyšujúc počet súčasných pripojení.

Príklad nastavenia počtu paralelných pripojení:

[defaults]
forks = 20

Takto, pre spustenie úloh súčasne na viacerých hostiteľoch, zvýšte forks, a pre paralelné spúšťanie úloh na jednom hostiteľovi — použite async a poll.