preseed.cfg ignorando l'impostazione del nome host


13

Sto installando Debian Wheezy (netinstall) in VirtualBox usando preseed.cfg.

Ho provato entrambi d-i netcfg/get_hostname string somehoste d-i netcfg/get_hostname string somehost, ma in entrambi i casi l'host viene impostato come "debian". Ho provato entrambi contemporaneamente ma l'host è impostato come "debian".

Estratto dalla guida di Debian sul file di preconfigurazione :

Se si desidera forzare un nome host, indipendentemente da ciò che restituisce il server DHCP o dalla voce DNS inversa per l'IP, decommentare e regolare la seguente riga

di netcfg / hostname stringa somehost

È un bug o sono solo sfortunato?

Risposte:


10

Non una soluzione ma una soluzione alternativa

Anch'io ho affrontato un problema simile e ho risolto il problema impostando il nome host dopo l'installazione tramite le seguenti righe aggiunte alla fine del mio pressed.cfg:

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

Il in-targetè necessario affinché la /si riferisce al file system di destinazione (che alla fine diventerà il vostro filesystem di root), che di solito appare come /targetdurante l'installazione.


1
Ho usato anche questo, ma con una leggera modifica in modo che il nome host viene impostato automaticamente da una ricerca DNS: d-i pressed/late_command string in-target /bin/bash -c 'echo $(dig +short -x $(facter ipaddress)) | sed -e \'s/\.$//\' > /etc/hostname'. Questo utilizza "facter" dai pupazzi per ottenere l'indirizzo IP ma potresti fare qualcosa di simile usando ip addre sed.
David Gardner,

9

Se si sta eseguendo il boot da rete (con PXE e amici), il nome host viene impostato prima di recuperare il file preconfigurato, quindi il nome host dovrebbe essere impostato sulla riga di comando del kernel in questo modo:

hostname=myhostname domain=mydomain

Dall'introduzione dell'appendice B (sulla preconfigurazione) del manuale dell'installatore debian:

Una differenza importante tra i metodi di preconfigurazione è il punto in cui il file di preconfigurazione viene caricato ed elaborato. Per la preconfigurazione initrd questo è giusto all'inizio dell'installazione, prima ancora che venga posta la prima domanda. Per la preconfigurazione dei file ciò avviene dopo che l'immagine del CD o del CD è stata caricata. Per la preconfigurazione della rete è solo dopo che la rete è stata configurata.


4

Ho scoperto che questo problema è scomparso quando ho rimosso priority=criticaldagli argomenti che stavo passando al kernel dalla riga di comando net install (tramite le voci della directory pxelinux.cfg).

Presumo che ciò significhi che alla domanda che pone il nome host è stata data una priorità che è inferiore a "critico" e quindi viene popolata con la risposta predefinita.

Se apporti questa modifica, potresti scoprire che devi preconfigurare altre risposte più basse di quelle critiche per altre domande più avanti nel processo di installazione ...


3

È una limitazione del debian-installer. Quando recuperi il tuo file di configurazione preconfigurato dalla rete, netcfgha già fatto il suo lavoro ed è sparito, quindi non recupererà i valori.

Kludge in qualche modo ufficiale è da usare nella tua preseed.cfglinea:

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

e in questo preseed.shquindi specificare:

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

In questo modo, quando si stabilisce di rete e preseed.cfgviene recuperato, preseed.shsarà anche recuperare ed eseguire, quindi si riavvia netcfgche sarà quindi leggere tutti i valori di preconfigurazione per netcfg/*e configurarli in modo corretto ( /etc/hostsname, /etc/hosts, /etc/network/interfacesse si sta impostando IP statico configurazione tramite preconfigurazione ecc)


Puoi farlo senza un file separato: d-i preseed/early_command string kill-all-dhcp; netcfgnel tuo file preconfigurato è sufficiente. Testato con Stretch in una netinstall automatizzata.
scy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.