Tên máy chủ hoàn nguyên về tên cũ sau khi khởi động lại vào 18.04 LTS


32

Điều này có thể liên quan đến việc chạy 18.04 LTS dưới dạng máy ảo (Host là Win 2016 DC) nhưng tôi không thể tìm ra cách làm. Tôi đã thử mọi phương pháp tôi biết để thay đổi tên máy chủ nhưng nó luôn trở lại tên máy chủ tôi đã nhập khi tôi xây dựng máy khi khởi động lại. Tôi đã thử như sau:

  1. hostnamectl set-hostname xxx.
  2. Chỉnh sửa tên máy chủ trực tiếp.
  3. Thêm --static vào hostnamectl.
  4. Chỉnh sửa tập tin máy chủ và thêm tên máy chủ mong muốn.
  5. Tìm kiếm ổ đĩa để tham khảo tên máy chủ cũ trước khi khởi động lại.
  6. Một vài gợi ý kỳ lạ khác mà tôi tìm thấy trên internet không đáng nhắc đến.

Tôi không có DNS cho máy chủ này tại thời điểm này.

Thí dụ:

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

Tôi đã gặp vấn đề này với bản beta ngày 18.04, nhưng tôi đoán rằng tôi sẽ chờ bản sao phát hành. Tôi cũng coi đó có thể là một vấn đề với thực tế là tôi đã nhân bản máy ảo, nhưng đây là phiên bản hoàn toàn mới được xây dựng từ đầu với bản phân phối vừa được phát hành.

Tôi đang thiếu gì?

Cảm ơn trước.


Câu trả lời:


49

Đầu tiên chỉnh sửa /etc/cloud/cloud.cfg và đặt tham số "reserved_hostname" từ "false" thành "true" và sau đó chỉnh sửa / etc / hostname.


4
Hoạt động như một lá bùa. Tôi sẽ không bao giờ nhận được điều đó từ dòng bình luận phía trên nó: "# Điều này sẽ khiến mô đun tên máy chủ + cập nhật không hoạt động (nếu đúng)". Cảm ơn rất nhiều, rất nhiều phương pháp không chính xác trên web.
Andy Wylde

18

Tên máy chủ đang được đặt lại theo cloud-initđó có thể bị vô hiệu hóa như sau (sau đó bạn có thể đặt tên máy chủ theo cách thông thường, ví dụ: bằng cách sử dụng hostnamectl):

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

Hoặc bạn có thể sử dụng cloud-init và tạo / sửa đổi user-datatệp (thường được tìm thấy tại /var/lib/cloud/seed/nocloud-net/user-data:) để hostname:mục nhập được đặt thành tên máy chủ mong muốn (được cung cấp preserve_hostname:không được đặt). Trước tiên, bạn sẽ cần xóa cấu hình hiện có:

sudo cloud-init clean

Và sau đó xác định lại cấu hình của cloud-init từ tệp dữ liệu người dùng mới / được sửa đổi:

sudo cloud-init init

Sau đó khởi động lại. Xem tài liệu khởi tạo đám mây để biết thêm chi tiết.


3
Hãy cẩn thận với việc chạy cloud-init cleanhoặc cloud-init initnó có thể viết lại các tập tin / etc / netplan / yaml của bạn.
Michael D.

3
Nó cũng sẽ cập nhật khóa máy chủ SSH có thể gây hại (khách hàng cần chấp nhận khóa máy chủ mới trước khi có thể kết nối lại)
Per Lundberg

5

Đối với những "kẻ lười biếng" như tôi, một giải pháp sao chép-dán :)

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

Lệnh đầu tiên cho phép tên máy chủ mới được HĐH ghi nhớ.

Phần thứ hai (sau phần &&) sẽ chỉ chạy nếu phần thứ nhất kết thúc thành công và sẽ đặt tên máy chủ thành giá trị mong muốn.

Trân trọng! L


4

1- Chỉnh sửa vi /etc/cloud/cloud.cfg và thay đổi

preserve_hostname: false

Đến

preserve_hostname: true

Lưu và thoát.

2- Chỉnh sửa vi /etc/hostnamevà thay thế tên mới của bạn trong tệp này hoặc bạn có thể thực hiện bước này bằng lệnh dưới đây.

hostnamectl set-hostname NEWNAME

Hãy tận hưởng nó :)


0

Tôi gặp vấn đề tương tự và thấy rằng, sau khi xóa các gói đám mây, bạn có thể thay đổi tên máy chủ của mình.

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

1
Tôi chắc chắn rằng điều này sẽ làm việc nhưng tôi nghĩ rằng tôi thích câu trả lời ở trên. Cảm ơn vì đã trả lời
Andy Wylde

Tôi đề nghị không sử dụng giải pháp này nếu bạn đang sử dụng gói máy chủ Ubuntu. Tại sao? Bởi vì các gói được đề cập ở trên là điều kiện tiên quyết của nó. Mô tả gói máy chủ Ubuntu ub Mô tả-en: Hệ thống Máy chủ Ubuntu Gói này phụ thuộc vào tất cả các gói trong hệ thống Máy chủ Ubuntu. Nó cũng được sử dụng để giúp đảm bảo nâng cấp thích hợp, vì vậy không nên xóa nó. '
linux64kb

0

Nếu bạn không hài lòng với việc để lại một phiên bản cũ hơn ở đâu đó, thì chỉ cần mở tệp tại /var/lib/cloud/seed/nocloud-net/user-datavà thay đổi tên máy chủ của bạn tại dòng:

hostname: cm-lc-nc

Sau đó chạy:

cloud-init clean
cloud-init init

Sau đó, nó sẽ được đặt thành /etc/hostnamegiá trị mới và sẽ duy trì nhất quán trong các lần khởi động lại. Điều này sẽ xóa tất cả dấu vết của tên máy chủ trước đó và trong trường hợp preserve_hostnameđược đặt lại hoặc bị bỏ qua vì một số lý do, bạn vẫn sẽ không mất tên máy chủ mới.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.