Bonjour à tous,
J'essaie de me monter lab local avec Virtualbox et du centos 7:
- Les VMs sont créées via VBoxManage
- J'utilise le TFTP que propose VBox avec le réseau NATté
- Un fichier Kickstart est proposé en NFS par une VM à ip fixe, les autres étant en DHCP (celui de VBox) sur un 2nd réseau interne
A la fin de la section %post (chrootée) de mon kickstart, j'essaie de configurer l'hostname en utilisant donc la commande hostnamectl:
# Set hostname given VBox properties
HOSTNAME=$(/usr/bin/VBoxControl --nologo guestproperty get hostname | awk '{print $2}')
hostnamectl set-hostname "$HOSTNAME"
Seulement voilà, après le premier reboot, la VMs est toujours en "localhost".
En ajoutant un echo "$HOSTNAME" >/etc/hostname plus de soucis, mais je serais curieux de savoir si quelqu'un à une idée sur la question.
# et avant le reboot
Posté par NeoX . Évalué à 2.
et avant le reboot, la VM prend bien le bon hostname ?
les fichiers modifiés devraient etre :
[^] # Re: et avant le reboot
Posté par Pouetpouet . Évalué à 1.
Je viens de faire le test en ajoutant
à la fin du kickstart.
et le résultat est:
[^] # Re: et avant le reboot
Posté par NeoX . Évalué à 3.
ben voila
hostname-ctl doit definir une variable d'environnement et pas changer le contenu des fichiers
du coup au demarrage suivant, ta machine se base sur les fichiers, et redeveient localhost
et en cherchant vite fait sur le net, on trouve un piste ici
http://forums.fedoraforum.org/showthread.php?t=285238
qui consiste à parametrer le hostname dans une seule ligne avec les infos reseaux
[^] # Re: et avant le reboot
Posté par Pouetpouet . Évalué à 0.
Ouais, c'est pas très grave mais moi qui pensais ne plus avoir à utiliser des commandes de l'ère pre-systemd…
Par contre vu que je récupère ma variable HOSTNAME via les guestproperty de VirtualBox, j'ai besoin de compiler les GuestAdditions dans la section %post et ensuite de configurer le nom d'hôte. Du coup, même si la commande que tu pointes est effectivement la solution à utiliser en pratique, dans ma situation ça ne convient pas.
[^] # Re: et avant le reboot
Posté par Pouetpouet . Évalué à 1.
Je précise: idéalement il faudrait une solution qui me génère une fiche kickstart par VM à créer… Mais je ne suis pas parti pour le faire, vu que c'est juste pour moi.
# network --hostname ?
Posté par Xavier Teyssier (site web personnel) . Évalué à 2.
/!\ Je n'ai pas testé directement ce que je propose, je me contente de le déduire de fichier Kickstart que j'utilise.
Le hostname, tu peux le définir dans l'une des options de la directive network :
network --bootproto=static --ip=1.2.3.4 […] --hostname=NOMSTATION_
On peut imaginer dans le %pre de ton kickstart la partie suivante :
MonSuperHostname=$(/usr/bin/VBoxControl --nologo guestproperty get hostname | awk '{print $2}')
cat << EOF > /tmp/definenetwork
network --bootproto=static --ip=1.2.3.4 […] --hostname=$MonSuperHostname
EOF
Et dans tes directives au début de ton kickstart, en lieu et place de la ligne où tu définies ton réseau, la ligne :
%include /tmp/definenetwork_
J'utilise avec succès un principe similaire pour définir mes partitionnements.
Mon inconnue dans l'histoire : tu dis utiliser VBoxControl dans le %post, je ne sais pas si ça fonctionne en %pre (je ne suis pas utilisateur de virtualbox).
[^] # Re: network --hostname ?
Posté par Pouetpouet . Évalué à 1.
Je compile les "guest additions"(donc VBoxControl) dans la section %post après avoir récupéré les packages nécessaires (headers, gcc, make, etc..) donc ça me paraît compromis. Même si effectivement l'utilisation de la commande network de kickstart serait définitivement une solution.
J'ai aussi testé de redémarrer le service systemd-hostnamed mais sans succès.
En fait il semble que l'environnement chrooté soit le soucis (Setting Locale and Hostname on New Installation Fails). Mais si on en sort avec le --nochroot dans %post le contexte n'est plus le bon…
Je vais voir si je peux pas fournir le binaire de VBoxControl pour l'utiliser dans la section %pre comme tu préconises
[^] # Re: network --hostname ?
Posté par Xavier Teyssier (site web personnel) . Évalué à 2.
En relisant en diagonal, je me demande : et pourquoi ne pas tout simplement définir le hostname avec un HOSTNAME=CeQuiVaBien dans le fichier etc/sysconfig/network ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.