Il nome host torna al vecchio nome dopo il riavvio in 18.04 LTS


32

Ciò potrebbe essere correlato all'esecuzione di 18.04 LTS come macchina virtuale (l'host è Win 2016 DC) ma non riesco a capire come. Ho provato tutti i metodi che conosco per cambiare il nome host, ma torna sempre al nome host che ho inserito quando ho costruito la macchina al riavvio. Ho provato quanto segue:

  1. hostnamectl set-hostname xxx.
  2. Modifica diretta del nome host.
  3. Aggiunta di --static a hostnamectl.
  4. Modifica del file hosts e aggiunta del nome host desiderato.
  5. Ricerca unità per riferimenti al vecchio nome host prima del riavvio.
  6. Alcuni altri strani suggerimenti che ho trovato su Internet non meritano di essere menzionati.

Non ho DNS per questo server in questo momento.

Esempio:

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

Avevo avuto questo problema con la beta del 18.04, ma ho pensato che avrei aspettato la copia di rilascio. Ho anche considerato che potrebbe essere un problema con il fatto di aver clonato le VM, ma questa era una nuova versione costruita da zero con la distribuzione appena rilasciata.

Cosa mi sto perdendo?

Grazie in anticipo.


Risposte:


49

Prima modifica /etc/cloud/cloud.cfg e imposta il parametro "preserv_hostname" da "false" a "true", quindi modifica / etc / hostname.


4
Funziona come un fascino. Non lo avrei mai ottenuto dalla riga di commento sopra di esso: "# Questo farà sì che il modulo set + update hostname non funzioni (se vero)". Grazie mille, tanti metodi errati sul web.
Andy Wylde,

18

Il nome host viene ripristinato mediante il cloud-initquale può essere disabilitato come segue (dopodiché è possibile impostare il nome host in modo normale, ad es. Utilizzando hostnamectl):

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

Oppure puoi usare cloud-init e creare / modificare il user-datafile (di solito si trova in:) in /var/lib/cloud/seed/nocloud-net/user-datamodo che la hostname:voce sia impostata sul nome host desiderato (a condizione che preserve_hostname:non sia impostato). Innanzitutto dovrai pulire la configurazione esistente:

sudo cloud-init clean

Quindi reinizializza la configurazione di cloud-init dal file di dati utente nuovo / modificato:

sudo cloud-init init

Quindi riavviare. Consulta i documenti cloud-init per maggiori dettagli.


3
Fai attenzione a correre cloud-init cleano cloud-init initpuò riscrivere i tuoi file / etc / netplan / yaml.
Michael D.

3
Aggiornerà anche la chiave host SSH che può essere potenzialmente dannosa (i client devono accettare la nuova chiave host prima di poter riconnettersi)
Per Lundberg

5

Per i "ragazzi pigri" come me, una soluzione copia-incolla :)

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

Il primo comando consente al nuovo nome host di essere ricordato dal sistema operativo.

La seconda parte (dopo &&) verrà eseguita solo se la prima parte è stata completata correttamente e imposterà il nome host sul valore desiderato.

Saluti! L


4

1- Modifica vi /etc/cloud/cloud.cfge modifica

preserve_hostname: false

A

preserve_hostname: true

Salva ed esci.

2- Modifica vi /etc/hostnamee sostituisci il tuo nuovo nome in questo file oppure puoi fare questo passo con il seguente comando.

hostnamectl set-hostname NEWNAME

Divertirsi :)


0

Ho avuto lo stesso problema e ho scoperto che, dopo aver rimosso i pacchetti cloud, è possibile modificare il nome host.

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

1
Sono sicuro che funzionerà, ma penso di preferire la risposta sopra. Grazie per la risposta, però
Andy Wylde,

Suggerisco di astenersi da questa soluzione se si utilizza il pacchetto ubuntu-server. Perché? Perché i pacchetti sopra menzionati ne sono i prerequisiti. Descrizione del pacchetto ubuntu-server 'Descrizione-it: Il sistema Ubuntu Server Questo pacchetto dipende da tutti i pacchetti nel sistema Ubuntu Server. Viene inoltre utilizzato per garantire aggiornamenti adeguati, pertanto si consiglia di non rimuoverlo. "
linux64kb,

0

Se non sei soddisfatto di lasciare una versione precedente da qualche parte, apri semplicemente il file su /var/lib/cloud/seed/nocloud-net/user-datae modifica il tuo nome host sulla riga:

hostname: cm-lc-nc

Quindi eseguire:

cloud-init clean
cloud-init init

Quindi verrà impostato /etc/hostnamesul nuovo valore e rimarrà coerente durante i riavvii. Ciò rimuoverà tutte le tracce del nome host precedente e, nel caso in cui preserve_hostnamevenga ripristinato o ignorato per qualche motivo, non perderai comunque il tuo nuovo nome host.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.