Nazwa hosta powraca do starej nazwy po ponownym uruchomieniu w 18.04 LTS


32

Może to być związane z uruchomieniem 18.04 LTS jako maszyny wirtualnej (Host to Win 2016 DC), ale nie mogę tego rozgryźć. Próbowałem każdej znanej mi metody, aby zmienić nazwę hosta, ale zawsze powraca ona do nazwy hosta, którą podałem, kiedy budowałem maszynę przy ponownym uruchomieniu. Próbowałem następujące:

  1. hostnamectl set-hostname xxx.
  2. Bezpośrednia edycja nazwy hosta.
  3. Dodanie --static do hostnamectl.
  4. Edycja pliku hosts i dodanie żądanej nazwy hosta.
  5. Przeszukiwanie dysku pod kątem odwołań do starej nazwy hosta przed ponownym uruchomieniem.
  6. Kilka innych dziwnych sugestii, które znalazłem w Internecie, nie warto wspominać.

Obecnie nie mam DNS dla tego serwera.

Przykład:

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

Miałem ten problem z wersją beta 18.04, ale pomyślałem, że poczekam na wydanie. Pomyślałem również, że może to być problem z faktem, że sklonowałem maszyny wirtualne, ale była to zupełnie nowa wersja zbudowana od podstaw z właśnie wydaną dystrybucją.

czego mi brakuje?

Z góry dziękuję.


Odpowiedzi:


49

Najpierw edytuj /etc/cloud/cloud.cfg i ustaw parametr „preserve_hostname” z „false” na „true”, a następnie edytuj / etc / hostname.


4
Działa jak marzenie. Nigdy nie otrzymałbym tego z powyższego wiersza komentarza: „To spowoduje, że moduł set + update hostname module nie będzie działał (jeśli jest prawdziwy)”. Dzięki bardzo, tyle niepoprawnych metod w Internecie.
Andy Wylde

18

Nazwa hosta jest resetowana, dzięki cloud-initczemu można ją wyłączyć w następujący sposób (po czym można ustawić nazwę hosta w normalny sposób, np. Za pomocą hostnamectl):

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

Lub możesz użyć inicjowania w chmurze i utworzyć / zmodyfikować user-dataplik (zwykle w /var/lib/cloud/seed/nocloud-net/user-data:), aby hostname:wpis był ustawiony na żądaną nazwę hosta (pod warunkiem, że preserve_hostname:nie jest ustawiony). Najpierw musisz wyczyścić istniejącą konfigurację:

sudo cloud-init clean

A następnie ponownie zainicjuj konfigurację cloud-init z nowego / zmodyfikowanego pliku danych użytkownika:

sudo cloud-init init

Następnie uruchom ponownie. Więcej informacji znajdziesz w dokumentach inicjujących chmurę .


3
Zachowaj ostrożność przy uruchamianiu cloud-init cleanlub cloud-init initmożesz przepisać pliki / etc / netplan / yaml.
Michael D.

3
Zaktualizuje również klucz hosta SSH, który może być potencjalnie szkodliwy (klienci muszą zaakceptować nowy klucz hosta, zanim będą mogli ponownie się połączyć)
Per Lundberg,

5

Dla „leniwych facetów” takich jak ja rozwiązanie kopiuj-wklej :)

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

Pierwsze polecenie umożliwia zapamiętanie nowej nazwy hosta przez system operacyjny.

Druga część (po &&) uruchomi się tylko wtedy, gdy pierwsza część zakończy się pomyślnie i ustawi nazwę hosta na żądaną wartość.

Pozdrowienia! L.


4

1- Edytuj vi /etc/cloud/cloud.cfgi zmień

preserve_hostname: false

Do

preserve_hostname: true

Zapisz i wyjdź.

2- Edytuj vi /etc/hostnamei zamień swoją nową nazwę w tym pliku lub możesz wykonać ten krok za pomocą poniższego polecenia.

hostnamectl set-hostname NEWNAME

Ciesz się :)


0

Miałem ten sam problem i stwierdziłem, że po usunięciu pakietów w chmurze możesz zmienić nazwę hosta.

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

1
Jestem pewien, że to zadziała, ale myślę, że wolę odpowiedź powyżej. Dzięki za odpowiedź
Andy Wylde

Sugeruję powstrzymanie się od tego rozwiązania, jeśli używasz pakietu ubuntu-server. Czemu? Ponieważ wyżej wymienione pakiety są tego niezbędne. Opis pakietu Ubuntu-server 'Description-pl: System Ubuntu Server Pakiet ten zależy od wszystkich pakietów w systemie Ubuntu Server. Służy również do zapewnienia prawidłowych aktualizacji, dlatego zaleca się, aby nie usuwać go. ”
linux64kb

0

Jeśli nie jesteś zadowolony z pozostawienia gdzieś starszej wersji, po prostu otwórz plik pod adresem /var/lib/cloud/seed/nocloud-net/user-data i zmień nazwę hosta w wierszu:

hostname: cm-lc-nc

Następnie uruchomić:

cloud-init clean
cloud-init init

Następnie zostanie ustawiona /etc/hostnamenowa wartość i pozostanie spójna podczas ponownego uruchamiania. Spowoduje to usunięcie wszystkich śladów poprzedniej nazwy hosta, a w przypadku preserve_hostnameresetu lub z jakiegoś powodu nadal nie stracisz nowej nazwy hosta.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.