yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #83616
[Bug 1892171] [NEW] cloud-init doesn't start when no data source is present
Public bug reported:
I am using KVM (via libvirt)
1. I take bionic-server-cloudimg-amd64.img from cloud-images.ubuntu.com
2. I create a simple user-data file
----
#cloud-config
users:
- default
- name: ubuntu
ssh-authorized-keys:
- ssh-rsa <contents of id_rsa.pub>
----
3. I create the seed ISO.
----
cloud-localds --hostname TEMPLATE --verbose seed.iso user-data
----
4. I boot the VM. Within the VM I run some provisioning ...
----
cloud-init status --wait
# Some provisioning here
apt-get install some devel libraries
truncate -s 0 /etc/machine-id
rm -rf /etc/netplan/*
rm -rf /etc/ssh/ssh_host_*
cloud-init clean --seed --logs
----
5. I shut down the VM. This, in theory, should become my template from
which I should be able to clone new VMs, correct? However, when I clone
and boot it, cloud-init does not run on the clones at all.
In /run/cloud-init/cloud.cfg I see
----
di_report:
datasource_list: [ ]
# reporting not found result. notfound=disabled
----
In /run/cloud-init/cloud-init-generator.log I see (among other things)
----
ds-identify rc=1
ds-identify_RET=notfound
cloud-init is enabled but no datasource found. disabling
----
Finally, in /run/cloud-init/ds-identify.log I see (among other things)
----
DSNAME=
DSLIST=NoCloud ConfigDrive OpenNebula DigitalOcean Azure AltCloud OVF MAAS GCE OpenStack CloudSigma SmartOS Bigstep Scaleway AliYun Ec2 CloudStack Hetzner IBMCloud Oracle Exoscale None
Mode=search
is_container=false
is_ds_enabled(IBMCloud) = true
ec2 platform is 'Unknown'
No ds found [mode=search,notfound=disabled]. Disabled cloud-init [1]
----
DSLIST in the above matches what is in
/etc/cloud/cloud.cfg.d/90_dpkg.cfg but it is not recognized at all.
However, as mentioned in https://bugs.launchpad.net/cloud-
init/+bug/1876375 , if I do this instead
----
echo 'datasource_list: [ NoCloud, None ]' > /etc/cloud/cloud.cfg.d/90_dpkg.cfg
---
Then everything works just as I want it. The clones boot up properly,
there's no need to attach any seed ISO file, we are able to login.
Why is it that when 90_dpkg.cfg contains [ NoCloud, None]
the cloning process works and cloud-init starts, but when 90_dpkg.cfg has a long list of entries (all of which are irrelevant) , it chooses to not even start?
(NOTE: This is on Ubuntu 18, /usr/bin/cloud-init
20.2-45-g5f7825e2-0ubuntu1~18.04.1 from some daily build)
** Affects: cloud-init
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1892171
Title:
cloud-init doesn't start when no data source is present
Status in cloud-init:
New
Bug description:
I am using KVM (via libvirt)
1. I take bionic-server-cloudimg-amd64.img from cloud-
images.ubuntu.com
2. I create a simple user-data file
----
#cloud-config
users:
- default
- name: ubuntu
ssh-authorized-keys:
- ssh-rsa <contents of id_rsa.pub>
----
3. I create the seed ISO.
----
cloud-localds --hostname TEMPLATE --verbose seed.iso user-data
----
4. I boot the VM. Within the VM I run some provisioning ...
----
cloud-init status --wait
# Some provisioning here
apt-get install some devel libraries
truncate -s 0 /etc/machine-id
rm -rf /etc/netplan/*
rm -rf /etc/ssh/ssh_host_*
cloud-init clean --seed --logs
----
5. I shut down the VM. This, in theory, should become my template from
which I should be able to clone new VMs, correct? However, when I
clone and boot it, cloud-init does not run on the clones at all.
In /run/cloud-init/cloud.cfg I see
----
di_report:
datasource_list: [ ]
# reporting not found result. notfound=disabled
----
In /run/cloud-init/cloud-init-generator.log I see (among other things)
----
ds-identify rc=1
ds-identify_RET=notfound
cloud-init is enabled but no datasource found. disabling
----
Finally, in /run/cloud-init/ds-identify.log I see (among other things)
----
DSNAME=
DSLIST=NoCloud ConfigDrive OpenNebula DigitalOcean Azure AltCloud OVF MAAS GCE OpenStack CloudSigma SmartOS Bigstep Scaleway AliYun Ec2 CloudStack Hetzner IBMCloud Oracle Exoscale None
Mode=search
is_container=false
is_ds_enabled(IBMCloud) = true
ec2 platform is 'Unknown'
No ds found [mode=search,notfound=disabled]. Disabled cloud-init [1]
----
DSLIST in the above matches what is in
/etc/cloud/cloud.cfg.d/90_dpkg.cfg but it is not recognized at all.
However, as mentioned in https://bugs.launchpad.net/cloud-
init/+bug/1876375 , if I do this instead
----
echo 'datasource_list: [ NoCloud, None ]' > /etc/cloud/cloud.cfg.d/90_dpkg.cfg
---
Then everything works just as I want it. The clones boot up properly,
there's no need to attach any seed ISO file, we are able to login.
Why is it that when 90_dpkg.cfg contains [ NoCloud, None]
the cloning process works and cloud-init starts, but when 90_dpkg.cfg has a long list of entries (all of which are irrelevant) , it chooses to not even start?
(NOTE: This is on Ubuntu 18, /usr/bin/cloud-init
20.2-45-g5f7825e2-0ubuntu1~18.04.1 from some daily build)
To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1892171/+subscriptions
Follow ups