একটি OpenVPN drop-in সব টানেল বদলে দিল: ইনস্ট্যান্স বনাম টেমপ্লেট
ইনস্ট্যান্স ডিরেক্টরির অধীনে থাকা drop-in একটি টানেলে প্রভাব ফেলে; টেমপ্লেট ডিরেক্টরি সবগুলোতে। পথ বেছে নেওয়ার আগে মার্জ করা unit পড়ুন।
একটি টানেলের জন্য যোগ করা রিস্টার্ট পলিসি মেশিনের প্রতিটি টানেলে প্রয়োগ হতে শুরু করে। এটি systemd-এর বাগ নয়; এটি ইনস্ট্যান্স drop-in ও টেমপ্লেট drop-in-এর মধ্যে পার্থক্য। ফাইলটি কোন পথের অধীনে লেখেন, তা ঠিক করে কতগুলো সার্ভিস এটি উত্তরাধিকার পাবে।
সেটিংয়ের আগে পরিসর বেছে নিন। দুটি ডিরেক্টরি প্রায় একই রকম দেখায়, আর তাদের মধ্যে কেবল একটি আপনার উদ্দিষ্ট ইনস্ট্যান্সে সীমাবদ্ধ।
লক্ষণ: এক সম্পাদনা, সব টানেল
নির্দিষ্ট ইনস্ট্যান্সের drop-in পূর্ণ ইনস্ট্যান্সের নামে করা ডিরেক্টরির অধীনে থাকে, যেমন [email protected]। টেমপ্লেট drop-in থাকে [email protected]-এর অধীনে, মাঝে @ চিহ্ন থাকে এবং ইনস্ট্যান্সের নাম থাকে না। প্রথমটি কেবল office-এ প্রযোজ্য। দ্বিতীয়টি ওই টেমপ্লেট থেকে তৈরি প্রতিটি সার্ভিসে প্রযোজ্য।
টেমপ্লেট রূপটি আলাদা [email protected] টেমপ্লেটে পৌঁছায় না, আর নামে openvpn থাকা অসম্পর্কিত সার্ভিসেও পৌঁছায় না।
পরিসরের সাথে মেলে এমন ডিরেক্টরি বেছে নিন
দুটি ডিরেক্টরিই /etc/systemd/system/-এর অধীনে। শেষ system কম্পোনেন্টটি বাদ দিলে এমন পথ তৈরি হয় যা systemd সিস্টেম ওভাররাইড হিসেবে পড়ে না, আর এটি সঠিক দেখতে একটি ফাইলকে কিছু না করানোর নীরব উপায়। পূর্ণ পথটি একবার লিখুন এবং পুনরায় ব্যবহার করুন।
drop-in-এর সঠিক সেকশন শিরোনামও দরকার। সার্ভিস সেটিংস [Service]-এর অধীনে থাকে। সেটিংস আছে কিন্তু সেকশন নেই এমন ফাইল উপেক্ষা বা প্রত্যাখ্যান করা হয়, এবং ফাইলটি সেখানে কর্তৃত্বপূর্ণ দেখিয়ে থাকলেও unit আগের মতোই আচরণ করে।
একাধিক drop-in যোগ করলে ফাইলের নামে উদ্দেশ্য রাখুন। অভিধানিক ক্রম মার্জ নির্ধারণ করে, আর ফাইলটি কী করে তা বলা একটি নাম সেই ক্রমকে পাঠযোগ্য করে।
লেখার আগে মার্জ করা unit পড়ুন
কিছু লেখার আগে মার্জ করা unit পড়ুন। systemctl cat [email protected] মূল unit এবং প্রযোজ্য প্রতিটি drop-in মার্জ ক্রমে ছাপে। টেমপ্লেট পরিবর্তনের কথা ভাবলে এটি দ্বিতীয় ইনস্ট্যান্সের সাথে তুলনা করুন। সেই তুলনা দেখায় ঠিক কোন সার্ভিসগুলো সম্পাদনাটি উত্তরাধিকার পাবে।
ইনস্ট্যান্স ফাইল টেমপ্লেট সেটিংস মুছে দেয় না। দুটোই মার্জ হয়, তাই আপনি ভুলে যাওয়া একটি টেমপ্লেট মান এখনও কার্যকর থাকতে পারে।
অন্যান্য নামযুক্ত drop-in, রানটাইম সেটিংস এবং প্যাকেজ-প্রদত্ত কনফিগারেশনও অংশ নেয়। আপনি সবশেষে সম্পাদনা করা ফাইলটিই পুরো unit বলে ধরে নেবেন না। মার্জ করা আউটপুটই unit।
unit নীতিকে প্রোফাইলের বাইরে রাখুন
unit নীতি ও VPN কনফিগারেশন আলাদা রাখুন। প্রোফাইল নির্দেশনা [Service]-এর অধীনে থাকার কারণে বৈধ systemd সিনট্যাক্স হয়ে যায় না। রিস্টার্ট সেটিংও .ovpn ফাইলে থাকে না।
এই বিচ্ছেদই আরও একটি কারণ যে রিস্টার্ট পলিসিOpenVPN-এর নিজস্ব পিয়ার পুনরুদ্ধারের সমান কিছু নয়। পরিসর বেছে নেওয়ার আগে ঠিক করুন কোন আচরণ চান।
এটি প্রয়োগ করুন এবং ইনস্ট্যান্স যাচাই করুন
পরিবর্তনের পরে systemctl daemon-reload দিয়ে ম্যানেজারের সংজ্ঞা পুনরায় লোড করুন। এই পুনরায় লোড টানেল রিস্টার্ট করে না; এটি কেবল unit ফাইল আবার পড়ে। তারপর আপনার উদ্দিষ্ট লাইফসাইকেল ক্রিয়াটি সঠিক ইনস্ট্যান্সে প্রয়োগ করুন।
লোড করা unit আবার পড়ে এবং আপনি যে আচরণ বদলেছেন তা লক্ষ্য করে যাচাই করুন। সক্রিয় কাজ বহনকারী রিস্টার্ট পরিকল্পিত বিরতির যোগ্য, উৎপাদন টানেলে দ্রুত পরীক্ষার নয়। ওভাররাইডের উদ্দেশ্য ও পরিসর ডিপ্লয়মেন্টের পাশে লিখে রাখুন যাতে পরের ব্যক্তি জানতে পারেন ফাইলটি ভাগ করার জন্য ছিল কি না।
নীতি সত্যিই ভাগ করা হলে সচেতনভাবে এটি টেমপ্লেটে সরান এবং কাজ শেষ বলার আগে দ্বিতীয় ইনস্ট্যান্স যাচাই করুন।systemd unit রেফারেন্স drop-in অগ্রাধিকার ও মার্জ ক্রম নথিভুক্ত করে।