Sobes.tech
Junior — Middle

Hogyan lehet modernizálni az Ansible-ben a feladatok végrehajtását, hogy azok egyszerre fussanak több hoszton ahelyett, hogy egymás után futnának?

sobes.tech MI

Válasz az MI-től

Az Ansible-ben alapértelmezés szerint a feladatokat párhuzamosan hajtja végre több hoszton, de egy hoszton belül szekvenciálisan. Ha több feladatot szeretnél egy időben futtatni egy hoszton, használhatod az async modult és a poll paramétert.

Példa az aszinkron feladatindításra:

- name: Egy hosszú feladat aszinkron indítása
  command: /path/to/long_task.sh
  async: 3600       # maximális futási idő másodpercben
  poll: 0           # ne várjon a feladat befejezésére

Ez lehetővé teszi, hogy elindítsd a feladatot, és azonnal a következőre lépj, anélkül, hogy várnál a befejezésre.

Ha több hoszton párhuzamosan futtatott feladatokról van szó, ez az Ansible alapértelmezett viselkedése, amit a forks paraméterrel lehet konfigurálni a beállításokban, növelve a párhuzamos kapcsolatok számát.

Példa a párhuzamos kapcsolatok számának beállítására:

[defaults]
forks = 20

Így a több hoszton való egyidejű feladatindításhoz növeld a forks értékét, és egy hoszton belüli párhuzamos feladatokhoz használd az async és poll opciókat.