canonical / canonical/cloud-init
[improvement] no easy way to add packages required by apt before apt stage
- Dominant language
- Python
- Stars
- 3.8k
- Forks
- 1.1k
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 18
Description
This bug was originally filed in Launchpad as [LP: #1813399](https://bugs.launchpad.net/cloud-init/+bug/1813399)
Launchpad details
affected_projects = []
assignee = None
assignee_name = None
date_closed = None
date_created = 2019-01-26T14:01:45.960398+00:00
date_fix_committed = None
date_fix_released = None
id = 1813399
importance = undecided
is_complete = False
lp_url = https://bugs.launchpad.net/cloud-init/+bug/1813399
milestone = None
owner = till.riedel
owner_name = Till Riedel
private = False
status = confirmed
submitter = till.riedel
submitter_name = Till Riedel
tags = ['debian']
duplicates = []
_Launchpad user **Till Riedel(till.riedel)** wrote on 2019-01-26T14:01:45.960398+00:00_
I am running cloud-init on a libvirt/virsh with this image: https://cdimage.debian.org/cdimage/openstack/archive/9.6.5-20190122/debian-9.6.5-20190122-openstack-amd64.qcow2
This is not really a bug, because I believe it is rather a packaging problem of many distros. So please close this asap if you do not feel responsible ;)
This is why I also posted this problem on the debian-cloud mailing list, but maybe this can be fixed also in cloud-init.
If apt-transport-https or dirmngr are not installed (they are no dependencies of cloud-init).
apt:
sources:
docker:
source: 'deb [arch=amd64] https://download.docker.com/linux/debian stretch stable'
keyserver: keyserver.ubuntu.com
keyid: 0EBFCD88
you will run into problems like:
[ 14.011339] cloud-init[469]: E: The method driver /usr/lib/apt/methods/https could not be found.
[ 14.013524] cloud-init[469]: Cloud-init v. 0.7.9 running 'modules:config' at Wed, 23 Jan 2019 16:28:06 +0000. Up 10.01 seconds.
[ 14.016921] cloud-init[469]: 2019-01-23 16:28:10,921 - util.py[WARNING]: Running module apt-configure () failed
and
[ 14.460293] cloud-init[448]: Command: ['gpg', '--keyserver', 'keyserver.ubuntu.com', '--recv', '0EBFCD88']
[ 14.463206] cloud-init[448]: Stderr: gpg: failed to start the dirmngr '/usr/bin/dirmngr': No such file or directory
Unfortunatedly I could not find a way to call anything to add those packages before apt is run so that I had to patch the images.
One solution would be to allow multistage apt install in one way or the other (I know it adds complexity), so that one could install the relevant packages before the package list is modified and updated. Actually checking if a line contains https or a keyid and installing the appropriate dependencies could also work.
Probably it would be much easier to fix the package dependency on cloud-init itself for the relevant distros. The downside of this is that it adds a bunch of packages as further dependencies, so I guess distros are not really willing to do that...
Thanks in advance,
Till
PS: I can live with having written some scripts patching the images after download...
Contributor guide
Assessment
This issue has not been assessed yet.