როგორ შეიძლება განაახლოთ 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.