আমি কীভাবে একসাথে এক হোস্টের কাছে জবাবদিহি করতে পারি এবং ব্যর্থতায় ব্রেক করব


15

আমি একটি উত্তরযোগ্য প্লেবুক পেয়েছি যেখানে আমি ধারাবাহিকভাবে বেশ কয়েকটি ফ্ল্যাঙ্ক ডিভাইস আপডেট করতে চাই। আমি ব্যবহার করতে পারি serial:1, তবে আমি যদি কোনও ব্যর্থতা পাই তবে প্লেবুক পুরোপুরি বন্ধ করতে চাই তাই ত্রুটিগুলি জমা করার পরিবর্তে এগিয়ে যাওয়ার আগে আমি এটি ঠিক করতে পারি।

আমি যে হোস্টটি থামিয়েছিলাম সেখানে একই সাথে প্লেবুকটি পুনরায় চালু করতে চাই। বর্তমানে অ্যান্সিবল ভি ২.০ ব্যবহার করছে তবে সেই ধরণের বৈশিষ্ট্যটি কেবলমাত্র নতুন সংস্করণগুলিতে উপলব্ধ থাকলে নতুন সংস্করণে স্যুইচও করতে পারে can

উত্তর:


15

কোনও ব্যর্থতা দেখা দিলে আপনার প্লেবুক থামবে এবং আপনি ডকুমেন্টেশনserial: 1 অনুযায়ী ব্যবহার করছেন ।

ডিফল্টরূপে, জবাবদিহি যতক্ষণ গ্রুপে হোস্ট রয়েছে যা এখনও ব্যর্থ হয়নি ততক্ষণ ক্রিয়া সম্পাদন করতে থাকবে will

এটি বলেছে যে ডিফল্ট আচরণের বিষয়ে সম্প্রদায়টিতে কিছুটা বিভ্রান্তি রয়েছে বলে মনে হয় এবং এটি সম্ভবত পরিবর্তন হয়েছে - বা বগি হয়েছে - কোথাও 1.8 থেকে 2.1 এর মধ্যে রয়েছে।

সুতরাং, যদি serial: 1যথেষ্ট না হয় তবে এই অতিরিক্ত সেটিংসটি ব্যবহার করুন:

max_failure_percentage: 0

কিছু পরিস্থিতিতে যেমন উপরে বর্ণিত রোলিং আপডেটগুলির সাথে ব্যর্থতার একটি নির্দিষ্ট প্রান্ত পৌঁছে গেলে নাটকটি বাতিল করা বাঞ্ছনীয় হতে পারে। এটি অর্জন করতে, সংস্করণ 1.3 হিসাবে আপনি সর্বাধিক ব্যর্থতার শতাংশ নির্ধারণ করতে পারেন ...

==

আপনার প্লেবুকটি আবার চেষ্টা করার জন্য আপনার ব্যর্থতার বার্তাটি দেখতে পাওয়া উচিত:

to retry, use: --limit @/home/user/site.retry

যে ব্যবহার করুন --limitপতাকা এবং আপনার পরবর্তী সঞ্চালনের উপর ansible-playbookএবং এটি যেখানে এটি ব্যর্থ হয়েছে থেকে অব্যাহত থাকবে।

retry_files_enabled = Falseআপনার কনফিগারেশনটি সেট না করা থাকলে পুনরায় চেষ্টা ফাইল তৈরি করা হবে ।

বিকল্পভাবে, --start-at-taskকাজ করতে পারে।

সূত্র:

https://github.com/ansible/ansible/issues/1663

https://github.com/ansible/ansible/issues/16241

http://docs.ansible.com/ansible/playbooks_delegation.html#rolling-update-batch-size

http://docs.ansible.com/ansible/playbooks_delegation.html#maximum-failure-percentage

http://docs.ansible.com/ansible/intro_configuration.html#retry-files-enabled

http://docs.ansible.com/ansible/playbooks_startnstep.html#start-at-task


1
১.৯ এবং ২.০ তে পরিবর্তনের / বাগের কী ঘটেছিল সে সম্পর্কে যদি কারও কাছে আরও ভাল ধারণা থাকে তবে দয়া করে আমাকে জানান এবং আমি এই উত্তরটি আপডেট করব।
উডল্যান্ড হান্টার

হ্যাঁ, আমি জানি যে উত্তরসূরী 2.0 অন্য হোস্টগুলিতে চালিয়ে যেতে থাকবে যদি এটি কোনও একটিতে ব্যর্থ হয়। আমার অনুমান আমি সিরিয়াল: 1 চালালে এর আলাদা আচরণ হবে বলে আমি ভাবিনি। তুমি কি বলছ?
পিটার টার্নার

এটি সঠিক, সিরিয়াল: 1 এর আচরণ থাকা উচিত এবং এটি যদি না হয় (কারণ ??) তবে ম্যাক্স_ফিলার_পারসেন্টেজ: 0ও যোগ করে। আমি অ্যানস্যাবলকে আপগ্রেড করার পরামর্শ দিই কারণ 2.0 এর প্রচুর বাগ রয়েছে।
উডল্যান্ড হান্টার 21

আসলে অনেকগুলি বাগ, আপনি 2.0 তে .retry ফাইলগুলি মিস করছেন! github.com/ansible/ansible/issues/13944
উডল্যান্ড হান্টার

হেই, তাই আমি একমাত্র নই যে ক্রমাগত উত্সটি প্যাচ করে চলেছি। এটা জানা ভাল.
পিটার টার্নার

2

2.5+ এ (প্রশ্নের পরে ভাল), এখানে ডিবাগার রয়েছে যা এর বেশিরভাগটি জুড়ে: https://docs.ansible.com/ansible/latest/user_guide/playbooks_debugger.html

যেমন একবারে, "--forks 1" ব্যবহার করা একবারে একটি সিস্টেমে কেবল তখনই সংযোগ স্থাপন করে যদি আপনি এটি প্রতিটি সময় না করে অ্যাড-হক করতে চান।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.