preseed.cfg ละเว้นการตั้งค่าชื่อโฮสต์


13

ผมติดตั้ง Debian ดังเสียงฮืด ๆ (NetInstall) ใน VirtualBox preseed.cfgใช้

ฉันพยายามทั้งสองd-i netcfg/get_hostname string somehostและd-i netcfg/get_hostname string somehostแต่ในทั้งสองกรณีเป็นเจ้าภาพที่ได้รับการกำหนดให้เป็น "เดเบียน" ฉันลองทั้งสองอย่างพร้อมกัน แต่โฮสต์ยังตั้งเป็น "เดเบียน"

ข้อความที่ตัดตอนมาจากคำแนะนำของ Debian เกี่ยวกับไฟล์การกำหนดค่าล่วงหน้า :

ถ้าคุณต้องการบังคับใช้ชื่อโฮสต์ไม่ว่าเซิร์ฟเวอร์ DHCP จะส่งคืนหรือไม่ว่ารายการ DNS ย้อนกลับสำหรับ IP คืออะไรให้ยกเลิกการใส่ข้อคิดเห็นและปรับบรรทัดต่อไปนี้

di netcfg / ชื่อโฮสต์สตริง somehost

นี่เป็นข้อบกพร่องหรือฉันแค่โชคไม่ดี?

คำตอบ:


10

ไม่ใช่วิธีแก้ปัญหา แต่เป็นวิธีแก้ปัญหา

ฉันก็ประสบปัญหาที่คล้ายกันและฉันแก้ไขมันโดยการตั้งค่าชื่อโฮสต์หลังจากการติดตั้งผ่านทางบรรทัดต่อไปนี้เพิ่มในตอนท้ายของฉันpressed.cfg:

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

in-targetเป็นสิ่งที่จำเป็นเพื่อให้/หมายถึงระบบแฟ้มเป้าหมาย (ที่ในที่สุดก็จะกลายเป็นระบบแฟ้มรากของคุณ) ที่มักจะปรากฏเป็น/targetระหว่างการติดตั้ง


1
ผมยังใช้นี้ แต่มีการปรับเปลี่ยนเล็กน้อยเพื่อให้ชื่อโฮสต์มีการตั้งค่าโดยอัตโนมัติจากค้นหา d-i pressed/late_command string in-target /bin/bash -c 'echo $(dig +short -x $(facter ipaddress)) | sed -e \'s/\.$//\' > /etc/hostname'DNS: การใช้งานนี้ "facter" จาก puppetlabs ที่จะได้รับที่อยู่ IP แต่คุณสามารถทำสิ่งที่คล้ายกันโดยใช้และip addr sed
David Gardner

9

หากคุณเป็น netbooting (กับ PXE และเพื่อน ๆ ) ชื่อโฮสต์จะถูกตั้งค่าก่อนที่จะดึงไฟล์ preseed ดังนั้นชื่อโฮสต์ควรถูกตั้งค่าบนบรรทัดคำสั่งเคอร์เนลดังนี้:

hostname=myhostname domain=mydomain

จากการแนะนำภาคผนวก B (ในการนำเสนอล่วงหน้า) ของคู่มือการติดตั้งเดเบียน:

ความแตกต่างที่สำคัญระหว่างวิธีการคิดล่วงหน้าคือจุดที่ไฟล์การกำหนดค่าล่วงหน้าถูกโหลดและประมวลผล สำหรับการเริ่มต้น presrding สิ่งนี้ถูกต้องเมื่อเริ่มต้นการติดตั้งก่อนที่คำถามแรกจะถูกถาม สำหรับไฟล์ที่สันนิษฐานนี้เป็นหลังจากโหลดซีดีอิมเมจหรือซีดีแล้ว สำหรับการคาดคะเนเครือข่ายจะเกิดขึ้นหลังจากกำหนดค่าเครือข่ายแล้วเท่านั้น


4

ฉันพบว่าปัญหานี้หายไปเมื่อฉันลบpriority=criticalข้อโต้แย้งที่ฉันส่งผ่านไปยังเคอร์เนลที่บรรทัดคำสั่งติดตั้งเน็ต (ผ่านรายการไดเรกทอรี pxelinux.cfg)

ฉันถือว่านี่หมายความว่าคำถามที่ถามชื่อโฮสต์นั้นได้รับการจัดลำดับความสำคัญซึ่งต่ำกว่า 'วิกฤติ' และได้รับการเติมด้วยคำตอบเริ่มต้น

หากคุณทำการเปลี่ยนแปลงนี้คุณอาจพบว่าคุณต้องคาดเดาคำตอบที่ไม่สำคัญกว่าคำถามอื่น ๆ ในภายหลังในกระบวนการติดตั้ง ...


3

มันเป็นข้อ จำกัด ของโปรแกรมติดตั้งเดเบียน เมื่อถึงเวลาที่คุณดึงไฟล์กำหนดค่าล่วงหน้าจากเครือข่ายnetcfgเสร็จแล้วมันจะทำงานและหายไปดังนั้นมันจะไม่เรียกคืนค่า

กระบองที่เป็นทางการค่อนข้างจะใช้ในpreseed.cfgสายของคุณ:

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

และในpreseed.shนั้นระบุ:

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

ด้วยวิธีนี้เมื่อเครือข่ายที่จัดตั้งขึ้นและpreseed.cfgเป็นความจริงpreseed.shนอกจากนี้ยังจะดึงข้อมูลและเรียกใช้จึงจะเริ่มต้นใหม่netcfgซึ่งจะอ่านค่า preseed ทั้งหมดnetcfg/*และกำหนดค่าได้อย่างถูกต้อง ( /etc/hostsname, /etc/hosts, /etc/network/interfacesถ้าคุณตั้งค่ากำลัง IP แบบคงที่กำหนดค่าผ่านทาง preseed ฯลฯ )


คุณสามารถทำได้โดยไม่ต้องแยกไฟล์: d-i preseed/early_command string kill-all-dhcp; netcfgในไฟล์ preseed ของคุณก็เพียงพอแล้ว ทดสอบด้วยการยืดตัวในการติดตั้งเน็ตอัตโนมัติ
scy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.