Florent Peterschmitt

systemd, hostnamed, networkd et l’option 12 de DHCP

Ce soir c’était installation d’un Hyper-V sous Windows 10 pour m’assurer que systemd-networkd, et plus précisément systemd-hostnamed peut changer le hostname d’une machine en le récupérant depuis l’option 12 d’une lease DHCP.

Tout cela a été fait sur CentOS 7 puisque c’est la cible du moment.

yum install -y systemd-networkd
mkdir /etc/systemd/network

Pour une interface réseau nommée eth0 :

Créer le fichier /etc/systemd/network/eth0.network :

[Match]
Name=eth0

[Network]
DHCP=yes

[DHCP]
UseHostname=yes

Activer le bousin :

systemctl enable systemd-networkd
systemctl enable systemd-hostnamed

Ensuite, sur CentOS 7 (systemd-219) et peut-être d’autres distributions, il faudra rajouter une règle PolicyKit :

https://bugs.freedesktop.org/show_bug.cgi?id=81626

Créer le fichier /etc/polkit-1/rules.d/00-systemd-hostnamed.rules :

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.hostname1.set-hostname" &&
        subject.user == "systemd-network") {
            return polkit.Result.YES;
    }
});

La documentation de hostnamed fait mention de l’action PolicyKit.