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 пайдаланыңыз.