web-dev-qa-db-fra.com

Casper set hostname via dhcp

Je démarre avec succès via pxeboot un remix Ubuntu en direct. Je ne veux pas définir le nom d'hôte via dhcp car je démarre plusieurs instances de la même image. En ce moment, j'utilise une ligne de raccordement dans /etc/dhcp/dhclient-enter-hooks.d/pinhostname qui fonctionne assez bien.

RUN="yes"
if [ "$RUN" = "yes" ]; then
var=`/sbin/ifconfig eth0 | /usr/bin/awk '/inet addr/ {print $2}' | /usr/bin/cut -f2 -d:`
var=`/usr/bin/Dig -x $var +short`
var=`echo $var | /usr/bin/awk -F. '{print $1}'`
/bin/hostname $var
fi

Mais le serveur DHCP arrive tard pour munin, etc. et le nom d'hôte n'est pas défini à temps. Dans le journal Casper, il me montre qu'il reçoit le nom d'hôte beaucoup plus tôt:

IP-Config: eth0 hardware address 08:00:27:86:3e:84 mtu 1500 DHCP RARP
IP-Config: eth0 complete (from 10.1.1.1):
address: 10.1.1.10        broadcast: 10.1.1.255       netmask: 255.255.255.0
gateway: 10.1.1.1         dns0     : 10.1.1.1         dns1   : 0.0.0.0
Host   : storage1
domain : domain.com
rootserver: 10.1.1.1 rootpath:
filename  : pxelinux.0

Comment puis-je définir ce nom d'hôte. Je pense que je dois mettre un script dans/scripts avant d'emballer l'initrd. Il y a plein de scripts différents où mettre le mien? Merci pour votre temps

3
Johannes

J'ai trouvé un hack laid qui fonctionne pour moi. J'ai déballé l'initrd inséré

cat /root/var/log/netboot.config | awk /HOSTNAME/ | cut -f2 -d= | sed 's/.\(.*\)./\1/' > /root/etc/hostname
Host=`cat /root/var/log/netboot.config | awk /HOSTNAME/ | cut -f2 -d= | sed 's/.\(.*\)./\1/'`
hostname "$Host"

dans/initrd_temp/scripts/casper-bottom/23networking quelque part après cette ligne:

cp /tmp/net-"${DEVICE}".conf /root/var/log/netboot.config

Méfiez-vous de ce IS laid. Cela devrait probablement aller dans 18hostname - mais peut-être que les périphériques réseau ne sont pas encore opérationnels.

1
Johannes

Vous voudrez peut-être essayer dhcpcd5. J'ai remplacé ISC dhclient par dhcpcd5 et cela "a juste fonctionné". Le nom d'hôte est désormais défini par la réponse DHCP.

0
RustyCar