[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: generic (cloud) image problems



On Sa., 28. Dez. 2019 at 19:20 Uhr Noah Meyerhans <noahm@debian.org> wrote:
>
> On Sat, Dec 28, 2019 at 12:23:04PM +0100, Christian Tramnitz wrote:
> > There is no workaround for the lack of vlan and bridge-utils though.
> > It would be great it we could get those two included into the base
> > image.
>
> Both vlan and bridge-utils are legacy tools that are replaced by ip(8)
> on modern GNU/Linux systems.  You should use that instead.  I do not
> believe it would be desirable to include the legacy tools in the default
> images.
>
> If you really aren't willing to use ip(8), then I suggest constructing
> your own VM images based on our configuration.  This is a fully
> supported use case and somethat that we do consider a reasonable option
> for people who need customizations on top of what we've build.  I
> documented the process a while back at
> https://noah.meyerhans.us/blog/2017/02/10/using-fai-to-customize-and-build-your-own-cloud-images/
> and since then we've made it easier by eliminating the need to
> explicitly call fai-diskimage.  If you make you package modifications to
> e.g. the package_config/DEBIAN file, then you can build an image using
> "make buster-image-generic"

It's not about my willingness to use specific tools, it's about what
the image (without additional packages installed) does when using
cloud-init.
I would consider my use case as category 2 (as per your blog post): I
would like to directly launch the debian cloud-image and make use of
cloud-init and configuration management and may never log into the
system.
However, the /etc/network/interfaces.d/50-cloud-init.cfg file
*generated by cloud-init* uses a syntax that assumes bridge-utils and
vlan are installed (when using a bridge / vlan statement in a v1
network config file). And I'm repeating myself here: the cloud-init
generated config isn't even included by /etc/network/interfaces due to
the wrong include statement.

Maybe I'm missing something here that the network config presented by
cloud-init has to look different, but I have not found any hints what
the *expected* format for a Debian cloud-image would be. There is also
no specific renderer in /etc/cloud/cloud.cfg so I'd assume whatever I
pass to cloud-init in a supported format is parsed to an output that
is understood by the system.
Currently I'm using the nocloud provider with v1 network config. The
cloud-image bundled cloud-init version (18.3) produces a file that
cannot be used with image-provided packages.


I already tried with a v2 network config file (converted with
cloud-init's tools/net-convert.py) but that is failing with:
cloud-init[297]: 2019-12-29 13:04:21,276 - stages.py[WARNING]: Failed
to rename devices: Failed to apply network config names. Found bad
network config version: None
(and not creating a 50-cloud-init.cfg at all).


Also, if you call bridge-utils deprecated, I'd suggest to change the
documentation here:
https://wiki.debian.org/BridgeNetworkConnections#Installing_the_software



BR,
   Christian


Reply to: