Sobes.tech
Junior — Middle

Ansible-деги тапшырмаларды көптөгөн хосттордо бирдей ишке ашыруу үчүн кантип модернизациялоо керек?

sobes.tech AI

AIден жооп

Ansible-де, әдепкі бойынша, тапсырмалар бірнеше хостта параллель орындалады, бірақ бір хост ішінде — кезек-кезек. Егер сіз бір хостта бірнеше тапсырманы бір уақытта іске қосқыңыз келсе, async модулін және poll параметрін пайдалана аласыз.

Асинхронды тапсырманы іске қосу мысалы:

- name: Ұзақ уақытқа созылатын тапсырманы асинхронды түрде іске қосу
  command: /path/to/long_task.sh
  async: 3600       # ең көп орындалу уақыты секундтарда
  poll: 0           # тапсырманың аяқталуын күтпеңіз

Бұл тапсырманы бастауға және дереу келесіге өтуге мүмкіндік береді, оның аяқталуын күтпей.

Егер бірнеше хостта параллель тапсырмалар орындау туралы болса, бұл Ansible-дың стандартты мінез-құлқы, оны конфигурациядағы forks параметрі арқылы реттеуге болады, ол бір уақытта қосылымдар санын арттырады.

Параллель қосылымдар санын орнату мысалы:

[defaults]
forks = 20

Осылайша, бірнеше хостта бір уақытта тапсырмалар бастау үшін forks-ты арттырыңыз, ал бір хостта параллель орындау үшін — async және poll пайдаланыңыз.