diff options
| author | Baptiste Daroussin <bapt@FreeBSD.org> | 2026-01-29 09:56:33 +0000 |
|---|---|---|
| committer | Baptiste Daroussin <bapt@FreeBSD.org> | 2026-01-29 10:03:06 +0000 |
| commit | 90a7728cd8905cd26b90d06f7873df8bad43ae9a (patch) | |
| tree | aa038a8aca875c353482aa512380284f492c2033 | |
| parent | 56970c3c4b0bc61d972837661a31cc2b9e8e8d7c (diff) | |
nuageinit: support fetching configuration on multiple iface
On some environement a VM can be connected to multiple ifaces but only
one will respond to dhcp and able to fetch the metadata.
Launch the early dhclient on all available ifaces and as soon as one
dhcp has successfully configured an iface, proceed with fetching the
metadata.
MFC After: 1 week
Reported by: mateusz.klejn@ovhcloud.com
Tested by: mateusz.klejn@ovhcloud.com
Sponsored by: OVHcloud
| -rwxr-xr-x | libexec/rc/rc.d/nuageinit | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libexec/rc/rc.d/nuageinit b/libexec/rc/rc.d/nuageinit index c901971488bd..259ce3c138e5 100755 --- a/libexec/rc/rc.d/nuageinit +++ b/libexec/rc/rc.d/nuageinit @@ -56,10 +56,15 @@ nuageinit_start() OpenStack*) mkdir -p /media/nuageinit/openstack/latest ifaces=$(ifconfig -l ether) - set -- $ifaces - dhclient -p /tmp/ephemeraldhcp.pid $1 + for iface in $ifaces; do + dhclient -p /tmp/ephemeraldhcp.$iface.pid $iface + done + pids=$(cat /tmp/ephemeraldhcp.*.pid) + left=$(pwait -op $pids 2>/dev/null) + for iface in $left; do + kill -15 $left + done fetch_openstack - pkill -F /tmp/ephemeraldhcp.pid citype=config-2 ;; *) |
