লিনাক্স সার্ভারের একটি গ্রুপের দূরবর্তী শাটডাউন (এসএনএমপি / বনজোর / ফুটবল?)


0

আমি আমার সাবনেটে লিনাক্স সার্ভারের একটি গোষ্ঠী আছে যা আমি একটি মাস্টার মেশিন থেকে দূরবর্তীভাবে শাটডাউন করতে সক্ষম হতে চাই। অ-মাস্টার মেশিনগুলি আগে থেকেই মাস্টারের সাথে সমন্বয় করতে চায় না, যেমন তার আইপি ঠিকানা ইত্যাদি। তাই ব্রডকাস্ট বা মাল্টিকাস্ট বার্তাগুলির কাছাকাছি কিছু কিছু একটি সুস্পষ্ট পদ্ধতি বলে মনে হয়।

আমি ইতিমধ্যে সঙ্গে একটি সমাধান বাস্তবায়িত করেছি socat কিন্তু আমি ভাবছিলাম, যদি কম ভাল হ'ল সমাধান হতো যেমন উদার সমাধান। SNMP বা Bonjour মত প্রতিষ্ঠিত multicast সচেতন সেবা ব্যবহার করে?

নিম্নরূপ আমার সমাধান। আমি চালানো সমস্ত অ-মাস্টার মেশিনে:

$ socat UDP4-RECVFROM:6666,broadcast,fork SYSTEM:'hostname; shutdown now'

এই বলে socat 6666 পোর্টে সম্প্রচারের বার্তাগুলি শোনার জন্য এবং যখন এটি একটি গ্রহণ করে তখন এটি হোস্টনামটি ফিরিয়ে দেয় এবং মেশিনটি বন্ধ করে দেয়।

এখন একই সাবনেটের যে কোনও মেশিন নিম্নলিখিত কমান্ডের সাহায্যে চলমান সমস্ত মেশিন বন্ধ করে দিতে পারে (এটি ইনপুটের জন্য অপেক্ষা করে তাই কিছু লিখুন, উদাঃ। bye ):

$ socat STDOUT UDP4-DATAGRAM:255.255.255.255:6666,broadcast
bye

এই বার্তা সম্প্রচার করা হবে (এই ক্ষেত্রে bye ), socat তারপরে 6666 পোর্টে সম্প্রচার বার্তাগুলির জন্য শোনাচ্ছে এমন সমস্ত মেশিনগুলির দ্বারা হোস্টনামগুলি আউটপুট আউট করবে।

স্পষ্টতই এই পদ্ধতির সাথে কোন সুরক্ষা নেই - যদি একই সাবনেটের কোনও যন্ত্র 6666 পোর্টে কিছু প্রচার করে তবে সিস্টেমগুলি বন্ধ হয়ে যাবে। শুধু একটি চলমান পরিবর্তে - একটি সহজ অতিরিক্ত স্তর যোগ করতে পারে hostname; shutdown now কেউ একটি স্ক্রিপ্ট চালাতে পারে যা প্রকৃতপক্ষে সম্প্রচারিত হয় তা পরীক্ষা করে এবং শুধুমাত্র যদি বন্ধ থাকে তবে। শুধুমাত্র আগ্রহী পক্ষের পরিচিত হওয়া উচিত যে একটি দীর্ঘ র্যান্ডম সংখ্যা দেখা যায়।


আমি একটি তুচ্ছ systemd সেবা ফাইল লিখেছিলাম যা উপরের প্রথম চালানোর জন্য ইনস্টল করা যেতে পারে socat শুরুতে একটি মেশিনে উপরে কমান্ড। দেখ gist.github.com/george-hawkins/21f98e4061fed8d4bb3d9183093c0726
George Hawkins

1
আমরা খুশি যে আপনি নিজের প্রশ্নের উত্তর দিয়েছেন, তবে, এই সাইটে এটিকে স্পষ্ট করার জন্য আপনাকে নীচের উত্তর বিভাগে উত্তরটি পোস্ট করতে হবে এবং কেবল আপনার প্রশ্নের সাথে এটি অন্তর্ভুক্ত করবেন না। এই মানদণ্ড পূরণ করার জন্য আপনার পোস্ট সম্পাদনা করুন। আপনার নিজের প্রশ্নের উত্তর দেওয়ার মধ্যে একটি কার্যকর বিলম্ব, এবং প্রকৃতপক্ষে এটি সঠিক উত্তর হিসাবে চিহ্নিত করতে সক্ষম হওয়ায়, কিন্তু এই পদ্ধতিটি প্রশ্নটি কী তা স্পষ্ট হতে দেয় এবং তারপরে সেই প্রশ্নের উত্তর কী তা দেয়।
music2myear

আমি একটি ভাল উত্তর আশা করছি, যেমন আমি আমার বর্তমান পদ্ধতি দেখিয়ে ছিলাম এবং SNMP বা Bonjour এর মতো প্রতিষ্ঠিত প্রোটোকলের উপর ভিত্তি করে আরও ভালো একটি জিজ্ঞাসা করছিলাম। কিন্তু আমি এটি একটি উত্তর (বিভক্ত বিলম্বের শেষ হওয়ার পরে) মধ্যে বিভক্ত করতে পারেন এবং দেখুন কিভাবে এটি ভোটদান করে।
George Hawkins

