> This behaviour of installing packages or configuring your system while the > system isn't booted yet might also bite you in other cases (it certainly bit > me a number of cases). Maybe we should discuss how to move that after the > boot? I do that in > https://git.launchpad.net/~ubuntu-release/+git/autopkgtest-cloud/tree/tools/armf-lxd-slave.userdata > but this doesn't look very pretty.
The goal of cloud-init is basically to allow the user to do whatever they could have done by creating their own image. But instead, do that via feeding data to the system. The portion of cloud-init that installs packages for a user can be moved to a later stage, but can't really be moved *out* of boot. sysvinit and upstart support this functionality well. upstart *really* does the right thing in that you can add new jobs and when conditions are met those jobs will be handled. Also note that "in the boot sequence" is not really the problem. The problem is that the package installation is happening before the system is completely booted. As an example of the difference, consider that any hung or blocked systemd service will break installation of services. I can show this by: a.) new xenial container b.) modify /etc/rc.local to have 'sleep 5m' c.) start container d.) lxc exec name apt-get install apache2 e.) apt-get install apache2 The same problem can be shown with 'd' being invoked via ssh, or *any* other mechanism on the system. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to init-system-helpers in Ubuntu. https://bugs.launchpad.net/bugs/1575572 Title: apache2 fails to start if installed via cloud config (on Xenial) Status in cloud-init package in Ubuntu: Confirmed Status in init-system-helpers package in Ubuntu: In Progress Status in systemd package in Ubuntu: Won't Fix Status in cloud-init source package in Xenial: New Status in init-system-helpers source package in Xenial: Triaged Status in systemd source package in Xenial: Won't Fix Bug description: Using the following cloud config, apache2 will fail to start on installation on Xenial: #cloud-config packages: - apache2 See for example: $ gcloud compute instances create xenial-$(date +%y%m%d-%H%M) --image ubuntu-1604-xenial-v20160420c --image-project ubuntu-os-cloud --metadata-from-file user-data=cloud-config NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS xenial-160427-1050 europe-west1-d n1-standard-1 10.240.0.7 104.155.86.94 RUNNING $ ssh [email protected] systemctl status apache2.service ● apache2.service - LSB: Apache2 web server Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: inactive (dead) Docs: man:systemd-sysv-generator(8) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1575572/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : [email protected] Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp

