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.
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. local.service runs, mode in cmd/main.py is 'local'. network_ config happens with bringup=False.
- cloud-init-
- init.apply_
- 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.