diskimage-builder/elements/dhcp-all-interfaces
Sam Betts eb99fe7144 Add dhcp-all-interfaces.target for syncing units
Currently there is no way for a service to become aware that
dhcp-all-interfaces is finished configuring all the interfaces at
boot time. This causes problems for applications like the
ironic-python-agent which scans the interfaces when it first starts as
part of the inspection stage and can race against dhcp-all-interfaces
bringing up the interfaces, leading to inconsistent results.

This patch ensures that the dhcp-all-interfaces script runs before any
network interface is configured and brought up by the rest of the
system, and also ensures that the ironic-agent element also waits for
the network to be online before starting. This is done by using the
network targets provided by systemd.

Change-Id: Id9583b7f54361aa603a6229da598ad6a0f0f7938
2016-05-16 10:15:53 +01:00
..
install.d Add dhcp-all-interfaces.target for syncing units 2016-05-16 10:15:53 +01:00
element-deps dhcp-all-interfaces depends on dib-init-system 2016-04-22 09:23:11 +10:00
package-installs.yaml Use generic "dhcp-client" name 2016-04-22 11:31:54 +10:00
pkg-map Use generic "dhcp-client" name 2016-04-22 11:31:54 +10:00
README.rst Add Gentoo to the dhcp-all-interfaces element 2016-04-21 16:40:06 -05:00

===================
dhcp-all-interfaces
===================
Autodetect network interfaces during boot and configure them for DHCP

The rationale for this is that we are likely to require multiple
network interfaces for use cases such as baremetal and there is no way
to know ahead of time which one is which, so we will simply run a
DHCP client on all interfaces with real MAC addresses (except lo) that
are visible on the first boot.

On non-Gentoo based distributions the script
/usr/local/sbin/dhcp-all-interfaces.sh will be called early in each
boot and will scan available network interfaces and ensure they are
configured properly before networking services are started.

On Gentoo based distributions we will install the dhcpcd package and
ensure the service starts at boot.  This service automatically sets
up all interfaces found via dhcp and/or dhcpv6 (or SLAAC).