> I am unable to reproduce this, show me your kernel command line. Use
> discovery-debug and pastebin the output please.
>
>
Here's the output from a same machine running 3.0.4 (bootif mac is proper)
and 3.0.5 (bootif is set to 0 by rescue):
[root@fdi ~]# facter | grep discovery
discovery_bootif => 2c:60:0c:95:8d:de
discovery_bootip => <IP>
discovery_release => 20151106.1
discovery_version => 3.0.4
[root@fdi ~]# cat /proc/cmdline
rootflags=loop root=live:/fdi.iso rootfstype=auto ro rd.live.image
acpi=force rd.luks=0 rd.md=0 rd.dm=0 rd.lvm=0 rd.bootif=0 rd.neednet=0
rd.debug=1 nomodeset proxy.url=https://<foreman> proxy.type=foreman
fdi.ssh=1 fdi.rootpw=<pw> fdi.initnet=all fdi.cachefacts=5
fdi.uploadsleep=30 console=ttyS1,115200n8 BOOTIF=01-2c-60-0c-95-8d-de
net.ifnames=0
[root@fdi ~]#
[root@fdi ~]# facter | grep discovery
discovery_bootif => 00:00:00:00:00:00
discovery_bootip => <IP>
discovery_release => 20151113.1
discovery_version => 3.0.5
[root@fdi ~]# cat /proc/cmdline
rootflags=loop root=live:/fdi.iso rootfstype=auto ro rd.live.image
acpi=force rd.luks=0 rd.md=0 rd.dm=0 rd.lvm=0 rd.bootif=0 rd.neednet=0
rd.debug=1 nomodeset proxy.url=https://<foreman> proxy.type=foreman
fdi.ssh=1 fdi.rootpw=<pw> fdi.initnet=all fdi.cachefacts=5
fdi.uploadsleep=30 console=ttyS1,115200n8 BOOTIF=01-2c-60-0c-95-8d-de
net.ifnames=0
[root@fdi ~]#
Maybe because of missing method in /usr/share/fdi/facts/discovery-facts.rb,
no?
def discovery_bootif
PXELinux dash-separated hexadecimal without the leading hardware type
cmdline('BOOTIF', cmdline('fdi.pxmac', detect_first_nic_with_link)).gsub(/^[a-fA-F0-9]±/,
'').gsub('-', ':') rescue '00:00:00:00:00:00'
end
Anyway, changing above cmdline into the one below, makes things work again,
but not sure if that's what you wanted:
cmdline('BOOTIF', cmdline('fdi.pxmac',
Facter.fact("macaddress").value)).gsub(/^[a-fA-F0-9]±/, '').gsub('-', ':')
rescue '00:00:00:00:00:00'
behavior as it sets "macaddress", "ipaddress", etc. of the system to the
first IP'ed NIC it finds in a list of NICs on multi-homed systems, which is
not always a proper NIC. Personally, in situations like this, I write a
little custom fact to key off the default gateway -> device -> mac to
detect and report a proper main NIC. So, if your detect_first_nic_with_link
method was supposed to do what its name suggests, I'd do exactly that
traversing to detect a NIC the system really uses as its default device,
not just pick a first linked-up NIC.
···
From my personal experience though, I wouldn't trust default facter's