यह मॉड्यूल क्या करता है #
हर बार जब आप कोई सर्वर शुरू करते हैं, तो बुनियाद को उसकी जगह पर रखना ज़रूरी होता है: लंबित अपडेट इंस्टॉल करना, यह तय करना कि प्रोग्राम किस भाषा में बोलें, सही समय-क्षेत्र सेट करना, मशीन को एक नाम देना और यह सुनिश्चित करना कि घड़ी सही समय पर है। ये छोटे पर दोहराए जाने वाले काम हैं, और हर एक का अपना Linux कमांड अपनी सिंटैक्स के साथ है।
os मॉड्यूल इन सबको एक सुसंगत इंटरफ़ेस के पीछे जोड़ देता है। यह सिस्टम को अपडेट करता है (या केवल सुरक्षा वाला हिस्सा) और बताता है कि रीबूट की ज़रूरत है या नहीं; अनअटेंडेड को सक्रिय करता है ताकि सुरक्षा अपडेट अपने आप लागू हों; locale, समय-क्षेत्र और hostname को idempotent तरीके से सेट करता है; और NTP समन्वयन को संभालता है ताकि समय कभी न भटके। हर क्रिया दोहराने के लिए सुरक्षित है: अगर पहले से वांछित स्थिति में है, तो कुछ नहीं छूता।
जो सबकमांड कुछ बदलते हैं (अपडेट करना, locale, समय-क्षेत्र, hostname या NTP सेट करना) वे सिस्टम में लिखते हैं और उन्हें root विशेषाधिकार चाहिए: उन्हें sudo के साथ चलाएँ। जो केवल जानकारी देखते हैं (status, list, check) उन्हें इसकी ज़रूरत नहीं।
सामान्य कार्य #
चुनें कि आप क्या करना चाहते हैं। हर रेसिपी में कमांड पहले से लिखा हुआ है — बस उदाहरण मानों को अपने मानों से बदलें और कॉपी करें दबाएँ।
1
अपडेट देखें और लागू करें
जाँचें कि क्या लंबित है और पल भर में अद्यतन हो जाएँ।
पहले सामान्य स्थिति देखें और कौन से अपडेट प्रतीक्षा में हैं:
$ imaxe os status
$ imaxe os checkलंबित को लागू करें। अगर आप केवल सुरक्षा वाले चाहते हैं और ज़रूरत पड़ने पर रीबूट हो, तो flags जोड़ें:
$ sudo imaxe os update --security-only --reboot-if-neededimaxe os reboot-required का उपयोग करें (कोड 0 = हाँ, ज़रूरत है)।2
सुरक्षा वाले अपडेट स्वचालित छोड़ें
ताकि सुरक्षा अपडेट अपने आप लागू हों, बिना आपके ध्यान दिए।
अनअटेंडेड को सक्रिय करें। यह आपके लिए unattended-upgrades की कॉन्फ़िगरेशन उत्पन्न करता है:
$ sudo imaxe os autoupdate enableपुष्टि करें कि यह सक्रिय है और अगला निष्पादन कब होगा:
$ imaxe os autoupdate statussudo imaxe os autoupdate disable।3
समय-क्षेत्र और समय सेट करें
अपना IANA क्षेत्र तय करें और सुनिश्चित करें कि घड़ी NTP द्वारा समन्वित होती है।
अगर आपको अपने क्षेत्र का सटीक नाम याद नहीं, तो पहले उसे फ़िल्टर करें:
$ imaxe os timezone list Europeक्षेत्र तय करें (यह idempotent है) और समय समन्वयन सक्षम करें:
$ sudo imaxe os timezone set Europe/Madrid
$ sudo imaxe os timesync enableimaxe os timesync status से जाँचें।4
सिस्टम की भाषा तय करें
LANG परिभाषित करें और अगर locale अभी मौजूद नहीं है तो उसे उत्पन्न करें।
सिस्टम की भाषा तय करें। यह कमांड locale उत्पन्न करता है और अगर locales पैकेज नहीं है तो उसे इंस्टॉल करता है:
$ sudo imaxe os locale set es_ES.UTF-8LANG बदले बिना और भाषाएँ उपलब्ध चाहिए? उन्हें अलग से उत्पन्न करें:
$ sudo imaxe os locale generate es_ES.UTF-8 en_US.UTF-8imaxe os locale status से जाँचें।5
मशीन का नाम बदलें
एक स्पष्ट hostname सेट करें और /etc/hosts को सुसंगत रखें।
/etc/hosts को सुसंगत रखें।hostname असाइन करें। केवल अक्षर, अंक और हाइफ़न स्वीकार किए जाते हैं, अधिकतम 63 अक्षर:
$ sudo imaxe os hostname set web-01/etc/hosts उसके अनुरूप अद्यतन हो जाता है। इसे imaxe os hostname status से सत्यापित करें।अगर इंस्टेंस को cloud-init प्रबंधित करता है, तो यह हर बूट पर hostname फिर से लिख सकता है। इसीलिए os.yml डिफ़ॉल्ट रूप से hostname फ़ील्ड को खाली छोड़ देता है: इसे केवल तभी सेट करें जब आपको पता हो कि cloud-init इसे अधिलेखित नहीं करेगा।
सारांश #
imaxe os <subcomando> [<acción>] [<argumento>...] [flags]जो सबकमांड सिस्टम को बदलते हैं (अपडेट करना, अनअटेंडेड, locale, समय-क्षेत्र, hostname, NTP) उन्हें root विशेषाधिकार चाहिए (sudo का उपयोग करें)। मशीन-पठनीय आउटपुट पाने के लिए किसी भी status या check में --json जोड़ें, जो scripting के लिए उपयुक्त है।
सबकमांड #
| सबकमांड | यह क्या करता है | क्रियाएँ / flags |
|---|---|---|
| status | सिस्टम की अपडेट स्थिति का सारांश। | --json |
| update | लंबित अपडेट अभी लागू करता है। | --security-only, --reboot-if-needed |
| check | लंबित अपडेट को लागू किए बिना उनकी सूची बनाता है। | --json |
| reboot-required | बताता है कि कोई रीबूट लंबित है या नहीं (exit 0 = हाँ, 1 = नहीं)। | --json |
| autoupdate | स्वचालित अनअटेंडेड अपडेट को प्रबंधित करता है। | enable · disable · status |
| locale | सिस्टम का locale प्रबंधित करता है (आवश्यकता अनुसार उत्पन्न और इंस्टॉल करता है)। | status · list · set · generate |
| timezone | सिस्टम का समय-क्षेत्र दिखाता या बदलता है। | status · list · set |
| hostname | hostname दिखाता या बदलता है (/etc/hosts के साथ सुसंगत)। | status · set |
| timesync | समय समन्वयन (NTP) प्रबंधित करता है। | status · enable · disable |
आर्गुमेंट और flags #
| आर्गुमेंट / flag | प्रकार | कहाँ लागू होता है | विवरण |
|---|---|---|---|
| --json | bool | status · check | परिणाम को stdout में संरचित JSON के रूप में उत्सर्जित करता है, scripting के लिए उपयुक्त। |
| --security-only | bool | update | केवल सुरक्षा अपडेट लागू करता है। |
| --reboot-if-needed | bool | update | अगर अपडेट के बाद सिस्टम को ज़रूरत हो तो स्वचालित रूप से रीबूट करता है। |
| <locale> आव. | string… | locale set · locale generate | es_ES.UTF-8 प्रारूप में locale। set में एक (सिस्टम का LANG); generate में उत्पन्न करने के लिए एक या अधिक। |
| <zona> आव. | string | timezone set | IANA समय-क्षेत्र, उदा. Europe/Madrid। |
| <filtro> | string | timezone list | क्षेत्रों की सूची को सीमित करने के लिए वैकल्पिक फ़िल्टर (उदा. Europe)। |
| <nuevo> आव. | string | hostname set | नया hostname: छोटे अक्षर a-z, अंक 0-9 और हाइफ़न, अधिकतम 63 अक्षर। |
फाइलें और पथ #
| पथ | सामग्री |
|---|---|
| /etc/imaxe/os.yml | मॉड्यूल की कॉन्फ़िगरेशन: अनअटेंडेड, अपडेट नीति, locale, समय-क्षेत्र, hostname और NTP। |
| /var/log/imaxe/os.log | सिस्टम के हर अपडेट और कॉन्फ़िगरेशन परिवर्तन का संरचित रिकॉर्ड। |
| /etc/apt/apt.conf.d/20auto-upgrades | autoupdate enable द्वारा उत्पन्न कॉन्फ़िग जो अनअटेंडेड को सक्रिय करता है। |
| /etc/apt/apt.conf.d/50unattended-upgrades | unattended-upgrades के नियम (क्या अपडेट होता है, रीबूट विंडो, बहिष्करण सूची)। |
os.yml का उदाहरण:
unattended:
enabled: true
security_only: true
automatic_reboot: false
automatic_reboot_time: "03:00"
blacklist: []
update:
default_security_only: false
locale:
lang: es_ES.UTF-8
generate: [es_ES.UTF-8, en_US.UTF-8]
timezone: Europe/Madrid
hostname: ""
ntp:
enabled: trueखाली फ़ील्ड ("") का अर्थ है «न छुएँ»: मॉड्यूल उस सेटिंग को जैसी है वैसी छोड़ देता है। इसीलिए hostname खाली आता है — इंस्टेंस को आमतौर पर cloud-init प्रबंधित करता है।
एग्जिट कोड और logs #
हर निष्पादन एक कोड लौटाता है जिसे आप echo $? से जाँच सकते हैं — scripts में जोड़ने के लिए उपयोगी:
reboot-required एग्जिट कोड को ही उत्तर के रूप में उपयोग करता है: 0 का अर्थ है «हाँ, रीबूट की ज़रूरत है» और 1 का अर्थ है «नहीं»। इस तरह आप इसे टेक्स्ट पार्स किए बिना सीधे किसी script में जोड़ सकते हैं।
डीबग करते हुए log को सीधे लाइव देखें:
$ sudo tail -f /var/log/imaxe/os.logसमस्या-समाधान #
| लक्षण | संभावित कारण | समाधान |
|---|---|---|
| USAGE आता है (कोड 2) | कोई अनिवार्य आर्गुमेंट (locale, क्षेत्र या hostname) गायब है या प्रारूप मान्य नहीं है। | आर्गुमेंट तालिका जाँचें: hostname केवल a-z0-9 और हाइफ़न स्वीकार करता है (≤63)। |
| रीबूट के बाद hostname फिर बदल जाता है | cloud-init हर बूट पर hostname फिर से लिखता है। | cloud-init में hostname प्रबंधन अक्षम करें, या os.yml में फ़ील्ड खाली छोड़ें और उसे हाथ से न सेट करें। |
locale set में समय लगता है या विफल होता है | locales पैकेज नहीं है और उसे इंस्टॉल/उत्पन्न करना होगा। | सिस्टम अद्यतन के साथ फिर से प्रयास करें (imaxe os update); मॉड्यूल locales इंस्टॉल करता है और locale खुद उत्पन्न करता है। |
| समय अभी भी भटका हुआ है | NTP समन्वयन अक्षम है। | इसे sudo imaxe os timesync enable से सक्रिय करें और imaxe os timesync status से सत्यापित करें। |
| अनअटेंडेड लागू नहीं होते | इस मशीन पर अनअटेंडेड कभी सक्रिय नहीं किए गए। | sudo imaxe os autoupdate enable चलाएँ और imaxe os autoupdate status से पुष्टि करें। |
सिस्टम मॉड्यूल में अटक गए?
हमें «imaxe <module> status --json» का आउटपुट भेजें और हम आपको जल्दी जवाब देंगे।