ঠিক আছে. তারপর আপনার পোস্টে কিছু স্বচ্ছতা ছিল। যদি আপনি একটি ভাল উত্তর চান, যে খুব ভাল। সম্ভবত কিছু বিন্যাস ব্যবহার করা এবং শিরোনামের সাথে আপনার পোস্টটি ভেঙ্গে ফেলা "এইটি আমি এখন যা করছি", "এইটি যা করছে তা করে না", এবং "এটি আমি যা করতে চাই তা হল", বা অনুরূপ আপনার অনুরোধ স্পষ্ট করা কি ঘটছে তা জানা সহজ করা হবে।
music2myear

উত্তর:


0

উদাঃ যদি শুধুমাত্র বন্ধ থাকে শুধুমাত্র আগ্রহী পক্ষের পরিচিত হওয়া উচিত যে একটি দীর্ঘ র্যান্ডম সংখ্যা দেখা যায়।

আচ্ছা, যদি আপনি সমন্বয়ের স্তরের সাথে ভাল হন তবে কেবল অন্যান্য সার্ভারগুলিতে মাস্টার হোস্ট SSH এবং রান করুন shutdown যে ভাবে কমান্ড। সার্ভারগুলিকে শুধুমাত্র একটি দীর্ঘ র্যান্ডম নম্বর, যেমন মাস্টারের সর্বজনীন কী জানতে হবে।

(সংশ্লিষ্ট ব্যক্তিগত কী একটি একক মাস্টার পর্যন্ত সীমাবদ্ধ নয়; আপনি কপি করতে পারেন ~/.ssh/id_* আপনি প্রয়োজন যেখানে ফাইল।)

বোঞ্জোর / অভাহি বিশুদ্ধরূপে একটি আবিষ্কার প্রক্রিয়া এবং সম্প্রচার সমর্থন করে না কমান্ড , তবে আপনি এটি এখানে সাবনেটের সমস্ত মেশিনগুলি তালিকাভুক্ত করতে (এটি জেনেরিক "ওয়ার্কস্টেশন" পরিষেবা দ্বারা বা কাস্টম-সংজ্ঞায়িত এক দ্বারা) ব্যবহার করতে পারেন।


আপনার উত্তরের জন্য ধন্যবাদ - মাস্টার এবং ব্যক্তিগত নন-মাস্টার / স্লেভ মেশিনের মধ্যে রুটিন ইন্টারঅ্যাকশনগুলির জন্য আমি ইতিমধ্যে ssh (RSA কীগুলির সাথে) ব্যবহার করি। তবে @ জেহুটিয়ের উত্তর সম্পর্কে আমার মন্তব্য দেখুন। শাটডাউন পরিস্থিতি এক থেকে একাধিক কমান্ড এবং socat পদ্ধতি সব দাসদের উপর looping এড়ানো। আমি হয়তো মনে করতাম এসএনএমপি, বনজোর বা অন্য কিছু ইতিমধ্যেই এটিকে কম অদ্ভুত দৃষ্টিভঙ্গি সরবরাহ করতে পারে (আমি আপনার মন্তব্য আবার Bonjour পেয়েছি)। কিন্তু সম্ভবত socat আমার সেটআপের জন্য সর্বোত্তম পদ্ধতি এবং যদি আমার আরো প্রয়োজন হয় তবে আমার কিছু সম্পূর্ণ ফুটো সংস্থান পরিচালন ব্যবস্থা দেখতে হবে।
George Hawkins

0

যেহেতু আপনার "অ-মাস্টার" কমান্ডটি চালানো আছে তাই আমি অনুমান করি যে মাস্টার এবং অ-মাস্টারের মধ্যে কিছু ধরণের সমন্বয় রয়েছে। সুতরাং আপনি এসএসআই কী-জুড়ি প্রমাণীকরণের সাথে দূরবর্তীভাবে কমান্ড চালানোর জন্য ব্যবহার করতে পারেন:

ssh -i /path/to/pubkey @server 'shutdown -H now' 

এই আসলে আমি আগে ব্যবহৃত পদ্ধতি socat উপরে উল্লিখিত এক। তবে একটি মাস্টার এবং অনেক অ-মাস্টার বা স্লেভ মেশিন আছে - তাই এই পদ্ধতির সাথে সমস্ত দাসদের উপর লুপ করতে হবে। এবং যে কোনও সময়ে দাসের কিছু অনুপাত ইতিমধ্যে অফলাইনে থাকবে - তাই একজনকে অনেক ssh ব্যর্থতা দেখা যায় (একটি বড় চুক্তি নয়)। কিন্তু আমি ভেবেছিলাম বোঞ্জোর বা এসএনএমপি যাওয়ার উপায় হতে পারে - কোনটি "শাটডাউন" পরিষেবাটি বিজ্ঞাপন দিচ্ছে তা জানতে চাইতে পারে এবং তারপরে এমন মেশিনগুলি জিজ্ঞাসা করতে পারে যা এগুলি করার জন্য প্রতিক্রিয়া জানানো হয়।
George Hawkins
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.