अनेक Linux servers व्यवस्थापित करण्यासाठी योग्य tools
2 ते 5, 5 ते 20 किंवा 20 पेक्षा जास्त Linux servers असतील तर SSH config, tmux, Ansible, Uptime Kuma, Zabbix आणि Webmin यांपैकी योग्य stack निवडा.
तुम्ही काय तयार करत आहात
एकच tool नव्हे, तर एक लहान stack तयार करा. तुमच्याकडे प्रत्यक्षात किती servers आहेत यानुसार तो stack निवडा. ही संख्या म्हणजे एकमेव महत्त्वाचा input आहे. प्रत्येक “Linux server management tools” roundup मात्र हा मुद्दा दुर्लक्षित करतो. चार VPS साठी 200-server साठीचे समाधान स्वीकारणे आणि servers ऐवजी tool ला configuration देण्यात एक महिना घालवणे ही नेहमीची चूक आहे. दुसरी नेहमीची चूक म्हणजे अठरा servers असतानाही प्रत्येक server मध्ये SSH करून manually काम करणे आणि “तोच” बदल अठरा थोड्या वेगळ्या पद्धतीने लागू करणे.
म्हणून हे मार्गदर्शक fleet size नुसार विभागले आहे: 2 ते 5 servers, 5 ते 20 servers आणि 20 पेक्षा जास्त servers. याशिवाय प्रत्येक आकाराला लागू होणारा, पण सहसा कोणी लिहून ठेवत नाही असा एक समान स्तर आहे: inventory, key hygiene, प्रवेशाची एकच पद्धत आणि प्रत्यक्ष restore करून तपासलेले backups. प्रत्येक tool साठी तुम्हाला तीन गोष्टी मिळतील: ते कोणत्या कामाची जागा घेते, setup साठी किती मिनिटे लागतात आणि प्रत्यक्षात कोणता एक त्रास गंभीर ठरतो. मी पंधरा वर्षे VPS host चालवला आहे. खालील यादी 2 a.m. outage च्या वेळी प्रत्यक्ष उपयोगी ठरते; demo मध्ये चांगली दिसते म्हणून निवडलेली नाही.
पूर्वतयारी आणि प्रत्यक्ष अडचणी
प्रत्येक सर्व्हरवर key-based SSH आधीपासून कार्यरत असणे आवश्यक आहे. अजूनही password टाइप करत असाल, तर आधी ते दुरुस्त करा; यासाठी दहा मिनिटे लागतात आणि पुढील सर्व प्रक्रिया keys गृहीत धरतात. root नसलेला sudo user आणि current software चालवणारे सर्व्हर आवश्यक आहेत. येथील commands Ubuntu 24.04 गृहीत धरतात; मात्र apt वगळता इतर कशासाठीही Ubuntu-विशिष्ट बाबी नाहीत.
ही tools वापरण्यापूर्वी दोन स्पष्ट सूचना. पहिली, tool sprawl ही स्वतः एक व्यवस्थापन समस्या आहे. तुम्ही install केलेला प्रत्येक agent प्रत्येक सर्व्हरवर patch करावा लागणारा आणखी एक daemon असतो. त्यामुळे नवीन tool जोडण्याचे कारण "या आठवड्यात मी manually केलेले काम हे बदलून टाकते" असे असावे, "हे उपयुक्त दिसते" असे नाही. दुसरी, येथील सर्व software free software आहे आणि प्रत्यक्ष खर्च setup time हा आहे. म्हणून प्रत्येक tool सोबत minutes मधील estimate दिले आहे. Estimate मध्ये afternoon म्हटले असेल, तर त्यावर विश्वास ठेवा.
2 ते 5 सर्व्हर: तुमच्याकडे आधीपासून असलेले सर्वात कमी वापरले जाणारे साधन म्हणजे ~/.ssh/config
हे कशाची जागा घेते: IP पत्त्यांची text file, shell history मधील शोधाशोध (ssh 203.0 आणि नंतर Ctrl-R करून आशा ठेवणे), आणि कायम -p 2222 -i ~/.ssh/other_key टाइप करणे. सेटअपचा खर्च: एकदा 15 मिनिटे. अडचण: stale multiplexing sockets; याचे स्पष्टीकरण खाली आहे.
या प्रमाणात तुम्हाला नवीन softwareची गरज नाही. तुमच्याकडे आधीपासून असलेला client योग्य configurationसह वापरणे पुरेसे आहे. ~/.ssh/config प्रत्येक सर्व्हरला एक शब्दाचा alias देते आणि routing configurationमध्ये नोंदवते. त्यामुळे पुन्हा त्याचा विचार करावा लागत नाही:
Host *
ServerAliveInterval 30
ControlMaster auto
ControlPath ~/.ssh/cm-%r@%h-%p
ControlPersist 10m
Host bastion
HostName 10.0.0.10
User matt
Host web1
HostName 10.8.0.11
User matt
ProxyJump bastion
Host db1
HostName 10.8.0.12
User matt
Port 2222
ProxyJump bastionही कामे तीन settings करतात. ProxyJump एका hopमध्ये bastionमार्गे connections पाठवते. त्यामुळे कॅफेमधून ssh db1 वापरतानाही connection पारदर्शकपणे bastionमार्गे tunnel होते. Agent forwarding किंवा ProxyCommand incantationsची गरज नसते आणि private serversवर public SSH ports ठेवण्याचीही गरज नसते. याबद्दल cross-cutting sectionमध्ये अधिक माहिती आहे. ControlMaster auto आणि ControlPersist एकाच TCP sessionवर connections multiplex करतात. त्यामुळे त्याच hostवरील दुसरे आणि त्यानंतरचे प्रत्येक ssh, scp किंवा rsync त्वरित connect होते. प्रत्येक वेळी पुन्हा negotiation करण्याची गरज राहत नाही. Ansible वापरल्यावर हा फरक विशेषतः मोठा जाणवतो. तसेच scp, rsync आणि Ansible हे सर्व एकाच fileमधून configuration वाचतात. त्यामुळे येथे define केलेले प्रत्येक नाव सर्वत्र वापरता येते.
अडचण अशी आहे की master connection त्याची उपयुक्तता संपल्यानंतरही सुरू राहू शकते. त्याचे दोन failure modes वेगवेगळे दिसतात. Server reboot झाल्यावर किंवा Wi-Fi connection तुटल्यानंतर master processला dead TCP session अद्याप लक्षात आलेले नसते. त्यामुळे तो session धरून ठेवतो. त्यानंतरचा ssh web1 कुठेही न पोहोचणाऱ्या socketवर शांतपणे अडकतो. स्वतंत्रपणे, sshd प्रत्येक connectionसाठी sessionsची कमाल संख्या 10 ठेवतो (MaxSessions in sshd_config). त्यामुळे एखाद्या hostकडे multiplex केलेले अकरावे session सुरू केल्यावर हे दिसते:
mux_client_request_session: session request failed: Session open refusedदोन्ही समस्यांवर एकच उपाय आहे: ssh -O exit web1 master process बंद करते आणि पुढील connection नवीन master process सुरू करते. कधीकधी ControlSocket ~/.ssh/cm-matt@web1-22 already exists, disabling multiplexing देखील दिसू शकते. ते harmless आहे. दोन sessions एकाच वेळी सुरू होण्याचा प्रयत्न करतात आणि connection multiplex न होता सुरू राहते.
या प्रमाणात आणखी दोन companion tools उपयुक्त ठरतात. प्रत्येक serverवर tmux वापरल्याने nohup, Wi-Fi connection तुटल्यावर गमावलेले काम आणि "migration सुरू आहे, त्यामुळे laptop बंद करू शकत नाही" ही समस्या दूर होते. Setup cost: sudo apt install -y tmux, म्हणजे दोन मिनिटे, तसेच tmux new -s work आणि tmux attach -t work यांची सवय लागणे. अडचण nestingची आहे. tmuxच्या आत tmux चालवल्यास prefix keyचा उपयोग होत नाही. त्यामुळे ते serverवर किंवा laptopवर चालवा; दोन्हीकडे चालवू नका. तुम्ही दीर्घकाळ चालणारी agent sessions वापरत असाल, तर हे दुप्पट महत्त्वाचे आहे. हेच VPSवर Claude Code tmuxमध्ये चालवणे या पद्धतीचे उदाहरण आहे. येथे sessionने SSH connectionपेक्षा जास्त काळ सुरू राहणे आवश्यक असते.
Shared alias file प्रत्येक boxवर तुमच्या आवडत्या बारा one-liners पुन्हा टाइप करण्याची गरज दूर करते. एक .bash_aliases git repoमध्ये ठेवा आणि प्रत्येक serverवर pull करा. अडचण अशी आहे की एखाद्या serverवर थेट edit केल्यास ती file लगेच वेगवेगळी होते. पुढील tierची गरज का असते, याचा हा तुमचा पहिला अनुभव असतो.
5 ते 20 सर्व्हर: configuration as code, नाहीतर drift वरचढ ठरतो
पाचपेक्षा जास्त सर्व्हर झाल्यावर “प्रत्येक मशीनवर हेच करून टाकतो” ही पद्धत राहत नाही; ती स्वतःची समजूत घालण्याची पद्धत बनते. या स्तरावरील सर्व साधने एकाच समस्येवर काम करतात: drift.
Ansible hostnames वर चालवलेल्या shell loop ची, “new server setup” नावाच्या आणि तीन पायऱ्यांनी कालबाह्य झालेल्या wiki पानाची, तसेच web3 वर fix लागू झाला आहे की नाही हे माहीत नसण्याच्या चिंतेची जागा घेते. Setup cost: पहिले कार्यरत playbook तयार करण्यासाठी 30 minutes, sudo apt install -y ansible तुमच्या laptop किंवा management box वर (apt तुम्हाला जुना Ansible release देते; या सर्व कामांसाठी तो पुरेसा आहे. tutorial मधील pipx पद्धतीने current versions मिळतात), सर्व्हरवर कोणतेही agents लागत नाहीत आणि तुम्ही आधीच तयार केलेल्या SSH configuration वर सर्वकाही चालते. या पानावरील हा सर्वात मोठा एकल सुधारणा-टप्पा आहे. संपूर्ण walkthrough Ansible पहिल्या playbook चे tutorial मध्ये आहे. कार्यरत inventory ची रचना अशी आहे:
[web]
web1 ansible_host=10.8.0.11
web2 ansible_host=10.8.0.12
[db]
db1 ansible_host=10.8.0.21 ansible_port=2222
[all:vars]
ansible_user=matt
ansible_ssh_common_args='-o ProxyJump=bastion'Ansible OpenSSH binary ला shell out करत असल्यामुळे, मागील section मध्ये लिहिलेली ~/.ssh/config configuration आधीच लागू होते. web1 सारख्या bare names ची inventory कोणत्याही vars शिवायही कार्य करेल. वरील vars मुळे inventory स्वतंत्रपणे वापरता येते. तुम्ही ते laptop नसलेल्या मशीनवरून चालवाल त्या दिवशी याचा फायदा होतो.
ansible all -i inventory.ini -m ping ने चाचणी करा. योग्य निकालात प्रत्येक host साठी हिरव्या रंगात "ping": "pong" दिसते. सुरुवातीला तुम्हाला अशी failure दिसेल:
web1 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: matt@10.8.0.11: Permission denied (publickey).",
"unreachable": true
}ही Ansible ची समस्या नाही. साधे ssh matt@10.8.0.11 देखील त्याच प्रकारे fail होते. नेहमी आधी SSH दुरुस्त करा. Ansible ची स्थिती त्याखालील layer इतकीच चांगली असते. यापलीकडील एक अडचण अशी आहे की Ansible ला दोन्ही बाजूंवर Python आवश्यक असते. त्यामुळे अत्यंत minimal image /usr/bin/python3: not found असे उत्तर देऊ शकते, apt install python3 एकदाच करा आणि त्यानंतर ही अडचण पुन्हा येत नाही.
unattended-upgrades N सर्व्हरवर security patches लागू करणाऱ्या व्यक्तीची तुमची भूमिका घेते. Stock Ubuntu Server 24.04 मध्ये ते preinstalled असते आणि security updates साठी सामान्यतः आधीच enabled असते. त्यामुळे येथे काम install करणे नसून पडताळणी करणे आहे:
cat /etc/apt/apt.conf.d/20auto-upgradesदोन्ही ओळींचा शेवट "1" ने झाला पाहिजे. काही minimal आणि cloud images मध्ये ते switched off असते. तुमच्या image मध्ये तसे असल्यास sudo dpkg-reconfigure -plow unattended-upgrades ती file पुन्हा लिहिते. Setup cost: प्रत्येक सर्व्हरवर तपासणीसाठी two minutes, किंवा सर्व्हरसाठी एक Ansible task. अडचण अशी आहे की default ने ते कधीही reboot करत नाही. त्यामुळे kernel security updates अर्धवट लागू झालेल्या स्थितीत राहतात. unattended-upgrades चे स्वतंत्र guide automatic reboots, कोणते patches लागू करायचे आणि त्याचे logs कसे वाचायचे हे स्पष्ट करते.
Centralized monitoring ग्राहकाकडून माहिती मिळण्याची वेळ टाळते. ही आतापर्यंत तयार केलेली सर्वात महाग monitoring system आहे. दोन tools आणि कोणत्या प्रश्नाचे उत्तर देतात याची प्रत्येकी एक ओळ: Uptime Kuma “ते up आहे का?” याचे उत्तर देते; HTTP, TCP आणि ping checks करून कोणत्याही माध्यमावर alerts पाठवते आणि Docker मध्ये दहा minutes मध्ये सुरू होते. Zabbix “ते लवकरच fail होणार आहे का?” याचे उत्तर देते; प्रत्येक host वरील agent द्वारे disk, memory आणि CPU चे trends दाखवते आणि प्रामाणिकपणे सांगायचे तर त्यासाठी एक afternoon लागतो. Kuma पासून सुरुवात करा. “up but degraded” स्थितीमुळे खर्च होऊ लागल्यावर Zabbix जोडा. दोन्हींसाठी placement ही महत्त्वाची अडचण आहे. ती इतकी महत्त्वाची आहे की खालील mistakes section ची सुरुवात त्यावरून होते.
Web panel, फक्त अत्यावश्यक असल्यास. Webmin Ubuntu मध्ये settings कुठे ठेवलेल्या आहेत हे लक्षात ठेवण्याची गरज कमी करते. मिश्र कौशल्य असलेल्या team साठी किंवा वर्षातून दोनदा हाताळल्या जाणाऱ्या सर्व्हरसाठी ते खरोखर उपयोगी ठरते. Setup साठी ten minutes लागतात. अडचण अशी आहे की हे root-equivalent web application आहे, ते port 10000 वर listening करते आणि internet त्यासाठी सतत scans करते. ते वापरत असल्यास त्याला localhost किंवा VPN address वर bind करा. सार्वजनिक interface वरील 0.0.0.0 वर कधीही bind करू नका. SSH slow वाटत असल्यामुळे panel वापरण्याचा विचार करत असाल, तर आधी मागील section पुन्हा वाचा. Configuration झाल्यानंतर ~/.ssh/config आणि Ansible कोणत्याही panel पेक्षा जलद असतात.
20+ सर्व्हर: हा मार्गदर्शक प्रामाणिकपणे जिथे थांबतो
20 पेक्षा जास्त सर्व्हर असतील, तर तुम्ही सर्व्हर फ्लीट चालवत आहात आणि toolchain चे स्वरूप बदलते: सर्व्हर स्वतः reproducible ठेवण्यासाठी Terraform किंवा OpenTofu, एखादा सर्व्हर दुरुस्त करण्याऐवजी सहज बदलता यावा यासाठी cloud-init किंवा golden images, laptop वरून push करणे scale होत नसल्यामुळे तुमचे Ansible चालवण्यासाठी pull-based configuration किंवा CI pipelines, आणि योग्य secrets management. Ansible स्वतः 20 सर्व्हरवर अपयशी ठरत नाही; अनेक संस्था ते शेकडो nodes वर चालवतात. मात्र त्याभोवतीच्या पद्धती अधिक कडक आणि शिस्तबद्ध कराव्या लागतात. हा विषय या साइटवरील लेखापेक्षा वेगळा आहे. तुम्ही या scale वर असाल, तरी खालील section तुमच्यासाठी लागू आहे, कारण inventory, keys आणि access discipline या fleet tooling गृहीत धरत असलेल्या मूलभूत गोष्टी आहेत.
कुणीही नोंदवत नाही असा स्तर
सर्व्हरची संख्या कितीही असो, या चार पद्धती लागू होतात. त्या टाळल्यामुळे सर्व्हरची संख्या प्रत्यक्षापेक्षा अधिक मोठी आणि अवघड वाटते.
इन्व्हेंटरी फाइल, अगदी text file असली तरी. तुमच्याकडे तीन servers होताच त्यांची name, IP, provider, त्यावर काय चालते आणि ते का अस्तित्वात आहे, हे लिहून ठेवा. Git repo मधील servers.md पुरेसे आहे; मात्र वरील Ansible inventory अधिक चांगली आहे, कारण ती executable documentation आहे. यामुळे “थांबा, 10.0.0.40 म्हणजे काय?” हा पहाटे 2 वाजताचा प्रश्न टाळता येतो. सेटअपसाठी दहा मिनिटे लागतात. महत्त्वाची अट अशी आहे की server तयार करणे आणि inventory मध्ये ती line जोडणे हे एकाच वेळी झाले पाहिजे; ही दोन स्वतंत्र कामे कधीही नसावीत.
Key hygiene: आता rotation करा; गरज भासल्यावर SSH CA वापरा. तुमच्या keys कुठे आहेत याची यादी करा (तुमच्या बाजूला cat ~/.ssh/*.pub आणि प्रत्येक server च्या बाजूला ~/.ssh/authorized_keys), जुने laptops आणि माजी सहकाऱ्यांचा access काढून टाका, तसेच ज्या key चा वापर कुठे झाला हे तुम्ही सांगू शकत नाही इतकी जुनी key rotate करा. Static keys ऐवजी अल्पकालीन signed certificates देणारा SSH certificate authority हा अधिक प्रगत उपाय आहे. पण प्रामाणिक सल्ला असा आहे की दहा servers पेक्षा कमी असतील, तर Ansible द्वारे शिस्तबद्ध authorized_keys management केल्याने 10% प्रक्रियेत 90% फायदा मिळतो.
वीस प्रवेशमार्गांऐवजी एकच प्रवेशमार्ग. प्रत्येक public SSH port मुळे attack surface N पट वाढतो. मोठ्या प्रमाणावर लागू होणारी रचना अशी आहे: एक bastion host किंवा त्याहून चांगले म्हणजे तुम्ही नियंत्रित करत असलेल्या VPS वरील WireGuard VPN, आणि इतर प्रत्येक server चा SSH केवळ त्याच्या private address वर bind केलेला असावा. वरील configuration मधील ProxyJump lines या रचनेचा आधीपासूनच आधार घेतात. जे काही public ठेवणे आवश्यक आहे, त्यावर नियमानुसार fail2ban वापरा. सेटअपसाठी एकदा एक तास लागतो. महत्त्वाची अट अशी आहे की सर्वत्र port 22 बंद करण्यापूर्वी fallback म्हणून provider चे console access कार्यरत आहे का ते तपासा; port बंद केल्यानंतर तपासू नका.
Restore करून तपासलेले backups. तपासलेला नसलेला backup हा केवळ एक अंदाज असतो. तुम्ही कोणतीही पद्धत वापरा—provider snapshots, restic, किंवा दुसऱ्या box वर rsync—प्रत्यक्षात महत्त्वाची गोष्ट म्हणजे calendar entry ठेवणे: त्यानुसार एक server नव्या VPS वर restore करा आणि तो boot होऊन सेवा देतो आहे याची खात्री करा. Hosting क्षेत्रातील पंधरा वर्षांत मी ऐकलेल्या प्रत्येक backup-संबंधित गंभीर प्रसंगात “आमच्याकडे backups होते” हे वाक्य आले आहे.
चुका
अनेक सर्व्हरच्या प्रमाणात येणाऱ्या अपयशांची कारणे साधनांमध्ये नसतात; ती सवयींमध्ये असतात. त्यांपैकी चार कारणे जवळजवळ सर्व समस्यांसाठी जबाबदार असतात.
Snowflake servers. प्रत्येक सर्व्हर हाताने configure केलेला असतो, प्रत्येकाची रचना थोडी वेगळी असते आणि तो पुन्हा build करता येत नाही. डिस्कमध्ये बिघाड झाल्यावर हे लक्षात येते. उपाय कंटाळवाणा आहे: प्रत्येक बदल Ansible मार्फत करा. किंवा कमीतकमी तो बदल inventory document मधील त्या सर्व्हरच्या section मध्ये नोंदवा. आज दुपारी notes वापरून पुन्हा build करता न आलेला कोणताही सर्व्हर ही निश्चित मुदत असलेली technical debt आहे; ती मुदत तुम्ही ठरवू शकत नाही.
"Temporary" firewall holes. एखादी गोष्ट debug करण्यासाठी ufw allow 5432 वापरता, आणि अठरा महिन्यांनंतरही Postgres इंटरनेटवर उघडा असतो. प्रत्येक सर्व्हरवर sudo ufw status numbered वापरून audit करा. किंवा एकाच वेळी ansible all -i inventory.ini -a "ufw status numbered" --become वापरा. सध्याचे कारण सांगता येत नाही असा प्रत्येक rule delete करा. एखादा rule खरोखर temporary असेल, तर तो बंद करण्यासाठीचा संबंधित ufw delete तो window बंद करण्यापूर्वी त्याच tmux window मध्ये नोंदवा.
Monitoring hosted on a monitored box. Uptime Kuma ज्या सर्व्हरवर चालते त्याच सर्व्हरवर ती monitoring करत असेल, तर "everything is down" असा alert देणारी यंत्रणाही down असते. अशा प्रकारे तुम्ही जगातील सर्वांत अकार्यक्षम datacenter ची छोटी आणि अधिक विनोदी आवृत्ती तयार करता. Monitoring वेगळ्या failure domain मध्ये असावी. वेगळ्या provider वरील स्वस्त VPS हा नेहमीचा उपाय आहे. किंवा कमीतकमी watcher वर लक्ष ठेवणारी बाह्य free-tier check वापरा.
Root SSH everywhere. संपूर्ण fleet साठी एकच shared root key वापरल्यास एक laptop leak झाला तरी सर्वकाही ताब्यात येते. तसेच कोणी काय केले याचा audit trail राहत नाही. प्रत्येक व्यक्तीसाठी स्वतंत्र users, sudo आणि प्रत्येक host वरील /etc/ssh/sshd_config मध्ये PermitRootLogin no वापरा. पुन्हा एकदा, यासाठी संध्याकाळभर typing करण्याऐवजी तीन ओळींचे Ansible task पुरेसे आहे.
Fleet काही मोजक्या सर्व्हरांपेक्षा मोठी झाल्यावर, तुमचे पहिले Ansible playbook पुनरावृत्तीची कामे automate करते.
FAQ
अनेक Linux servers व्यवस्थापित करण्यासाठी सर्वोत्तम मोफत tool कोणते?
2 ते 5 servers साठी, व्यवस्थित लिहिलेला ~/.ssh/config आणि tmux तुम्ही install करू शकणाऱ्या कोणत्याही tool पेक्षा अधिक उपयुक्त ठरतो. साधारणपणे पाच servers नंतर Ansible हे standard उत्तर आहे: त्याला agent ची गरज नसते, तो मोफत आहे, तुमच्याकडे आधीपासून असलेल्या SSH वर चालतो आणि server setup ला git मधील files मध्ये रूपांतरित करतो. Up/down alerting साठी Uptime Kuma जोडा; या मार्गदर्शकात नमूद केलेले प्रत्येक tool free software आहे.
Ansible शिवाय अनेक Linux servers व्यवस्थापित करता येतात का?
होय. सुमारे पाच servers पेक्षा कमी असल्यास, चांगली SSH config, shared alias file आणि शिस्त पुरेशी असते. अनेक लोक वर्षानुवर्षे अशाच पद्धतीने servers चालवतात. त्यापेक्षा जास्त servers झाल्यावर Ansible चा पर्याय "काहीच नाही" असा नसतो. तो undocumented drift असतो: अठरा servers, आणि प्रत्येकाची configuration हाताने थोडी वेगळी केलेली. Ansible जड वाटत असल्यास, फक्त authorized_keys आणि unattended-upgrades व्यवस्थापित करणाऱ्या एका playbook पासून सुरुवात करा. तेवढ्यानेही शिकण्यासाठी लागलेला वेळ भरून निघतो.
एकाच वेळी अनेक Linux servers वर समान command कशी चालवावी?
ansible all -i inventory.ini -a "uptime" हा स्वच्छ पर्याय आहे आणि त्यासाठी playbooks ची गरज नसते; फक्त inventory file पुरेशी असते. समोरासमोर interactive कामासाठी, tmux setw synchronize-panes on वापरून प्रत्येक pane मध्ये keystrokes प्रसारित करू शकतो. मात्र हे केवळ तात्पुरते प्रात्यक्षिक समजा. Production servers वर interactive commands प्रसारित केल्यास एका चुकीच्या typing मुळे N पट outage होऊ शकतो.
Linux servers व्यवस्थापित करण्यासाठी Webmin सारख्या control panel ची गरज आहे का?
गरज नाही. Control panel जे काही करते, ते SSH आणि Ansible अधिक reproducible पद्धतीने करतात. एकाच servers वर वेगवेगळ्या कौशल्यपातळीचे लोक administration करत असतील, किंवा एखादा server इतक्या क्वचित वापरत असाल की configuration paths पुन्हा शोधण्यात प्रत्यक्ष वेळ जात असेल, तर Webmin उपयुक्त ठरतो. Webmin वापरत असल्यास, तो root-equivalent web app आहे असे समजा. तो localhost किंवा VPN address वर bind करा. Public interface वर कधीही bind करू नका.
एक व्यक्ती वास्तववादी पद्धतीने किती Linux servers व्यवस्थापित करू शकते?
हाताने administration केल्यास, दहा servers च्या आत कुठेतरी quality कमी होऊ लागते. Configuration as code, automated patching आणि centralized monitoring असल्यास, एक काळजीपूर्वक काम करणारी व्यक्ती part-time job म्हणून 20 ते 50 servers चालवू शकते. मर्यादा routine care नसून, नवीन प्रकारची समस्या किती वेळा निर्माण होते ही असते. महत्त्वाचा आकडा प्रति admin servers नसून प्रति admin snowflakes हा आहे. तो जवळजवळ शून्य ठेवला, तर कमाल मर्यादा मोठी असते.