Nama host kembali ke nama lama setelah reboot di 18,04 LTS

32

Ini mungkin terkait dengan menjalankan 18,04 LTS sebagai mesin virtual (Host is Win 2016 DC) tapi saya tidak tahu caranya. Saya telah mencoba setiap metode yang saya tahu untuk mengubah nama host tetapi selalu kembali ke nama host yang saya masukkan ketika saya membangun mesin di reboot. Saya sudah mencoba yang berikut ini:

  1. hostnamectl set-hostname xxx.
  2. Mengedit nama host secara langsung.
  3. Menambahkan --static ke hostnamectl.
  4. Mengedit file host dan menambahkan nama host yang diinginkan.
  5. Mencari drive untuk referensi ke nama host lama sebelum reboot.
  6. Beberapa saran aneh lain yang saya temukan di internet tidak layak disebut.

Saya tidak memiliki DNS untuk server ini saat ini.

Contoh:

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

Saya pernah mengalami masalah ini dengan versi beta 18.04, tetapi saya pikir saya akan menunggu salinan rilisnya. Saya juga menganggap itu mungkin masalah dengan fakta bahwa saya telah mengkloning VMs, tetapi ini adalah versi baru yang dibangun dari awal dengan distro yang baru saja dirilis.

Apa yang saya lewatkan?

Terima kasih sebelumnya.

Andy Wylde
sumber

Jawaban:

49

Pertama-tama edit /etc/cloud/cloud.cfg dan setel parameter "preserve_hostname" dari "false" menjadi "true" dan kemudian edit / etc / hostname.

Karsten Hoffmann
sumber
4
Bekerja seperti pesona. Saya tidak akan pernah memperolehnya dari baris komentar di atasnya: "# Ini akan menyebabkan modul hostname set + update tidak beroperasi (jika benar)". Terima kasih banyak, begitu banyak metode yang salah di web.
Andy Wylde
18

Nama host sedang disetel ulang dengan cloud-inityang dapat dinonaktifkan sebagai berikut (setelah itu Anda dapat mengatur nama host dengan cara yang normal misalnya menggunakan hostnamectl):

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

Atau Anda dapat menggunakan cloud-init dan membuat / memodifikasi user-datafile (biasanya ditemukan di /var/lib/cloud/seed/nocloud-net/user-data:) sehingga hostname:entri diatur ke nama host yang diinginkan (asalkan preserve_hostname:tidak diatur). Pertama, Anda perlu membersihkan konfigurasi yang ada:

sudo cloud-init clean

Dan kemudian menginisialisasi ulang konfigurasi cloud-init dari file data pengguna yang baru / dimodifikasi:

sudo cloud-init init

Kemudian reboot. Lihat dokumen cloud-init untuk lebih jelasnya.

Pierz
sumber
3
Hati-hati dengan menjalankan cloud-init cleanatau cloud-init initdapat menulis ulang file / etc / netplan / yaml Anda.
Michael D.
3
Itu juga akan memperbarui kunci host SSH Anda yang dapat berpotensi berbahaya (klien harus menerima kunci host baru sebelum mereka dapat terhubung kembali)
Per Lundberg
5

Untuk "orang malas" seperti saya, solusi salin-tempel :)

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

Perintah pertama memungkinkan nama host baru diingat oleh OS.

Bagian kedua (setelah &&) hanya akan berjalan jika bagian pertama selesai dengan sukses dan akan mengatur nama host ke nilai yang diinginkan.

Salam! L.

linux64kb
sumber
4

1- Edit vi /etc/cloud/cloud.cfgdan ubah

preserve_hostname: false

Untuk

preserve_hostname: true

Simpan dan keluar.

2- Edit vi /etc/hostnamedan ganti nama baru Anda di file ini atau Anda dapat melakukan langkah ini dengan perintah di bawah.

hostnamectl set-hostname NEWNAME

Bersenang senang lah :)

Milad Norouzi
sumber
0

Saya memiliki masalah yang sama dan menemukan bahwa, setelah menghapus paket cloud, Anda dapat mengubah nama host Anda.

apt remove cloud-init cloud-initramfs-copymods cloud-initramfs-dyn-netconf
Nyonya
sumber
1
Saya yakin ini akan berhasil tetapi saya pikir saya lebih suka jawaban di atas. Terima kasih telah merespons
Andy Wylde
Saya sarankan untuk tidak menggunakan solusi ini jika Anda menggunakan paket ubuntu-server. Mengapa? Karena paket yang disebutkan di atas adalah prasyarat untuk itu. Deskripsi paket ubuntu-server 'Deskripsi-id: Sistem Ubuntu Server Paket ini tergantung pada semua paket dalam sistem Ubuntu Server. Ini juga digunakan untuk membantu memastikan peningkatan yang tepat, sehingga disarankan agar tidak dihapus. '
linux64kb
0

Jika Anda tidak senang meninggalkan versi lama di suatu tempat, cukup buka file di /var/lib/cloud/seed/nocloud-net/user-data, dan ubah nama host Anda di baris:

hostname: cm-lc-nc

Lalu lari:

cloud-init clean
cloud-init init

Kemudian akan ditetapkan /etc/hostnameke nilai baru dan akan tetap konsisten di seluruh reboot. Ini akan menghapus semua jejak hostname sebelumnya dan jika terjadi preserve_hostnamereset atau diabaikan karena beberapa alasan, Anda masih tidak akan kehilangan nama host baru Anda.

Retribusi H
sumber