Comment 0 for bug 1714495

Revision history for this message
Rich Lees (rlees85) wrote :

I have been banging my head a bit with this one, especially as I am sure it *used* to work although in theory it should never have done! I would imagine a systemd update would have broken things.

I can't get cloud-init to configure the network when using `distro: arch`. What seems to happen is this:

  - systemd looks at current units/services to start and begins boot.
  - cloud-init-local.service runs, mode in cmd/main.py is 'local'.
  - init.apply_network_config happens with bringup=False.
  - arch.py writes out a netctl config and enables it using netctl reenable enp0s3.
  - netctl creates a new systemd unit (netctl@enp0s3) and enables it
  - systemd list of services already resolved, so does not start netctl@enp0s3 as it was created after the boot process started

So after the system is fully brought up, the interface is configured but NOT started. A subsequent reboot makes the system become available.

A few things and thoughts:

  - I tried making bringup=True by force but cloud-init-local is too early in the boot process and netctl barfs when trying to do a restart on an interface here.
  - Debian and RHEL based seem to have their own ways of managing network that involve putting files in a certain place that an *already existing* service then comes along and processes later.
  - Tried from "master" and from 0.7.9.tar.gz

I can't think of a way netctl could ever work with cloud-init. Possibly using systemd-networkd instead would be wise but then things like Vagrant and no doubt other "cloud" providers expect Arch to be using netctl.

Thoughts? Ideas? Even a .patch so I can bodge something to work would be a big help right now but everything I have tried fails for one reason or another.