Ansible'da vazifalarni bir vaqtning o'zida bir nechta hostda bajarishni qanday zamonaviylashtirish mumkin?
sobes.tech AI
AIdan javob
Ansible'da, odatda, vazifalar bir nechta hostlarda parallel ravishda bajariladi, lekin bir host ichida ketma-ket bajariladi. Agar siz bir hostda bir vaqtning o'zida bir nechta vazifalarni bajarishni istasangiz, async modulini va poll parametrini ishlatishingiz mumkin.
Asinxron vazifa boshlash misoli:
- name: Uzun vazifani asinxron tarzda boshlash
command: /path/to/long_task.sh
async: 3600 # maksimal bajarilish vaqti sekundlarda
poll: 0 # vazifa tugashini kutmaslik
Bu vazifani boshlash va darhol keygisi bilan o'tish imkonini beradi, bajarilishini kutmasdan.
Agar muammo bir nechta hostda parallel ravishda vazifalarni bajarish bo'lsa, bu Ansible ning standart xatti-harakatidir, va uni konfiguratsiya faylida forks parametri orqali sozlash mumkin, bu esa bir vaqtning o'zida ulanishlar sonini oshiradi.
Paralel ulanishlar sonini sozlash misoli:
[defaults]
forks = 20
Shunday qilib, bir nechta hostda vazifalarni bir vaqtning o'zida boshlash uchun forks ni oshiring, va bitta hostda parallel ravishda vazifa bajarish uchun async va poll dan foydalaning.