purging cloud-init from user-data commands does not work under systemd
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
autopkgtest (Ubuntu) |
Fix Released
|
High
|
Martin Pitt | ||
cloud-init (Ubuntu) |
Fix Released
|
Low
|
Unassigned |
Bug Description
Apparently yesterday the cloud images at http://
[ 15.009125] cloud-init[541]: Cloud-init v. 0.7.7 running 'init-local' at Wed, 04 Mar 2015 07:31:54 +0000. Up 13.71 seconds.
[ OK ] Started Initial cloud-init job (pre-networking).
Starting Initial cloud-init job (metadata service crawler)...
[ 15.471963] cloud-init[747]: Cloud-init v. 0.7.7 running 'init' cron.service
[...]
[ 15.824259] cloud-init[781]: Cloud-init v. 0.7.7 running 'modules:config' at Wed, 04 Mar 2015 07:31:56 +0000. Up 15.73 seconds.
[ 15.824463] cloud-init[781]: 2015-03-04 07:31:56,991 - cc_emit_
[ 15.824589] cloud-init[781]: Command: ['initctl', 'emit', 'cloud-config', 'CLOUD_
[ 15.824698] cloud-init[781]: Exit code: 1
[ 15.824802] cloud-init[781]: Reason: -
[ 15.824903] cloud-init[781]: Stdout: ''
[ 15.825003] cloud-init[781]: Stderr: 'initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/
[ 16.003444] cloud-init[781]: Generating locales...
[ 16.036106] cloud-init[781]: en_US.UTF-8... up-to-date
[ 16.040818] cloud-init[781]: Generation complete.
Stopping OpenBSD Secure Shell server...
[ OK ] Stopped OpenBSD Secure Shell server.
[ OK ] Sta
and there it hangs. When trying to boot, it tries to talk to 169.254.169.254 which times out.
The initctl emit failure looks related, this obviously won't work under systemd. This probably needs to be replaced with some "systemctl start ..." equivalent? Note that you can test for systemd with [ -d /run/systemd/system ], that's the canonical test.
Changed in cloud-init (Ubuntu): | |
importance: | Undecided → Critical |
Reproducer:
wget http:// cloud-images. ubuntu. com/vivid/ current/ vivid-server- cloudimg- amd64-disk1. img nlocal- hostname: test1\n' > meta-data cloud/instance/ boot-finished ]; do sleep 1; done; server- cloudimg- amd64-disk1. img,if= virtio -drive file=seed. iso,if= virtio, readonly
echo -e 'instance-id: nocloud\
cat <<EOF > user-data
#cloud-config
password: ubuntu
ssh_pwauth: True
runcmd:
- (while [ ! -e /var/lib/
apt-get -y purge cloud-init; shutdown -P now) &
EOF
genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data
kvm -serial stdio -snapshot -drive file=vivid-
This uses -snapshot so that you can mess around with the downloaded image several times without changing it.
This hangs with today's 20150304 image, but works fine on 20150303's. Apparently it's stuck on purging cloud-init, which worked until yesterday. (We do that in CI so that you can boot the resulting images without the seed.iso, and also to minimize the installed packages so that we can actually run tests of cloud-init and similar themselves).