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.