Thank you for filing this bug and improving Ubuntu and cloud-init.
I confirm this looks to be a problem from your attached cloud-init.log
Looks like cloud-init should be a bit more resilient in determining the appropriate temporary directory from which to execute a preliminary dhclient call prior to network being setup on the system.
the module function where we'd likely need to address this is cloudinit.temp_files._tempfile_dir_arg.
A preflight check of util.mounts() can inform cloud-init if it's temporary directory choice would lead to noexec type errors.
Thank you for filing this bug and improving Ubuntu and cloud-init.
I confirm this looks to be a problem from your attached cloud-init.log
Looks like cloud-init should be a bit more resilient in determining the appropriate temporary directory from which to execute a preliminary dhclient call prior to network being setup on the system.
the module function where we'd likely need to address this is cloudinit. temp_files. _tempfile_ dir_arg.
A preflight check of util.mounts() can inform cloud-init if it's temporary directory choice would lead to noexec type errors.