preseed.cfg bỏ qua cài đặt tên máy chủ


13

Tôi đang cài đặt Debian Wheezy (cài đặt mạng) trong VirtualBox bằng cách sử dụng preseed.cfg.

Tôi đã thử cả hai d-i netcfg/get_hostname string somehostd-i netcfg/get_hostname string somehost, nhưng trong cả hai trường hợp, máy chủ lưu trữ được đặt là "debian". Tôi đã thử cả hai cùng một lúc nhưng máy chủ vẫn được đặt là "debian".

Trích từ hướng dẫn của Debian về tệp cấu hình sẵn :

Nếu bạn muốn buộc một tên máy chủ, bất kể máy chủ DHCP trả về cái gì hoặc mục nhập DNS ngược cho IP là gì, hãy bỏ qua và điều chỉnh dòng sau

di netcfg / hostname chuỗi somehost

Đây có phải là một lỗi hay tôi chỉ không may mắn?

Câu trả lời:


10

Không phải là một giải pháp mà là một cách giải quyết

Tôi cũng đã phải đối mặt với một vấn đề tương tự và tôi đã khắc phục nó bằng cách đặt tên máy chủ sau khi cài đặt thông qua các dòng sau được thêm vào cuối pressed.cfg:

d-i pressed/late_command string\
    in-target /bin/bash -c 'echo desired_name > /etc/hostname'

Điều in-targetnày là cần thiết để /tham chiếu đến hệ thống tệp đích (cuối cùng sẽ trở thành hệ thống tệp gốc của bạn) thường xuất hiện như /targettrong khi cài đặt.


1
Tôi cũng đã sử dụng điều này nhưng với một sửa đổi nhỏ để tên máy chủ được tự động đặt từ tra cứu DNS : d-i pressed/late_command string in-target /bin/bash -c 'echo $(dig +short -x $(facter ipaddress)) | sed -e \'s/\.$//\' > /etc/hostname'. Điều này sử dụng "facter" từ con rối để lấy địa chỉ IP nhưng bạn có thể làm điều gì đó tương tự bằng cách sử dụng ip addrsed.
David Gardner

9

Nếu bạn đang netboote (với PXE và bạn bè), tên máy chủ được thiết lập trước khi tìm nạp tệp đã chèn sẵn, vì vậy tên máy chủ nên được đặt trên dòng lệnh kernel như thế này:

hostname=myhostname domain=mydomain

Từ phần giới thiệu của phụ lục B (sắp đặt trước) của hướng dẫn cài đặt debian:

Một sự khác biệt quan trọng giữa các phương pháp chèn sẵn là điểm tại đó tệp cấu hình sẵn được tải và xử lý. Đối với việc bắt đầu trước, điều này là đúng khi bắt đầu cài đặt, trước khi câu hỏi đầu tiên thậm chí được hỏi. Đối với tập tin trước, đây là sau khi hình ảnh CD hoặc CD đã được tải. Đối với dự đoán mạng, chỉ sau khi mạng được cấu hình.


4

Tôi thấy rằng vấn đề này đã biến mất khi tôi loại bỏ priority=criticalkhỏi các đối số mà tôi đang truyền vào kernel tại dòng lệnh cài đặt mạng (thông qua các mục nhập thư mục pxelinux.cfg).

Tôi cho rằng điều này có nghĩa là câu hỏi đặt tên máy chủ đã được ưu tiên thấp hơn 'quan trọng', và do đó, được đưa ra với câu trả lời mặc định.

Nếu bạn thực hiện thay đổi này, bạn có thể thấy rằng bạn phải dự đoán một số câu trả lời thấp hơn quan trọng khác cho các câu hỏi khác sau này trong quá trình cài đặt ...


3

Đó là giới hạn trình cài đặt debian. Vào thời điểm bạn tìm nạp tệp cấu hình được chèn sẵn từ mạng, netcfgđã hoàn thành công việc và không còn nữa, vì vậy nó sẽ không tải lại các giá trị.

bùn chính thức được sử dụng trong preseed.cfgdòng của bạn :

d-i preseed/run string http://example.net/d-i/jessie/preseed.sh

preseed.shsau đó chỉ định:

#!/bin/sh
kill-all-dhcp; netcfg

Bằng cách đó, khi mạng được thành lập và preseed.cfgđược nạp, preseed.shcũng sẽ lấy và chạy, vì vậy nó sẽ khởi động lại netcfgmà sau đó sẽ đọc tất cả các giá trị preseed cho netcfg/*và cấu hình chúng một cách chính xác ( /etc/hostsname, /etc/hosts, /etc/network/interfacesnếu bạn đang thiết IP tĩnh cấu hình qua preseed vv)


Bạn có thể làm điều này mà không cần một tệp riêng: d-i preseed/early_command string kill-all-dhcp; netcfgtrong tệp preseed của bạn là đủ. Đã thử nghiệm với Stretch trong một cài đặt mạng tự động.
17:30
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.