প্রতিটি সার্ভারকে স্পষ্ট নাম দিন
একই রীতি মেনে রাখা অ্যালিয়াস সময় বাঁচায় ও ভুল কমায়। ~/.ssh/config-এ প্রতিটি সার্ভারের ঠিকানা, ব্যবহারকারী, পোর্ট ও কী একটি নামের অধীনে রাখুন। নামে ভূমিকা ও পরিবেশ যোগ করুন, যাতে প্রোডাকশন পরিবেশ এক নজরেই চেনা যায়। নির্দিষ্ট হোস্টের জন্য সেট না করা অপশনগুলো Host * ব্লক থেকে নেওয়া হয়।
Host prod-web-1
HostName 203.0.113.10
User admin
IdentityFile ~/.ssh/id_ed25519_prod
IdentitiesOnly yes
Host test-web-1
HostName 203.0.113.20
User adminভুল সার্ভারে কাজ করা এড়ান
একাধিক সার্ভারে কাজ করার সময় ভুল উইন্ডোতে কমান্ড লিখে ফেলা সহজ। প্রম্পটে হোস্টের নাম দেখান, প্রোডাকশনে প্রম্পটের আলাদা রং ব্যবহার করুন এবং ক্ষতি করতে পারে এমন যেকোনো কাজের আগে কোন সার্ভারে আছেন তা যাচাই করুন। সবচেয়ে ঝুঁকিপূর্ণ ধাপগুলো তখনই করুন যখন মাত্র একটি টার্মিনাল খোলা আছে।
hostname -f; whoami; pwdদীর্ঘ সময়ের কাজ চালু রাখুন
সংযোগ বিচ্ছিন্ন হলে সাধারণত শেল এবং তার মধ্যে চলা কমান্ডগুলো বন্ধ হয়ে যায়। দীর্ঘ কাজ সার্ভারে tmux বা screen-এর মধ্যে চালান, যাতে সেগুলো চলতে থাকে এবং আপনি আবার সেগুলোতে সংযুক্ত হতে পারেন। ক্লায়েন্ট keepalive অকার্যকর হয়ে যাওয়া সংযোগ দ্রুত শনাক্ত করে, কিন্তু নিজে থেকে কাজ চালু রাখে না।
tmux new -s upgrade
tmux attach -t upgradeকোন সার্ভারগুলো সাড়া দিচ্ছে জানুন
একাধিক সার্ভারে কাজ শুরুর আগে তাদের SSH পোর্ট সাড়া দিচ্ছে কি না যাচাই করুন। পোর্ট বন্ধ মানেই সার্ভার বন্ধ নয়: সার্ভিস বন্ধ হয়ে থাকতে পারে বা ফায়ারওয়াল আপনার নেটওয়ার্ককে বাধা দিতে পারে।
for host in prod-web-1 test-web-1; do
ssh -o ConnectTimeout=5 "$host" 'hostname; uptime' || echo "$host: no connection"
doneCH-J Server Manager-এ একাধিক সার্ভার
সার্ভার প্রোফাইল স্থানীয় এনক্রিপ্টেড ভল্টে রাখা হয় এবং একসঙ্গে একাধিক SSH সেশন খোলা থাকতে পারে। Alpha 0.1.1-এ একই সার্ভার বা দুটি সার্ভারের দুটি টার্মিনাল পাশাপাশি বা ওপর-নিচে রাখা যায় এবং টার্মিনাল লুকালে তার সেশন শেষ হয় না। একটি সংযোগ থাকলে মডিউলগুলো সেটি স্বয়ংক্রিয়ভাবে ব্যবহার করে এবং একাধিক খোলা থাকলে জিজ্ঞেস করে, তাই কোনো মডিউল নিজে থেকে অন্য সার্ভারে যায় না। ভল্ট লক করলে SSH সেশন বিচ্ছিন্ন হয়, তাই আগে চলমান কাজ শেষ করুন বা সেটি tmux-এ চালু রাখুন।
এক নজরে প্রাপ্যতা দেখুন
Alpha 0.1.1-এ প্রাপ্যতা মনিটর ব্যাকগ্রাউন্ডে সেভ করা সার্ভারগুলোর SSH পোর্টে TCP সংযোগ করে পরীক্ষা করে। ডিফল্টভাবে প্রতি 12 সেকেন্ডে এই পরীক্ষা হয়, লগইন না করেই। এখানে অফলাইন মানে আপনার নেটওয়ার্ক থেকে SSH পোর্টে পৌঁছানো যাচ্ছে না; সার্ভারটি নিজে তখনো চলতে পারে।