I have a SLES 12 server that was initially configured to use wickedd-dhcp4 as a DHCP client. This server also has the dhcp-client package installed, which provides /sbin/dhclient. I want to use that mechanism, instead of that supplied by wicked.
I’ve not been able to find any docs describing how to perform this transition.
I’m in a headless, stripped-down environment, so am looking for a CLI-compatible way of affecting this (e.g. not yast.)
Does anyone have any advice?
Hi
Have you seen this document?
https://documentation.suse.com/sles/12-SP4/html/SLES-all/cha-dhcp.html
You can run YaST ncurses (yast
instead of yast2
)
I have, and it confirms both packages exist, and says that the wickedd-dhcp4 is installed by default. Which is indeed the case on my host, but does not describe at all how to actually choose between the two documented packages.
Hi
My assumption is one interface using wicked and I would assume a static ip address, then the DHCP server uses this interface to broadcast out to clients that connect, or a second one if needed.
The docs read it’s an either/or situation, WRT DHCP clients. I’m not hosting a DHCP server on this host.
Hi
Then I would just stop, disable and mask the wicked services and configure the dhclient.conf (sample at the end on the dhclient.conf man page) as required, or just an empty dhclient.conf to use defaults…
I would then look at creating a /etc/systemd/system type simple’ service to start/stop as required.
Example: https://github.com/egberts/systemd-dhclient
I’ve not heard of ‘masking’ a systemd service before; something new to learn every day. Let me explore your advice; thanks!.
I’d like to report that your advice worked, at least for me. My steps, as SLES 12 already comes with a dhcliehnt.conf:
rpm -qf /etc/dhclient.conf
dhcp-client-4.3.3-10.19.1.x86_64
wget --quiet -O /etc/systemd/system/dhclient@.service ‘https://github.com/egberts/systemd-dhclient/raw/master/etc/systemd/system/dhclient@.service’
systemctl daemon-reload
systemctl enable dhclient@eth0.service
Created symlink from /etc/systemd/system/multi-user.target.wants/dhclient@eth0.service to /etc/systemd/system/dhclient@.service.
for s in $(systemctl --all | awk ‘/wicked/ {print $1}’); do echo Â-- $sÂ; systemctl stop $s; systemctl disable $s; systemctl mask $s; done
– wicked.service
Removed symlink /etc/systemd/system/multi-user.target.wants/wicked.service.
Removed symlink /etc/systemd/system/network.service.
Removed symlink /etc/systemd/system/network-online.target.wants/wicked.service.
Removed symlink /etc/systemd/system/dbus-org.opensuse.Network.Nanny.service.
Removed symlink /etc/systemd/system/dbus-org.opensuse.Network.AUTO4.service.
Removed symlink /etc/systemd/system/dbus-org.opensuse.Network.DHCP4.service.
Removed symlink /etc/systemd/system/dbus-org.opensuse.Network.DHCP6.service.
Created symlink from /etc/systemd/system/wicked.service to /dev/null.
– wickedd-auto4.service
Created symlink from /etc/systemd/system/wickedd-auto4.service to /dev/null.
– wickedd-dhcp4.service
Created symlink from /etc/systemd/system/wickedd-dhcp4.service to /dev/null.
– wickedd-dhcp6.service
Created symlink from /etc/systemd/system/wickedd-dhcp6.service to /dev/null.
– wickedd-nanny.service
Created symlink from /etc/systemd/system/wickedd-nanny.service to /dev/null.
– wickedd.service
Created symlink from /etc/systemd/system/wickedd.service to /dev/null.