Junior — Middle
Kuidas saab Ansible'is ülesannete täitmist moderniseerida, et neid käivitada samaaegselt mitmel hostil, mitte järjestikuliselt?
sobes.tech AI
Vastus AI-lt
Ansible'is vaikų pagal numatytuosius nustatymus vykdomos keliuose hostuose lygiagrečiai, tačiau viename hoste — eilės tvarka. Jei norite vienu metu paleisti kelias užduotis viename hoste, galite naudoti async modulį ir parametrą poll.
Pavyzdys, kaip pradėti ilgą užduotį asinchroniškai:
- name: Pradėti ilgą užduotį asinchroniškai
command: /path/to/long_task.sh
async: 3600 # maksimalus vykdymo laikas sekundėmis
poll: 0 # nelaukti užduoties pabaigos
Tai leis pradėti užduotį ir nedelsti, pereinant prie kitos.
Jei kalbame apie užduočių vykdymą keliuose hostuose vienu metu, tai yra Ansible standartinis elgesys, kurį galima konfigūruoti per forks parametrą, didinant vienu metu jungčių skaičių.
Pavyzdys, kaip nustatyti paralelinių jungčių skaičių:
[defaults]
forks = 20
Taigi, norint vienu metu pradėti užduotis keliuose hostuose, didinkite forks, o viename hoste — naudokite async ir poll.