होस्ट नाम 18.04 एलटीएस में रिबूट के बाद पुराने नाम का सम्मान करता है


32

यह एक वर्चुअल मशीन (होस्ट विन 2016 डीसी है) के रूप में 18.04 एलटीएस चलाने से संबंधित हो सकता है लेकिन मैं यह पता नहीं लगा सकता कि कैसे। मैंने होस्टनाम बदलने के लिए मेरे द्वारा की जाने वाली हर विधि की कोशिश की है, लेकिन जब मैं रिबूट पर मशीन का निर्माण करता हूं तो यह हमेशा उस होस्टनाम के प्रति श्रद्धा रखता है जो मैंने दर्ज किया था। मैंने निम्नलिखित कोशिश की है:

  1. hostnamectl set-hostname xxx।
  2. सीधे होस्टनाम का संपादन।
  3. होस्टनामेक्टेल में जोड़ना
  4. होस्ट्स फ़ाइल को संपादित करना और वांछित होस्टनाम जोड़ना।
  5. रिबूट से पहले पुराने होस्टनाम के संदर्भ के लिए खोज ड्राइव।
  6. कुछ अन्य अजीब सुझाव मुझे इंटरनेट पर मिले जो ध्यान देने योग्य नहीं हैं।

मेरे पास इस समय इस सर्वर के लिए कोई DNS नहीं है।

उदाहरण:

XXXX@iwrxmail:~# hostnamectl
Static hostname: iwrxmail
Pretty hostname: Interwrx Ubuntu Mail Server
Transient hostname: ctl
     Icon name: computer-vm
       Chassis: vm
    Machine ID: 01ef0d836d2c4945b51a4fab8e506381
       Boot ID: e6608fe238d843f883cde52af7631a79
Virtualization: microsoft
Operating System: Ubuntu 18.04 LTS
        Kernel: Linux 4.15.0-20-generic
  Architecture: x86-64
XXXX@iwrxmail:~# hostnamectl set-hostname test
XXXX@iwrxmail:~# hostnamectl
Static hostname: test
     Icon name: computer-vm
       Chassis: vm
    Machine ID: 01ef0d836d2c4945b51a4fab8e506381
       Boot ID: e6608fe238d843f883cde52af7631a79
Virtualization: microsoft
Operating System: Ubuntu 18.04 LTS
        Kernel: Linux 4.15.0-20-generic
  Architecture: x86-64
root@iwrxmail:~# cat /etc/hostname
test
root@iwrxmail:~# cat /etc/hosts
127.0.0.1       localhost.localdomain   localhost
::1             localhost6.localdomain6 localhost6
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts 

However on reboot I get this again ....

XXXX@iwrxmail:~# hostnamectl
Static hostname: iwrxmail
     Icon name: computer-vm
       Chassis: vm
    Machine ID: 01ef0d836d2c4945b51a4fab8e506381
       Boot ID: 25a00676b22048eb8d43492c9de4f147
Virtualization: microsoft
Operating System: Ubuntu 18.04 LTS
        Kernel: Linux 4.15.0-20-generic
Architecture: x86-64

मेरे पास 18.04 के बीटा के साथ यह मुद्दा था, लेकिन मुझे लगा कि मैं रिलीज कॉपी की प्रतीक्षा करूंगा। मैंने यह भी माना कि यह इस तथ्य से समस्या हो सकती है कि मैंने VMs को क्लोन किया था, लेकिन यह सिर्फ जारी किए गए डिस्ट्रो के साथ खरोंच से निर्मित एक नया संस्करण था।

मुझे किसकी याद आ रही है?

अग्रिम में धन्यवाद।


जवाबों:


49

सबसे पहले /etc/cloud/cloud.cfg को संपादित करें और "preserve_hostname" पैरामीटर को "असत्य" से "सच" में सेट करें और फिर / etc / hostname को संपादित करें।


4
एक जादू की तरह काम करता है। मैंने कभी भी यह टिप्पणी नहीं की होगी कि इसके ऊपर की टिप्पणी लाइन से: "# इससे होस्ट + मॉड्यूल सेट हो जाएगा (यदि सच है) काम नहीं कर रहा है"। बहुत बहुत धन्यवाद, इतने सारे गलत तरीके वेब पर।
एंडी व्यिल्ड

18

होस्टनाम को रीसेट किया जा रहा है cloud-initजिसके द्वारा या तो निम्नानुसार अक्षम किया जा सकता है (जिसके बाद आप होस्टनाम को सामान्य तरीके से सेट कर सकते हैं जैसे कि उपयोग करना hostnamectl):

