আপনি জবাবদিহিত অপেক্ষার জন্য মডিউলটি ব্যবহার করতে পারেন যা একটি নির্দিষ্ট টিসিপি পোর্ট খোলা আছে তা পরীক্ষা করে।
যেহেতু এই ক্ষেত্রে, সমস্ত বন্দর ইতিমধ্যে উন্মুক্ত হওয়া উচিত, তাই আমরা একটি ন্যূনতম নম্বর ব্যবহার করতে পারি। পুনরায় চেষ্টা, নেটওয়ার্ক সমস্যাগুলি কভার করার জন্য যথেষ্ট:
- name: Check all port numbers are accessible from current host
wait_for:
host: mywebserver.com
port: "{{ item }}"
state: started # Port should be open
delay: 0 # No wait before first check (sec)
timeout: 3 # Stop checking after timeout (sec)
ignore_errors: yes
with_items:
- 443
- 80
- 80443
ডিফল্টরূপে, উত্তরযোগ্য প্রতি সেকেন্ডে একবার চেক করবে ( sleep
অ্যাট্রিবিউটটি ব্যবহার করে উত্তর ২.৩ এ কনফিগারযোগ্য ), সুতরাং এটি প্রতি বন্দরে 3 বার পরীক্ষা করবে।
আপনার 400+ হোস্টের জায়ের বিপরীতে একটি প্লেবুকে এটি চালান - উত্তরযোগ্য সমান্তরালে যাচাই করে যে সমস্ত হোস্টগুলি mywebserver.com
সেই বন্দরগুলিতে পৌঁছতে পারে ।
আমরা ignore_errors: yes
এখানে ব্যবহার করি যাতে কোনও ত্রুটি লাল চিহ্নিত করা যায় তবে সম্পাদন বন্ধ না করে।
খোলা পোর্টগুলি ok
আউটপুট হিসাবে আইটেম হিসাবে রিপোর্ট করা হয় এবং বন্ধ বন্দরগুলি হিসাবে রিপোর্ট করা হয় failed
( এই আউটপুটটি দেখতে আপনাকে অবশ্যই -vv
পতাকা ব্যবহার করতে হবে ansible-playbook
)।
ফাইন-টিউনিং আউটপুট
আপনি যদি সাফল্য এবং ব্যর্থতার ক্ষেত্রে আরও নির্দিষ্ট আউটপুট চান তবে কোডটি আরও জটিল হতে হবে, দ্বিতীয় কাজটি যুক্ত করে:
wait_for
টাস্ক অবশ্যই register
একটি পরিবর্তনশীল
- দ্বিতীয় কার্যটি
debug
সাফল্য / ব্যর্থতার অবস্থার উপর ভিত্তি করে আউটপুট উত্পাদন করে (যেমন জিনজা ২ শর্তসাপেক্ষ এক্সপ্রেশন ব্যবহার করে )
- তারপরে আপনাকে এই দুটি কাজই একটি অন্তর্ভুক্ত ফাইলে (কোনও
with_items
লুপ ছাড়াই ) রাখতে হবে এবং একটি প্রধান প্লেবুক টাস্ক লিখতে হবে যা একটি বন্দর প্রতি একবার অন্তর্ভুক্ত ফাইলকে কল করতে একটি include
... ব্যবহার with_items
করে।
host: mywebserver.com
।