sudo touch /etc/cloud/cloud-init.disabled

या आप क्लाउड-इनिट का उपयोग कर सकते हैं और user-dataफ़ाइल बना सकते हैं / संशोधित कर सकते हैं (आमतौर पर पाया जाता /var/lib/cloud/seed/nocloud-net/user-dataहै hostname::) ताकि प्रविष्टि वांछित होस्टनाम पर सेट हो (बशर्ते preserve_hostname:सेट नहीं हो)। सबसे पहले आपको मौजूदा कॉन्फिग को साफ करना होगा:

sudo cloud-init clean

और फिर नए / संशोधित उपयोगकर्ता-डेटा फ़ाइल से क्लाउड-इनिट का पुन: कॉन्फ़िगर करना:

sudo cloud-init init

फिर रिबूट करें। देखें क्लाउड-init डॉक्स अधिक जानकारी के लिए।


3
दौड़ने के साथ सावधान रहें cloud-init cleanया cloud-init initयह आपके / etc / netplan / yaml फ़ाइलों को फिर से लिख सकता है।
माइकल डी।

3
यह आपकी SSH होस्ट कुंजी को भी अपडेट करेगा जो संभावित रूप से हानिकारक हो सकती है (ग्राहकों को फिर से कनेक्ट करने से पहले नई होस्ट कुंजी को स्वीकार करने की आवश्यकता होती है)
प्रति लंडबर्ग

5

मेरे जैसे "आलसी लोगों" के लिए, एक कॉपी-पेस्ट समाधान :)

sudo sed -i '/preserve_hostname: false/c\preserve_hostname: true' /etc/cloud/cloud.cfg && sudo hostnamectl set-hostname ReplaceThisWithTheHostnamePreferred

पहले कमांड नए होस्टनाम को ओएस द्वारा याद रखने की अनुमति देता है।

दूसरा भाग (&& के बाद) केवल तभी चलेगा जब पहला भाग सफलतापूर्वक समाप्त हो गया हो और होस्टनाम को वांछित मान पर सेट कर देगा।

सादर! एल


4

1- संपादित करें vi /etc/cloud/cloud.cfgऔर बदलें

preserve_hostname: false

सेवा मेरे

preserve_hostname: true

सुरषित और बहार।

2- vi /etc/hostnameइस फ़ाइल में अपना नया नाम संपादित करें और बदलें या आप इस चरण को bellow कमांड से कर सकते हैं।

hostnamectl set-hostname NEWNAME

का आनंद लें :)


0

मेरे पास एक ही मुद्दा था और पाया कि, क्लाउड पैकेज को हटाने के बाद, आप अपना होस्टनाम बदल सकते हैं।

apt remove cloud-init cloud-initramfs-copymods cloud-initramfs-dyn-netconf

1
मुझे यकीन है कि यह काम करेगा लेकिन मुझे लगता है कि मैं उपरोक्त जवाब पसंद करता हूं। हालांकि जवाब देने के लिए धन्यवाद
एंडी व्यिल्ड

यदि आप ubuntu-server पैकेज का उपयोग कर रहे हैं तो मैं इस समाधान से बचना चाहता हूं। क्यूं कर? क्योंकि उपर्युक्त पैकेज इसके लिए आवश्यक शर्तें हैं। उबंटू-सर्वर पैकेज का विवरण 'विवरण-एन: उबंटू सर्वर सिस्टम यह पैकेज उबंटू सर्वर सिस्टम के सभी पैकेजों पर निर्भर करता है। इसका उपयोग उचित उन्नयन सुनिश्चित करने के लिए भी किया जाता है, इसलिए यह सिफारिश की जाती है कि इसे हटाया न जाए। '
linux64kb

0

यदि आप कहीं पुराने संस्करण को छोड़ने से खुश नहीं हैं, तो बस फ़ाइल को खोलें /var/lib/cloud/seed/nocloud-net/user-data, और लाइन पर अपना होस्टनाम बदलें:

hostname: cm-lc-nc

तो भागो:

cloud-init clean
cloud-init init

यह तब /etc/hostnameनए मूल्य पर सेट होगा और रिबूट के पार बना रहेगा। यह पिछले hostname के सभी निशान को हटा देगा और उस घटना में जो preserve_hostnameया तो रीसेट किया गया है या किसी कारण से अनदेखा किया गया है, आप अभी भी अपना नया होस्टनाम नहीं खोएंगे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.